mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-07-17 18:06:06 +00:00
refactor: lookup requester from discover engine
This commit is contained in:
@@ -187,6 +187,9 @@ class ComponentDiscoveryEngine:
|
|||||||
if name == 'ComponentTemplate':
|
if name == 'ComponentTemplate':
|
||||||
continue
|
continue
|
||||||
components[name] = self.load_blueprint_comp_group(component, owner)
|
components[name] = self.load_blueprint_comp_group(component, owner)
|
||||||
|
|
||||||
|
self.ap.logger.debug(f'Components: {components}')
|
||||||
|
|
||||||
return blueprint_manifest, components
|
return blueprint_manifest, components
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import aiohttp
|
|||||||
|
|
||||||
from . import entities, requester
|
from . import entities, requester
|
||||||
from ...core import app
|
from ...core import app
|
||||||
|
from ...discover import engine
|
||||||
from . import token
|
from . import token
|
||||||
from .requesters import bailianchatcmpl, chatcmpl, anthropicmsgs, moonshotchatcmpl, deepseekchatcmpl, ollamachat, giteeaichatcmpl, volcarkchatcmpl, xaichatcmpl, zhipuaichatcmpl, lmstudiochatcmpl, siliconflowchatcmpl, volcarkchatcmpl
|
from .requesters import bailianchatcmpl, chatcmpl, anthropicmsgs, moonshotchatcmpl, deepseekchatcmpl, ollamachat, giteeaichatcmpl, volcarkchatcmpl, xaichatcmpl, zhipuaichatcmpl, lmstudiochatcmpl, siliconflowchatcmpl, volcarkchatcmpl
|
||||||
|
|
||||||
@@ -16,6 +16,8 @@ class ModelManager:
|
|||||||
|
|
||||||
ap: app.Application
|
ap: app.Application
|
||||||
|
|
||||||
|
requester_components: list[engine.Component]
|
||||||
|
|
||||||
model_list: list[entities.LLMModelInfo]
|
model_list: list[entities.LLMModelInfo]
|
||||||
|
|
||||||
requesters: dict[str, requester.LLMAPIRequester]
|
requesters: dict[str, requester.LLMAPIRequester]
|
||||||
@@ -38,14 +40,21 @@ class ModelManager:
|
|||||||
|
|
||||||
async def initialize(self):
|
async def initialize(self):
|
||||||
|
|
||||||
|
self.requester_components = self.ap.discover.get_components_by_kind('LLMAPIRequester')
|
||||||
|
|
||||||
# 初始化token_mgr, requester
|
# 初始化token_mgr, requester
|
||||||
for k, v in self.ap.provider_cfg.data['keys'].items():
|
for k, v in self.ap.provider_cfg.data['keys'].items():
|
||||||
self.token_mgrs[k] = token.TokenManager(k, v)
|
self.token_mgrs[k] = token.TokenManager(k, v)
|
||||||
|
|
||||||
for api_cls in requester.preregistered_requesters:
|
# for api_cls in requester.preregistered_requesters:
|
||||||
|
# api_inst = api_cls(self.ap)
|
||||||
|
# await api_inst.initialize()
|
||||||
|
# self.requesters[api_inst.name] = api_inst
|
||||||
|
for component in self.requester_components:
|
||||||
|
api_cls = component.get_python_component_class()
|
||||||
api_inst = api_cls(self.ap)
|
api_inst = api_cls(self.ap)
|
||||||
await api_inst.initialize()
|
await api_inst.initialize()
|
||||||
self.requesters[api_inst.name] = api_inst
|
self.requesters[component.metadata.name] = api_inst
|
||||||
|
|
||||||
# 尝试从api获取最新的模型信息
|
# 尝试从api获取最新的模型信息
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -10,18 +10,6 @@ from . import entities as modelmgr_entities
|
|||||||
from ..tools import entities as tools_entities
|
from ..tools import entities as tools_entities
|
||||||
|
|
||||||
|
|
||||||
preregistered_requesters: list[typing.Type[LLMAPIRequester]] = []
|
|
||||||
|
|
||||||
def requester_class(name: str):
|
|
||||||
|
|
||||||
def decorator(cls: typing.Type[LLMAPIRequester]) -> typing.Type[LLMAPIRequester]:
|
|
||||||
cls.name = name
|
|
||||||
preregistered_requesters.append(cls)
|
|
||||||
return cls
|
|
||||||
|
|
||||||
return decorator
|
|
||||||
|
|
||||||
|
|
||||||
class LLMAPIRequester(metaclass=abc.ABCMeta):
|
class LLMAPIRequester(metaclass=abc.ABCMeta):
|
||||||
"""LLM API请求器
|
"""LLM API请求器
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ from ...tools import entities as tools_entities
|
|||||||
from ....utils import image
|
from ....utils import image
|
||||||
|
|
||||||
|
|
||||||
@requester.requester_class("anthropic-messages")
|
|
||||||
class AnthropicMessages(requester.LLMAPIRequester):
|
class AnthropicMessages(requester.LLMAPIRequester):
|
||||||
"""Anthropic Messages API 请求器"""
|
"""Anthropic Messages API 请求器"""
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ from .. import requester
|
|||||||
from ....core import app
|
from ....core import app
|
||||||
|
|
||||||
|
|
||||||
@requester.requester_class("bailian-chat-completions")
|
|
||||||
class BailianChatCompletions(chatcmpl.OpenAIChatCompletions):
|
class BailianChatCompletions(chatcmpl.OpenAIChatCompletions):
|
||||||
"""阿里云百炼大模型平台 ChatCompletion API 请求器"""
|
"""阿里云百炼大模型平台 ChatCompletion API 请求器"""
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ from ...tools import entities as tools_entities
|
|||||||
from ....utils import image
|
from ....utils import image
|
||||||
|
|
||||||
|
|
||||||
@requester.requester_class("openai-chat-completions")
|
|
||||||
class OpenAIChatCompletions(requester.LLMAPIRequester):
|
class OpenAIChatCompletions(requester.LLMAPIRequester):
|
||||||
"""OpenAI ChatCompletion API 请求器"""
|
"""OpenAI ChatCompletion API 请求器"""
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ from ... import entities as llm_entities
|
|||||||
from ...tools import entities as tools_entities
|
from ...tools import entities as tools_entities
|
||||||
|
|
||||||
|
|
||||||
@requester.requester_class("deepseek-chat-completions")
|
|
||||||
class DeepseekChatCompletions(chatcmpl.OpenAIChatCompletions):
|
class DeepseekChatCompletions(chatcmpl.OpenAIChatCompletions):
|
||||||
"""Deepseek ChatCompletion API 请求器"""
|
"""Deepseek ChatCompletion API 请求器"""
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ from ...tools import entities as tools_entities
|
|||||||
from .. import entities as modelmgr_entities
|
from .. import entities as modelmgr_entities
|
||||||
|
|
||||||
|
|
||||||
@requester.requester_class("gitee-ai-chat-completions")
|
|
||||||
class GiteeAIChatCompletions(chatcmpl.OpenAIChatCompletions):
|
class GiteeAIChatCompletions(chatcmpl.OpenAIChatCompletions):
|
||||||
"""Gitee AI ChatCompletions API 请求器"""
|
"""Gitee AI ChatCompletions API 请求器"""
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ from .. import requester
|
|||||||
from ....core import app
|
from ....core import app
|
||||||
|
|
||||||
|
|
||||||
@requester.requester_class("lmstudio-chat-completions")
|
|
||||||
class LmStudioChatCompletions(chatcmpl.OpenAIChatCompletions):
|
class LmStudioChatCompletions(chatcmpl.OpenAIChatCompletions):
|
||||||
"""LMStudio ChatCompletion API 请求器"""
|
"""LMStudio ChatCompletion API 请求器"""
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ from ... import entities as llm_entities
|
|||||||
from ...tools import entities as tools_entities
|
from ...tools import entities as tools_entities
|
||||||
|
|
||||||
|
|
||||||
@requester.requester_class("moonshot-chat-completions")
|
|
||||||
class MoonshotChatCompletions(chatcmpl.OpenAIChatCompletions):
|
class MoonshotChatCompletions(chatcmpl.OpenAIChatCompletions):
|
||||||
"""Moonshot ChatCompletion API 请求器"""
|
"""Moonshot ChatCompletion API 请求器"""
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ from ....utils import image
|
|||||||
REQUESTER_NAME: str = "ollama-chat"
|
REQUESTER_NAME: str = "ollama-chat"
|
||||||
|
|
||||||
|
|
||||||
@requester.requester_class(REQUESTER_NAME)
|
|
||||||
class OllamaChatCompletions(requester.LLMAPIRequester):
|
class OllamaChatCompletions(requester.LLMAPIRequester):
|
||||||
"""Ollama平台 ChatCompletion API请求器"""
|
"""Ollama平台 ChatCompletion API请求器"""
|
||||||
client: ollama.AsyncClient
|
client: ollama.AsyncClient
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ from .. import requester
|
|||||||
from ....core import app
|
from ....core import app
|
||||||
|
|
||||||
|
|
||||||
@requester.requester_class("siliconflow-chat-completions")
|
|
||||||
class SiliconFlowChatCompletions(chatcmpl.OpenAIChatCompletions):
|
class SiliconFlowChatCompletions(chatcmpl.OpenAIChatCompletions):
|
||||||
"""SiliconFlow ChatCompletion API 请求器"""
|
"""SiliconFlow ChatCompletion API 请求器"""
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ from .. import requester
|
|||||||
from ....core import app
|
from ....core import app
|
||||||
|
|
||||||
|
|
||||||
@requester.requester_class("volcark-chat-completions")
|
|
||||||
class VolcArkChatCompletions(chatcmpl.OpenAIChatCompletions):
|
class VolcArkChatCompletions(chatcmpl.OpenAIChatCompletions):
|
||||||
"""火山方舟大模型平台 ChatCompletion API 请求器"""
|
"""火山方舟大模型平台 ChatCompletion API 请求器"""
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ from .. import requester
|
|||||||
from ....core import app
|
from ....core import app
|
||||||
|
|
||||||
|
|
||||||
@requester.requester_class("xai-chat-completions")
|
|
||||||
class XaiChatCompletions(chatcmpl.OpenAIChatCompletions):
|
class XaiChatCompletions(chatcmpl.OpenAIChatCompletions):
|
||||||
"""xAI ChatCompletion API 请求器"""
|
"""xAI ChatCompletion API 请求器"""
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ from . import chatcmpl
|
|||||||
from .. import requester
|
from .. import requester
|
||||||
|
|
||||||
|
|
||||||
@requester.requester_class("zhipuai-chat-completions")
|
|
||||||
class ZhipuAIChatCompletions(chatcmpl.OpenAIChatCompletions):
|
class ZhipuAIChatCompletions(chatcmpl.OpenAIChatCompletions):
|
||||||
"""智谱AI ChatCompletion API 请求器"""
|
"""智谱AI ChatCompletion API 请求器"""
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user