|
@@ -21,6 +21,7 @@ from utils.utils import (
|
|
|
)
|
|
|
from config import (
|
|
|
SRC_LOG_LEVELS,
|
|
|
+ ENABLE_OPENAI_API,
|
|
|
OPENAI_API_BASE_URLS,
|
|
|
OPENAI_API_KEYS,
|
|
|
CACHE_DIR,
|
|
@@ -51,6 +52,8 @@ app.state.config = AppConfig()
|
|
|
app.state.ENABLE_MODEL_FILTER = ENABLE_MODEL_FILTER
|
|
|
app.state.MODEL_FILTER_LIST = MODEL_FILTER_LIST
|
|
|
|
|
|
+
|
|
|
+app.state.config.ENABLE_OPENAI_API = ENABLE_OPENAI_API
|
|
|
app.state.config.OPENAI_API_BASE_URLS = OPENAI_API_BASE_URLS
|
|
|
app.state.config.OPENAI_API_KEYS = OPENAI_API_KEYS
|
|
|
|
|
@@ -68,6 +71,21 @@ async def check_url(request: Request, call_next):
|
|
|
return response
|
|
|
|
|
|
|
|
|
+@app.get("/config")
|
|
|
+async def get_config(user=Depends(get_admin_user)):
|
|
|
+ return {"ENABLE_OPENAI_API": app.state.config.ENABLE_OPENAI_API}
|
|
|
+
|
|
|
+
|
|
|
+class OpenAIConfigForm(BaseModel):
|
|
|
+ enable_openai_api: Optional[bool] = None
|
|
|
+
|
|
|
+
|
|
|
+@app.post("/config/update")
|
|
|
+async def update_config(form_data: OpenAIConfigForm, user=Depends(get_admin_user)):
|
|
|
+ app.state.config.ENABLE_OPENAI_API = form_data.enable_openai_api
|
|
|
+ return {"ENABLE_OPENAI_API": app.state.config.ENABLE_OPENAI_API}
|
|
|
+
|
|
|
+
|
|
|
class UrlsUpdateForm(BaseModel):
|
|
|
urls: List[str]
|
|
|
|
|
@@ -165,10 +183,13 @@ async def speech(request: Request, user=Depends(get_verified_user)):
|
|
|
|
|
|
async def fetch_url(url, key):
|
|
|
try:
|
|
|
- headers = {"Authorization": f"Bearer {key}"}
|
|
|
- async with aiohttp.ClientSession() as session:
|
|
|
- async with session.get(url, headers=headers) as response:
|
|
|
- return await response.json()
|
|
|
+ if key != "":
|
|
|
+ headers = {"Authorization": f"Bearer {key}"}
|
|
|
+ async with aiohttp.ClientSession() as session:
|
|
|
+ async with session.get(url, headers=headers) as response:
|
|
|
+ return await response.json()
|
|
|
+ else:
|
|
|
+ return None
|
|
|
except Exception as e:
|
|
|
# Handle connection error here
|
|
|
log.error(f"Connection error: {e}")
|
|
@@ -200,7 +221,7 @@ async def get_all_models():
|
|
|
if (
|
|
|
len(app.state.config.OPENAI_API_KEYS) == 1
|
|
|
and app.state.config.OPENAI_API_KEYS[0] == ""
|
|
|
- ):
|
|
|
+ ) or not app.state.config.ENABLE_OPENAI_API:
|
|
|
models = {"data": []}
|
|
|
else:
|
|
|
tasks = [
|