This commit is contained in:
Classic298
2026-02-08 00:19:26 +01:00
committed by GitHub
parent 73bb600034
commit 494cf8b3ef
2 changed files with 36 additions and 0 deletions

View File

@@ -443,6 +443,9 @@ async def get_filtered_models(models, user, db=None):
async def get_ollama_tags(
request: Request, url_idx: Optional[int] = None, user=Depends(get_verified_user)
):
if not request.app.state.config.ENABLE_OLLAMA_API:
raise HTTPException(status_code=503, detail="Ollama API is disabled")
models = []
if url_idx is None:
@@ -707,6 +710,9 @@ async def pull_model(
url_idx: int = 0,
user=Depends(get_admin_user),
):
if not request.app.state.config.ENABLE_OLLAMA_API:
raise HTTPException(status_code=503, detail="Ollama API is disabled")
form_data = form_data.model_dump(exclude_none=True)
form_data["model"] = form_data.get("model", form_data.get("name"))
@@ -738,6 +744,9 @@ async def push_model(
url_idx: Optional[int] = None,
user=Depends(get_admin_user),
):
if not request.app.state.config.ENABLE_OLLAMA_API:
raise HTTPException(status_code=503, detail="Ollama API is disabled")
if url_idx is None:
await get_all_models(request, user=user)
models = request.app.state.OLLAMA_MODELS
@@ -777,6 +786,9 @@ async def create_model(
url_idx: int = 0,
user=Depends(get_admin_user),
):
if not request.app.state.config.ENABLE_OLLAMA_API:
raise HTTPException(status_code=503, detail="Ollama API is disabled")
log.debug(f"form_data: {form_data}")
url = request.app.state.config.OLLAMA_BASE_URLS[url_idx]
@@ -801,6 +813,9 @@ async def copy_model(
url_idx: Optional[int] = None,
user=Depends(get_admin_user),
):
if not request.app.state.config.ENABLE_OLLAMA_API:
raise HTTPException(status_code=503, detail="Ollama API is disabled")
if url_idx is None:
await get_all_models(request, user=user)
models = request.app.state.OLLAMA_MODELS
@@ -861,6 +876,9 @@ async def delete_model(
url_idx: Optional[int] = None,
user=Depends(get_admin_user),
):
if not request.app.state.config.ENABLE_OLLAMA_API:
raise HTTPException(status_code=503, detail="Ollama API is disabled")
form_data = form_data.model_dump(exclude_none=True)
form_data["model"] = form_data.get("model", form_data.get("name"))
@@ -923,6 +941,9 @@ async def delete_model(
async def show_model_info(
request: Request, form_data: ModelNameForm, user=Depends(get_verified_user)
):
if not request.app.state.config.ENABLE_OLLAMA_API:
raise HTTPException(status_code=503, detail="Ollama API is disabled")
form_data = form_data.model_dump(exclude_none=True)
form_data["model"] = form_data.get("model", form_data.get("name"))
@@ -995,6 +1016,9 @@ async def embed(
url_idx: Optional[int] = None,
user=Depends(get_verified_user),
):
if not request.app.state.config.ENABLE_OLLAMA_API:
raise HTTPException(status_code=503, detail="Ollama API is disabled")
log.info(f"generate_ollama_batch_embeddings {form_data}")
if url_idx is None:
@@ -1077,6 +1101,9 @@ async def embeddings(
url_idx: Optional[int] = None,
user=Depends(get_verified_user),
):
if not request.app.state.config.ENABLE_OLLAMA_API:
raise HTTPException(status_code=503, detail="Ollama API is disabled")
log.info(f"generate_ollama_embeddings {form_data}")
if url_idx is None:
@@ -1167,6 +1194,9 @@ async def generate_completion(
url_idx: Optional[int] = None,
user=Depends(get_verified_user),
):
if not request.app.state.config.ENABLE_OLLAMA_API:
raise HTTPException(status_code=503, detail="Ollama API is disabled")
if url_idx is None:
await get_all_models(request, user=user)
models = request.app.state.OLLAMA_MODELS
@@ -1259,6 +1289,9 @@ async def generate_chat_completion(
bypass_filter: Optional[bool] = False,
bypass_system_prompt: bool = False,
):
if not request.app.state.config.ENABLE_OLLAMA_API:
raise HTTPException(status_code=503, detail="Ollama API is disabled")
# NOTE: We intentionally do NOT use Depends(get_session) here.
# Database operations (get_model_by_id, has_access) manage their own short-lived sessions.
# This prevents holding a connection during the entire LLM call (30-60+ seconds),

View File

@@ -545,6 +545,9 @@ async def get_all_models(request: Request, user: UserModel) -> dict[str, list]:
async def get_models(
request: Request, url_idx: Optional[int] = None, user=Depends(get_verified_user)
):
if not request.app.state.config.ENABLE_OPENAI_API:
raise HTTPException(status_code=503, detail="OpenAI API is disabled")
models = {
"data": [],
}