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

95 lines
2.1 KiB
Python
Raw Normal View History

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