mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-07-22 12:26:08 +00:00
feat: 不再预先计算前文token数而是在报错时提醒用户重置
This commit is contained in:
@@ -0,0 +1,194 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from . import entities
|
||||
from ...core import app
|
||||
|
||||
from . import token
|
||||
from .apis import chatcmpl
|
||||
|
||||
|
||||
class ModelManager:
|
||||
"""模型管理器"""
|
||||
|
||||
ap: app.Application
|
||||
|
||||
model_list: list[entities.LLMModelInfo]
|
||||
|
||||
def __init__(self, ap: app.Application):
|
||||
self.ap = ap
|
||||
self.model_list = []
|
||||
|
||||
async def get_model_by_name(self, name: str) -> entities.LLMModelInfo:
|
||||
"""通过名称获取模型
|
||||
"""
|
||||
for model in self.model_list:
|
||||
if model.name == name:
|
||||
return model
|
||||
raise ValueError(f"不支持模型: {name} , 请检查配置文件")
|
||||
|
||||
async def initialize(self):
|
||||
openai_chat_completion = chatcmpl.OpenAIChatCompletion(self.ap)
|
||||
await openai_chat_completion.initialize()
|
||||
openai_token_mgr = token.TokenManager("openai", list(self.ap.provider_cfg.data['openai-config']['api-keys']))
|
||||
|
||||
model_list = [
|
||||
entities.LLMModelInfo(
|
||||
name="gpt-3.5-turbo",
|
||||
token_mgr=openai_token_mgr,
|
||||
requester=openai_chat_completion,
|
||||
tool_call_supported=True,
|
||||
),
|
||||
entities.LLMModelInfo(
|
||||
name="gpt-3.5-turbo-1106",
|
||||
token_mgr=openai_token_mgr,
|
||||
requester=openai_chat_completion,
|
||||
tool_call_supported=True,
|
||||
),
|
||||
entities.LLMModelInfo(
|
||||
name="gpt-3.5-turbo-16k",
|
||||
token_mgr=openai_token_mgr,
|
||||
requester=openai_chat_completion,
|
||||
tool_call_supported=True,
|
||||
),
|
||||
entities.LLMModelInfo(
|
||||
name="gpt-3.5-turbo-0613",
|
||||
token_mgr=openai_token_mgr,
|
||||
requester=openai_chat_completion,
|
||||
tool_call_supported=True,
|
||||
),
|
||||
entities.LLMModelInfo(
|
||||
name="gpt-3.5-turbo-16k-0613",
|
||||
token_mgr=openai_token_mgr,
|
||||
requester=openai_chat_completion,
|
||||
tool_call_supported=True,
|
||||
),
|
||||
entities.LLMModelInfo(
|
||||
name="gpt-3.5-turbo-0301",
|
||||
token_mgr=openai_token_mgr,
|
||||
requester=openai_chat_completion,
|
||||
tool_call_supported=True,
|
||||
)
|
||||
]
|
||||
|
||||
self.model_list.extend(model_list)
|
||||
|
||||
gpt4_model_list = [
|
||||
entities.LLMModelInfo(
|
||||
name="gpt-4-0125-preview",
|
||||
token_mgr=openai_token_mgr,
|
||||
requester=openai_chat_completion,
|
||||
tool_call_supported=True,
|
||||
),
|
||||
entities.LLMModelInfo(
|
||||
name="gpt-4-turbo-preview",
|
||||
token_mgr=openai_token_mgr,
|
||||
requester=openai_chat_completion,
|
||||
tool_call_supported=True,
|
||||
),
|
||||
entities.LLMModelInfo(
|
||||
name="gpt-4-1106-preview",
|
||||
token_mgr=openai_token_mgr,
|
||||
requester=openai_chat_completion,
|
||||
tool_call_supported=True,
|
||||
),
|
||||
entities.LLMModelInfo(
|
||||
name="gpt-4-vision-preview",
|
||||
token_mgr=openai_token_mgr,
|
||||
requester=openai_chat_completion,
|
||||
tool_call_supported=True,
|
||||
),
|
||||
entities.LLMModelInfo(
|
||||
name="gpt-4",
|
||||
token_mgr=openai_token_mgr,
|
||||
requester=openai_chat_completion,
|
||||
tool_call_supported=True,
|
||||
),
|
||||
entities.LLMModelInfo(
|
||||
name="gpt-4-0613",
|
||||
token_mgr=openai_token_mgr,
|
||||
requester=openai_chat_completion,
|
||||
tool_call_supported=True,
|
||||
),
|
||||
entities.LLMModelInfo(
|
||||
name="gpt-4-32k",
|
||||
token_mgr=openai_token_mgr,
|
||||
requester=openai_chat_completion,
|
||||
tool_call_supported=True,
|
||||
),
|
||||
entities.LLMModelInfo(
|
||||
name="gpt-4-32k-0613",
|
||||
token_mgr=openai_token_mgr,
|
||||
requester=openai_chat_completion,
|
||||
tool_call_supported=True,
|
||||
)
|
||||
]
|
||||
|
||||
self.model_list.extend(gpt4_model_list)
|
||||
|
||||
one_api_model_list = [
|
||||
entities.LLMModelInfo(
|
||||
name="OneAPI/SparkDesk",
|
||||
model_name='SparkDesk',
|
||||
token_mgr=openai_token_mgr,
|
||||
requester=openai_chat_completion,
|
||||
tool_call_supported=False,
|
||||
),
|
||||
entities.LLMModelInfo(
|
||||
name="OneAPI/chatglm_pro",
|
||||
model_name='chatglm_pro',
|
||||
token_mgr=openai_token_mgr,
|
||||
requester=openai_chat_completion,
|
||||
tool_call_supported=False,
|
||||
),
|
||||
entities.LLMModelInfo(
|
||||
name="OneAPI/chatglm_std",
|
||||
model_name='chatglm_std',
|
||||
token_mgr=openai_token_mgr,
|
||||
requester=openai_chat_completion,
|
||||
tool_call_supported=False,
|
||||
),
|
||||
entities.LLMModelInfo(
|
||||
name="OneAPI/chatglm_lite",
|
||||
model_name='chatglm_lite',
|
||||
token_mgr=openai_token_mgr,
|
||||
requester=openai_chat_completion,
|
||||
tool_call_supported=False,
|
||||
),
|
||||
entities.LLMModelInfo(
|
||||
name="OneAPI/qwen-v1",
|
||||
model_name='qwen-v1',
|
||||
token_mgr=openai_token_mgr,
|
||||
requester=openai_chat_completion,
|
||||
tool_call_supported=False,
|
||||
),
|
||||
entities.LLMModelInfo(
|
||||
name="OneAPI/qwen-plus-v1",
|
||||
model_name='qwen-plus-v1',
|
||||
token_mgr=openai_token_mgr,
|
||||
requester=openai_chat_completion,
|
||||
tool_call_supported=False,
|
||||
),
|
||||
entities.LLMModelInfo(
|
||||
name="OneAPI/ERNIE-Bot",
|
||||
model_name='ERNIE-Bot',
|
||||
token_mgr=openai_token_mgr,
|
||||
requester=openai_chat_completion,
|
||||
tool_call_supported=False,
|
||||
),
|
||||
entities.LLMModelInfo(
|
||||
name="OneAPI/ERNIE-Bot-turbo",
|
||||
model_name='ERNIE-Bot-turbo',
|
||||
token_mgr=openai_token_mgr,
|
||||
requester=openai_chat_completion,
|
||||
tool_call_supported=False,
|
||||
),
|
||||
entities.LLMModelInfo(
|
||||
name="OneAPI/gemini-pro",
|
||||
model_name='gemini-pro',
|
||||
token_mgr=openai_token_mgr,
|
||||
requester=openai_chat_completion,
|
||||
tool_call_supported=False,
|
||||
),
|
||||
]
|
||||
|
||||
self.model_list.extend(one_api_model_list)
|
||||
Reference in New Issue
Block a user