mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-08-12 22:00:57 +00:00
chore: related configuration of dashscope runner
This commit is contained in:
@@ -0,0 +1,33 @@
|
|||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from .. import migration
|
||||||
|
|
||||||
|
|
||||||
|
@migration.migration_class("dashscope-app-api-config", 29)
|
||||||
|
class DashscopeAppAPICfgMigration(migration.Migration):
|
||||||
|
"""迁移"""
|
||||||
|
|
||||||
|
async def need_migrate(self) -> bool:
|
||||||
|
"""判断当前环境是否需要运行此迁移"""
|
||||||
|
return 'dashscope-app-api' not in self.ap.provider_cfg.data
|
||||||
|
|
||||||
|
async def run(self):
|
||||||
|
"""执行迁移"""
|
||||||
|
self.ap.provider_cfg.data['dashscope-app-api'] = {
|
||||||
|
"app-type": "agent",
|
||||||
|
"api-key": "sk-1234567890",
|
||||||
|
"agent": {
|
||||||
|
"app-id": "Your_app_id",
|
||||||
|
"references_quote": "参考资料来自:"
|
||||||
|
},
|
||||||
|
"workflow": {
|
||||||
|
"app-id": "Your_app_id",
|
||||||
|
"references_quote": "参考资料来自:",
|
||||||
|
"biz_params": {
|
||||||
|
"city": "北京",
|
||||||
|
"date": "2023-08-10"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
await self.ap.provider_cfg.dump_config()
|
||||||
@@ -11,6 +11,8 @@ from ..migrations import m015_gitee_ai_config, m016_dify_service_api, m017_dify_
|
|||||||
from ..migrations import m020_wecom_config, m021_lark_config, m022_lmstudio_config, m023_siliconflow_config, m024_discord_config, m025_gewechat_config
|
from ..migrations import m020_wecom_config, m021_lark_config, m022_lmstudio_config, m023_siliconflow_config, m024_discord_config, m025_gewechat_config
|
||||||
from ..migrations import m026_qqofficial_config, m027_wx_official_account_config
|
from ..migrations import m026_qqofficial_config, m027_wx_official_account_config
|
||||||
|
|
||||||
|
from ..migrations import m029_dashscope_app_api_config
|
||||||
|
|
||||||
@stage.stage_class("MigrationStage")
|
@stage.stage_class("MigrationStage")
|
||||||
class MigrationStage(stage.BootingStage):
|
class MigrationStage(stage.BootingStage):
|
||||||
"""迁移阶段
|
"""迁移阶段
|
||||||
|
|||||||
@@ -23,6 +23,8 @@ class RunnerManager:
|
|||||||
self.using_runner = r(self.ap)
|
self.using_runner = r(self.ap)
|
||||||
await self.using_runner.initialize()
|
await self.using_runner.initialize()
|
||||||
break
|
break
|
||||||
|
else:
|
||||||
|
raise ValueError(f"未找到请求运行器: {self.ap.provider_cfg.data['runner']}")
|
||||||
|
|
||||||
def get_runner(self) -> runner.RequestRunner:
|
def get_runner(self) -> runner.RequestRunner:
|
||||||
return self.using_runner
|
return self.using_runner
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ class DashscopeAPIError(Exception):
|
|||||||
super().__init__(self.message)
|
super().__init__(self.message)
|
||||||
|
|
||||||
|
|
||||||
@runner.runner_class("dashscope-service-api")
|
@runner.runner_class("dashscope-app-api")
|
||||||
class DashScopeAPIRunner(runner.RequestRunner):
|
class DashScopeAPIRunner(runner.RequestRunner):
|
||||||
"阿里云百炼DashsscopeAPI对话请求器"
|
"阿里云百炼DashsscopeAPI对话请求器"
|
||||||
|
|
||||||
@@ -34,7 +34,7 @@ class DashScopeAPIRunner(runner.RequestRunner):
|
|||||||
async def initialize(self):
|
async def initialize(self):
|
||||||
"""初始化"""
|
"""初始化"""
|
||||||
valid_app_types = ["agent", "workflow"]
|
valid_app_types = ["agent", "workflow"]
|
||||||
self.app_type = self.ap.provider_cfg.data["dashscope-service-api"]["app-type"]
|
self.app_type = self.ap.provider_cfg.data["dashscope-app-api"]["app-type"]
|
||||||
#检查配置文件中使用的应用类型是否支持
|
#检查配置文件中使用的应用类型是否支持
|
||||||
if (self.app_type not in valid_app_types):
|
if (self.app_type not in valid_app_types):
|
||||||
raise DashscopeAPIError(
|
raise DashscopeAPIError(
|
||||||
@@ -42,10 +42,10 @@ class DashScopeAPIRunner(runner.RequestRunner):
|
|||||||
)
|
)
|
||||||
|
|
||||||
#初始化Dashscope 参数配置
|
#初始化Dashscope 参数配置
|
||||||
self.app_id = self.ap.provider_cfg.data["dashscope-service-api"][self.app_type]["app-id"]
|
self.app_id = self.ap.provider_cfg.data["dashscope-app-api"][self.app_type]["app-id"]
|
||||||
self.api_key = self.ap.provider_cfg.data["dashscope-service-api"][self.app_type]["api-key"]
|
self.api_key = self.ap.provider_cfg.data["dashscope-app-api"]["api-key"]
|
||||||
self.references_quote = self.ap.provider_cfg.data["dashscope-service-api"][self.app_type]["references_quote"]
|
self.references_quote = self.ap.provider_cfg.data["dashscope-app-api"][self.app_type]["references_quote"]
|
||||||
self.biz_params = self.ap.provider_cfg.data["dashscope-service-api"]["workflow"]["biz_params"]
|
self.biz_params = self.ap.provider_cfg.data["dashscope-app-api"]["workflow"]["biz_params"]
|
||||||
|
|
||||||
def _replace_references(self, text, references_dict):
|
def _replace_references(self, text, references_dict):
|
||||||
"""阿里云百炼平台的自定义应用支持资料引用,此函数可以将引用标签替换为参考资料"""
|
"""阿里云百炼平台的自定义应用支持资料引用,此函数可以将引用标签替换为参考资料"""
|
||||||
@@ -222,15 +222,15 @@ class DashScopeAPIRunner(runner.RequestRunner):
|
|||||||
self, query: core_entities.Query
|
self, query: core_entities.Query
|
||||||
) -> typing.AsyncGenerator[llm_entities.Message, None]:
|
) -> typing.AsyncGenerator[llm_entities.Message, None]:
|
||||||
"""运行"""
|
"""运行"""
|
||||||
if self.ap.provider_cfg.data["dashscope-service-api"]["app-type"] == "agent":
|
if self.ap.provider_cfg.data["dashscope-app-api"]["app-type"] == "agent":
|
||||||
async for msg in self._agent_messages(query):
|
async for msg in self._agent_messages(query):
|
||||||
yield msg
|
yield msg
|
||||||
elif self.ap.provider_cfg.data["dashscope-service-api"]["app-type"] == "workflow":
|
elif self.ap.provider_cfg.data["dashscope-app-api"]["app-type"] == "workflow":
|
||||||
async for msg in self._workflow_messages(query):
|
async for msg in self._workflow_messages(query):
|
||||||
yield msg
|
yield msg
|
||||||
else:
|
else:
|
||||||
raise DashscopeAPIError(
|
raise DashscopeAPIError(
|
||||||
f"不支持的 Dashscope 应用类型: {self.ap.provider_cfg.data['dashscope-service-api']['app-type']}"
|
f"不支持的 Dashscope 应用类型: {self.ap.provider_cfg.data['dashscope-app-api']['app-type']}"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -211,11 +211,6 @@
|
|||||||
"requester": "zhipuai-chat-completions",
|
"requester": "zhipuai-chat-completions",
|
||||||
"token_mgr": "zhipuai",
|
"token_mgr": "zhipuai",
|
||||||
"vision_supported": true
|
"vision_supported": true
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "your-dashscope-app-id",
|
|
||||||
"requester": "dashscope-chat-applications",
|
|
||||||
"token_mgr": "dashscope",
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -104,21 +104,20 @@
|
|||||||
"timeout": 120
|
"timeout": 120
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"dashscope-service-api": {
|
"dashscope-app-api": {
|
||||||
|
"app-type": "agent",
|
||||||
|
"api-key": "sk-1234567890",
|
||||||
"agent": {
|
"agent": {
|
||||||
"api-key": "sk-1234567890",
|
|
||||||
"app-id": "Your_app_id",
|
"app-id": "Your_app_id",
|
||||||
"references_quote": "参考资料来自:"
|
"references_quote": "参考资料来自:"
|
||||||
},
|
},
|
||||||
"app-type": "agent",
|
|
||||||
"workflow": {
|
"workflow": {
|
||||||
"api-key": "sk-1234567890",
|
|
||||||
"app-id": "Your_app_id",
|
"app-id": "Your_app_id",
|
||||||
"references_quote": "参考资料来自:",
|
"references_quote": "参考资料来自:",
|
||||||
"biz_params": {
|
"biz_params": {
|
||||||
"city": "北京",
|
"city": "北京",
|
||||||
"date": "2023-08-10"
|
"date": "2023-08-10"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -397,6 +397,59 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"dashscope-app-api": {
|
||||||
|
"type": "object",
|
||||||
|
"title": "阿里百炼平台自建应用 API 配置",
|
||||||
|
"properties": {
|
||||||
|
"app-type": {
|
||||||
|
"type": "string",
|
||||||
|
"title": "应用类型",
|
||||||
|
"description": "支持 workflow 和 agent,workflow:智能体编排;agent:普通智能体;请填写下方对应的应用类型 API 参数",
|
||||||
|
"enum": ["workflow", "agent"],
|
||||||
|
"default": "agent"
|
||||||
|
},
|
||||||
|
"api-key": {
|
||||||
|
"type": "string",
|
||||||
|
"title": "API 密钥"
|
||||||
|
},
|
||||||
|
"agent": {
|
||||||
|
"type": "object",
|
||||||
|
"title": "Agent API 参数",
|
||||||
|
"properties": {
|
||||||
|
"app-id": {
|
||||||
|
"type": "string",
|
||||||
|
"title": "应用 ID"
|
||||||
|
},
|
||||||
|
"references_quote": {
|
||||||
|
"type": "string",
|
||||||
|
"title": "参考资料引用",
|
||||||
|
"description": "设置参考资料引用,用于从 Dashscope App API 结束节点返回的 JSON 数据中提取引用内容",
|
||||||
|
"default": "参考资料来自:"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"workflow": {
|
||||||
|
"type": "object",
|
||||||
|
"title": "工作流 API 参数",
|
||||||
|
"properties": {
|
||||||
|
"app-id": {
|
||||||
|
"type": "string",
|
||||||
|
"title": "应用 ID"
|
||||||
|
},
|
||||||
|
"references_quote": {
|
||||||
|
"type": "string",
|
||||||
|
"title": "参考资料引用",
|
||||||
|
"default": "参考资料来自:"
|
||||||
|
},
|
||||||
|
"biz_params": {
|
||||||
|
"type": "object",
|
||||||
|
"title": "传入参数",
|
||||||
|
"default": {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user