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
|
2024-09-04 16:54:48 +02:00
|
|
|
from open_webui.config import (
|
2024-06-03 21:17:43 -07:00
|
|
|
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,
|
2024-11-26 00:55:58 -08:00
|
|
|
MODEL_ORDER_LIST,
|
2024-08-28 00:10:27 +02:00
|
|
|
ENABLE_COMMUNITY_SHARING,
|
2024-07-24 21:44:40 -04:00
|
|
|
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,
|
2024-10-10 23:00:05 +02:00
|
|
|
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,
|
2024-05-26 12:18:43 -07:00
|
|
|
WEBUI_BANNERS,
|
2024-11-06 03:20:54 +05:00
|
|
|
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
|
|
|
)
|
2024-09-04 16:54:48 +02:00
|
|
|
from open_webui.env import (
|
2024-11-09 18:01:23 -08:00
|
|
|
ENV,
|
2024-11-21 23:14:05 -05:00
|
|
|
SRC_LOG_LEVELS,
|
2024-09-04 16:54:48 +02:00
|
|
|
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
|
2024-09-04 16:54:48 +02:00
|
|
|
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,
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
2024-09-04 16:54:48 +02:00
|
|
|
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__)
|
2024-11-21 23:14:05 -05:00
|
|
|
log.setLevel(SRC_LOG_LEVELS["MAIN"])
|