Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

__init__.py 1.4KB

1234567891011121314151617181920212223242526272829303132333435
  1. from contextvars import ContextVar
  2. from threading import Lock
  3. from typing import TYPE_CHECKING
  4. from contexts.wrapper import RecyclableContextVar
  5. if TYPE_CHECKING:
  6. from core.model_runtime.entities.model_entities import AIModelEntity
  7. from core.plugin.entities.plugin_daemon import PluginModelProviderEntity
  8. from core.tools.plugin_tool.provider import PluginToolProviderController
  9. from core.workflow.entities.variable_pool import VariablePool
  10. """
  11. To avoid race-conditions caused by gunicorn thread recycling, using RecyclableContextVar to replace with
  12. """
  13. plugin_tool_providers: RecyclableContextVar[dict[str, "PluginToolProviderController"]] = RecyclableContextVar(
  14. ContextVar("plugin_tool_providers")
  15. )
  16. plugin_tool_providers_lock: RecyclableContextVar[Lock] = RecyclableContextVar(ContextVar("plugin_tool_providers_lock"))
  17. plugin_model_providers: RecyclableContextVar[list["PluginModelProviderEntity"] | None] = RecyclableContextVar(
  18. ContextVar("plugin_model_providers")
  19. )
  20. plugin_model_providers_lock: RecyclableContextVar[Lock] = RecyclableContextVar(
  21. ContextVar("plugin_model_providers_lock")
  22. )
  23. plugin_model_schema_lock: RecyclableContextVar[Lock] = RecyclableContextVar(ContextVar("plugin_model_schema_lock"))
  24. plugin_model_schemas: RecyclableContextVar[dict[str, "AIModelEntity"]] = RecyclableContextVar(
  25. ContextVar("plugin_model_schemas")
  26. )