This commit is contained in:
Timothy Jaeryang Baek
2024-12-12 20:22:17 -08:00
parent 403262d764
commit 4311bb7b99
10 changed files with 1102 additions and 966 deletions
+7 -7
View File
@@ -41,7 +41,7 @@ router = APIRouter()
@router.get("/config")
async def get_config(request: Request, user=Depends(get_admin_user)):
return {
"enabled": request.app.state.config.ENABLED,
"enabled": request.app.state.config.ENABLE_IMAGE_GENERATION,
"engine": request.app.state.config.ENGINE,
"openai": {
"OPENAI_API_BASE_URL": request.app.state.config.OPENAI_API_BASE_URL,
@@ -94,7 +94,7 @@ async def update_config(
request: Request, form_data: ConfigForm, user=Depends(get_admin_user)
):
request.app.state.config.ENGINE = form_data.engine
request.app.state.config.ENABLED = form_data.enabled
request.app.state.config.ENABLE_IMAGE_GENERATION = form_data.enabled
request.app.state.config.OPENAI_API_BASE_URL = form_data.openai.OPENAI_API_BASE_URL
request.app.state.config.OPENAI_API_KEY = form_data.openai.OPENAI_API_KEY
@@ -131,7 +131,7 @@ async def update_config(
)
return {
"enabled": request.app.state.config.ENABLED,
"enabled": request.app.state.config.ENABLE_IMAGE_GENERATION,
"engine": request.app.state.config.ENGINE,
"openai": {
"OPENAI_API_BASE_URL": request.app.state.config.OPENAI_API_BASE_URL,
@@ -175,7 +175,7 @@ async def verify_url(request: Request, user=Depends(get_admin_user)):
r.raise_for_status()
return True
except Exception:
request.app.state.config.ENABLED = False
request.app.state.config.ENABLE_IMAGE_GENERATION = False
raise HTTPException(status_code=400, detail=ERROR_MESSAGES.INVALID_URL)
elif request.app.state.config.ENGINE == "comfyui":
try:
@@ -185,7 +185,7 @@ async def verify_url(request: Request, user=Depends(get_admin_user)):
r.raise_for_status()
return True
except Exception:
request.app.state.config.ENABLED = False
request.app.state.config.ENABLE_IMAGE_GENERATION = False
raise HTTPException(status_code=400, detail=ERROR_MESSAGES.INVALID_URL)
else:
return True
@@ -232,7 +232,7 @@ def get_image_model():
options = r.json()
return options["sd_model_checkpoint"]
except Exception as e:
request.app.state.config.ENABLED = False
request.app.state.config.ENABLE_IMAGE_GENERATION = False
raise HTTPException(status_code=400, detail=ERROR_MESSAGES.DEFAULT(e))
@@ -351,7 +351,7 @@ def get_models(request: Request, user=Depends(get_verified_user)):
)
)
except Exception as e:
request.app.state.config.ENABLED = False
request.app.state.config.ENABLE_IMAGE_GENERATION = False
raise HTTPException(status_code=400, detail=ERROR_MESSAGES.DEFAULT(e))
+26 -20
View File
@@ -195,12 +195,12 @@ async def get_embedding_config(request: Request, user=Depends(get_admin_user)):
"embedding_model": request.app.state.config.RAG_EMBEDDING_MODEL,
"embedding_batch_size": request.app.state.config.RAG_EMBEDDING_BATCH_SIZE,
"openai_config": {
"url": request.app.state.config.OPENAI_API_BASE_URL,
"key": request.app.state.config.OPENAI_API_KEY,
"url": request.app.state.config.RAG_OPENAI_API_BASE_URL,
"key": request.app.state.config.RAG_OPENAI_API_KEY,
},
"ollama_config": {
"url": request.app.state.config.OLLAMA_BASE_URL,
"key": request.app.state.config.OLLAMA_API_KEY,
"url": request.app.state.config.RAG_OLLAMA_BASE_URL,
"key": request.app.state.config.RAG_OLLAMA_API_KEY,
},
}
@@ -244,14 +244,20 @@ async def update_embedding_config(
if request.app.state.config.RAG_EMBEDDING_ENGINE in ["ollama", "openai"]:
if form_data.openai_config is not None:
request.app.state.config.OPENAI_API_BASE_URL = (
request.app.state.config.RAG_OPENAI_API_BASE_URL = (
form_data.openai_config.url
)
request.app.state.config.OPENAI_API_KEY = form_data.openai_config.key
request.app.state.config.RAG_OPENAI_API_KEY = (
form_data.openai_config.key
)
if form_data.ollama_config is not None:
request.app.state.config.OLLAMA_BASE_URL = form_data.ollama_config.url
request.app.state.config.OLLAMA_API_KEY = form_data.ollama_config.key
request.app.state.config.RAG_OLLAMA_BASE_URL = (
form_data.ollama_config.url
)
request.app.state.config.RAG_OLLAMA_API_KEY = (
form_data.ollama_config.key
)
request.app.state.config.RAG_EMBEDDING_BATCH_SIZE = (
form_data.embedding_batch_size
@@ -267,14 +273,14 @@ async def update_embedding_config(
request.app.state.config.RAG_EMBEDDING_MODEL,
request.app.state.ef,
(
request.app.state.config.OPENAI_API_BASE_URL
request.app.state.config.RAG_OPENAI_API_BASE_URL
if request.app.state.config.RAG_EMBEDDING_ENGINE == "openai"
else request.app.state.config.OLLAMA_BASE_URL
else request.app.state.config.RAG_OLLAMA_BASE_URL
),
(
request.app.state.config.OPENAI_API_KEY
request.app.state.config.RAG_OPENAI_API_KEY
if request.app.state.config.RAG_EMBEDDING_ENGINE == "openai"
else request.app.state.config.OLLAMA_API_KEY
else request.app.state.config.RAG_OLLAMA_API_KEY
),
request.app.state.config.RAG_EMBEDDING_BATCH_SIZE,
)
@@ -285,12 +291,12 @@ async def update_embedding_config(
"embedding_model": request.app.state.config.RAG_EMBEDDING_MODEL,
"embedding_batch_size": request.app.state.config.RAG_EMBEDDING_BATCH_SIZE,
"openai_config": {
"url": request.app.state.config.OPENAI_API_BASE_URL,
"key": request.app.state.config.OPENAI_API_KEY,
"url": request.app.state.config.RAG_OPENAI_API_BASE_URL,
"key": request.app.state.config.RAG_OPENAI_API_KEY,
},
"ollama_config": {
"url": request.app.state.config.OLLAMA_BASE_URL,
"key": request.app.state.config.OLLAMA_API_KEY,
"url": request.app.state.config.RAG_OLLAMA_BASE_URL,
"key": request.app.state.config.RAG_OLLAMA_API_KEY,
},
}
except Exception as e:
@@ -747,14 +753,14 @@ def save_docs_to_vector_db(
request.app.state.config.RAG_EMBEDDING_MODEL,
request.app.state.ef,
(
request.app.state.config.OPENAI_API_BASE_URL
request.app.state.config.RAG_OPENAI_API_BASE_URL
if request.app.state.config.RAG_EMBEDDING_ENGINE == "openai"
else request.app.state.config.OLLAMA_BASE_URL
else request.app.state.config.RAG_OLLAMA_BASE_URL
),
(
request.app.state.config.OPENAI_API_KEY
request.app.state.config.RAG_OPENAI_API_KEY
if request.app.state.config.RAG_EMBEDDING_ENGINE == "openai"
else request.app.state.config.OLLAMA_API_KEY
else request.app.state.config.RAG_OLLAMA_API_KEY
),
request.app.state.config.RAG_EMBEDDING_BATCH_SIZE,
)
+13 -13
View File
@@ -5,7 +5,7 @@ from pydantic import BaseModel
from typing import Optional
import logging
from open_webui.utils.chat import generate_chat_completion
from open_webui.utils.task import (
title_generation_template,
query_generation_template,
@@ -193,7 +193,7 @@ Artificial Intelligence in Healthcare
# Handle pipeline filters
try:
payload = process_pipeline_inlet_filter(payload, user, models)
payload = process_pipeline_inlet_filter(request, payload, user, models)
except Exception as e:
if len(e.args) > 1:
return JSONResponse(
@@ -208,7 +208,7 @@ Artificial Intelligence in Healthcare
if "chat_id" in payload:
del payload["chat_id"]
return await generate_chat_completions(form_data=payload, user=user)
return await generate_chat_completion(request, form_data=payload, user=user)
@router.post("/tags/completions")
@@ -282,7 +282,7 @@ JSON format: { "tags": ["tag1", "tag2", "tag3"] }
# Handle pipeline filters
try:
payload = process_pipeline_inlet_filter(payload, user, models)
payload = process_pipeline_inlet_filter(request, payload, user, models)
except Exception as e:
if len(e.args) > 1:
return JSONResponse(
@@ -297,7 +297,7 @@ JSON format: { "tags": ["tag1", "tag2", "tag3"] }
if "chat_id" in payload:
del payload["chat_id"]
return await generate_chat_completions(form_data=payload, user=user)
return await generate_chat_completion(request, form_data=payload, user=user)
@router.post("/queries/completions")
@@ -363,7 +363,7 @@ async def generate_queries(
# Handle pipeline filters
try:
payload = process_pipeline_inlet_filter(payload, user, models)
payload = process_pipeline_inlet_filter(request, payload, user, models)
except Exception as e:
if len(e.args) > 1:
return JSONResponse(
@@ -378,7 +378,7 @@ async def generate_queries(
if "chat_id" in payload:
del payload["chat_id"]
return await generate_chat_completions(form_data=payload, user=user)
return await generate_chat_completion(request, form_data=payload, user=user)
@router.post("/auto/completions")
@@ -449,7 +449,7 @@ async def generate_autocompletion(
# Handle pipeline filters
try:
payload = process_pipeline_inlet_filter(payload, user, models)
payload = process_pipeline_inlet_filter(request, payload, user, models)
except Exception as e:
if len(e.args) > 1:
return JSONResponse(
@@ -464,7 +464,7 @@ async def generate_autocompletion(
if "chat_id" in payload:
del payload["chat_id"]
return await generate_chat_completions(form_data=payload, user=user)
return await generate_chat_completion(request, form_data=payload, user=user)
@router.post("/emoji/completions")
@@ -523,7 +523,7 @@ Message: """{{prompt}}"""
# Handle pipeline filters
try:
payload = process_pipeline_inlet_filter(payload, user, models)
payload = process_pipeline_inlet_filter(request, payload, user, models)
except Exception as e:
if len(e.args) > 1:
return JSONResponse(
@@ -538,7 +538,7 @@ Message: """{{prompt}}"""
if "chat_id" in payload:
del payload["chat_id"]
return await generate_chat_completions(form_data=payload, user=user)
return await generate_chat_completion(request, form_data=payload, user=user)
@router.post("/moa/completions")
@@ -590,7 +590,7 @@ Responses from models: {{responses}}"""
}
try:
payload = process_pipeline_inlet_filter(payload, user, models)
payload = process_pipeline_inlet_filter(request, payload, user, models)
except Exception as e:
if len(e.args) > 1:
return JSONResponse(
@@ -605,4 +605,4 @@ Responses from models: {{responses}}"""
if "chat_id" in payload:
del payload["chat_id"]
return await generate_chat_completions(form_data=payload, user=user)
return await generate_chat_completion(request, form_data=payload, user=user)