Files
open-webui/backend/open_webui/routers/webui.py

95 lines
2.1 KiB
Python
Raw Normal View History

2024-08-28 00:10:27 +02:00
import inspect
import json
import logging
2024-10-22 03:16:48 -07:00
import time
2024-08-28 00:10:27 +02:00
from typing import AsyncGenerator, Generator, Iterator
2024-12-11 18:36:59 -08:00
from open_webui.socket.main import get_event_call, get_event_emitter
2024-12-10 00:54:13 -08:00
from open_webui.models.functions import Functions
from open_webui.models.models import Models
from open_webui.routers import (
2024-01-07 23:43:32 -08:00
auths,
chats,
2024-10-16 21:05:03 -07:00
folders,
2024-08-28 00:10:27 +02:00
configs,
2024-11-14 18:35:14 -08:00
groups,
2024-08-28 00:10:27 +02:00
files,
functions,
memories,
2024-05-24 00:26:00 -07:00
models,
2024-10-01 22:45:04 -07:00
knowledge,
2024-01-07 23:43:32 -08:00
prompts,
2024-10-22 03:16:48 -07:00
evaluations,
2024-08-28 00:10:27 +02:00
tools,
users,
2024-01-07 23:43:32 -08:00
utils,
)
2024-12-11 18:36:59 -08:00
from open_webui.utils.plugin import load_function_module_by_id
from open_webui.config import (
ADMIN_EMAIL,
2024-08-28 00:10:27 +02:00
CORS_ALLOW_ORIGIN,
2024-02-14 01:17:43 -08:00
DEFAULT_MODELS,
DEFAULT_PROMPT_SUGGESTIONS,
DEFAULT_USER_ROLE,
MODEL_ORDER_LIST,
2024-08-28 00:10:27 +02:00
ENABLE_COMMUNITY_SHARING,
ENABLE_LOGIN_FORM,
2024-08-28 00:10:27 +02:00
ENABLE_MESSAGE_RATING,
ENABLE_SIGNUP,
2024-11-19 12:17:23 -08:00
ENABLE_API_KEY,
2024-10-22 03:16:48 -07:00
ENABLE_EVALUATION_ARENA_MODELS,
EVALUATION_ARENA_MODELS,
DEFAULT_ARENA_MODEL,
2024-08-28 00:10:27 +02:00
JWT_EXPIRES_IN,
ENABLE_OAUTH_ROLE_MANAGEMENT,
2024-10-03 20:55:32 +02:00
OAUTH_ROLES_CLAIM,
2024-08-28 00:10:27 +02:00
OAUTH_EMAIL_CLAIM,
OAUTH_PICTURE_CLAIM,
OAUTH_USERNAME_CLAIM,
2024-10-11 14:08:11 +02:00
OAUTH_ALLOWED_ROLES,
OAUTH_ADMIN_ROLES,
2024-08-28 00:10:27 +02:00
SHOW_ADMIN_DETAILS,
2024-02-14 01:17:43 -08:00
USER_PERMISSIONS,
2024-03-20 18:35:02 -07:00
WEBHOOK_URL,
2024-08-28 00:10:27 +02:00
WEBUI_AUTH,
WEBUI_BANNERS,
ENABLE_LDAP,
LDAP_SERVER_LABEL,
LDAP_SERVER_HOST,
LDAP_SERVER_PORT,
LDAP_ATTRIBUTE_FOR_USERNAME,
LDAP_SEARCH_FILTERS,
LDAP_SEARCH_BASE,
LDAP_APP_DN,
LDAP_APP_PASSWORD,
LDAP_USE_TLS,
LDAP_CA_CERT_FILE,
LDAP_CIPHERS,
2024-06-10 20:39:55 -07:00
AppConfig,
2024-02-14 01:17:43 -08:00
)
from open_webui.env import (
2024-11-09 18:01:23 -08:00
ENV,
SRC_LOG_LEVELS,
WEBUI_AUTH_TRUSTED_EMAIL_HEADER,
WEBUI_AUTH_TRUSTED_NAME_HEADER,
)
2024-08-28 00:10:27 +02:00
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import StreamingResponse
2024-06-24 11:17:18 -07:00
from pydantic import BaseModel
from open_webui.utils.misc import (
2024-08-28 00:10:27 +02:00
openai_chat_chunk_message_template,
openai_chat_completion_message_template,
)
2024-09-07 03:09:57 +01:00
from open_webui.utils.payload import (
apply_model_params_to_body_openai,
apply_model_system_prompt_to_body,
)
from open_webui.utils.tools import get_tools
2024-06-24 11:17:18 -07:00
2023-11-18 16:47:12 -08:00
2024-08-22 13:34:35 +01:00
log = logging.getLogger(__name__)
log.setLevel(SRC_LOG_LEVELS["MAIN"])