webui.py 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. import inspect
  2. import json
  3. import logging
  4. import time
  5. from typing import AsyncGenerator, Generator, Iterator
  6. from open_webui.socket.main import get_event_call, get_event_emitter
  7. from open_webui.models.functions import Functions
  8. from open_webui.models.models import Models
  9. from open_webui.routers import (
  10. auths,
  11. chats,
  12. folders,
  13. configs,
  14. groups,
  15. files,
  16. functions,
  17. memories,
  18. models,
  19. knowledge,
  20. prompts,
  21. evaluations,
  22. tools,
  23. users,
  24. utils,
  25. )
  26. from open_webui.utils.plugin import load_function_module_by_id
  27. from open_webui.config import (
  28. ADMIN_EMAIL,
  29. CORS_ALLOW_ORIGIN,
  30. DEFAULT_MODELS,
  31. DEFAULT_PROMPT_SUGGESTIONS,
  32. DEFAULT_USER_ROLE,
  33. MODEL_ORDER_LIST,
  34. ENABLE_COMMUNITY_SHARING,
  35. ENABLE_LOGIN_FORM,
  36. ENABLE_MESSAGE_RATING,
  37. ENABLE_SIGNUP,
  38. ENABLE_API_KEY,
  39. ENABLE_EVALUATION_ARENA_MODELS,
  40. EVALUATION_ARENA_MODELS,
  41. DEFAULT_ARENA_MODEL,
  42. JWT_EXPIRES_IN,
  43. ENABLE_OAUTH_ROLE_MANAGEMENT,
  44. OAUTH_ROLES_CLAIM,
  45. OAUTH_EMAIL_CLAIM,
  46. OAUTH_PICTURE_CLAIM,
  47. OAUTH_USERNAME_CLAIM,
  48. OAUTH_ALLOWED_ROLES,
  49. OAUTH_ADMIN_ROLES,
  50. SHOW_ADMIN_DETAILS,
  51. USER_PERMISSIONS,
  52. WEBHOOK_URL,
  53. WEBUI_AUTH,
  54. WEBUI_BANNERS,
  55. ENABLE_LDAP,
  56. LDAP_SERVER_LABEL,
  57. LDAP_SERVER_HOST,
  58. LDAP_SERVER_PORT,
  59. LDAP_ATTRIBUTE_FOR_USERNAME,
  60. LDAP_SEARCH_FILTERS,
  61. LDAP_SEARCH_BASE,
  62. LDAP_APP_DN,
  63. LDAP_APP_PASSWORD,
  64. LDAP_USE_TLS,
  65. LDAP_CA_CERT_FILE,
  66. LDAP_CIPHERS,
  67. AppConfig,
  68. )
  69. from open_webui.env import (
  70. ENV,
  71. SRC_LOG_LEVELS,
  72. WEBUI_AUTH_TRUSTED_EMAIL_HEADER,
  73. WEBUI_AUTH_TRUSTED_NAME_HEADER,
  74. )
  75. from fastapi import FastAPI
  76. from fastapi.middleware.cors import CORSMiddleware
  77. from fastapi.responses import StreamingResponse
  78. from pydantic import BaseModel
  79. from open_webui.utils.misc import (
  80. openai_chat_chunk_message_template,
  81. openai_chat_completion_message_template,
  82. )
  83. from open_webui.utils.payload import (
  84. apply_model_params_to_body_openai,
  85. apply_model_system_prompt_to_body,
  86. )
  87. from open_webui.utils.tools import get_tools
  88. log = logging.getLogger(__name__)
  89. log.setLevel(SRC_LOG_LEVELS["MAIN"])