mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-06-18 19:44:21 +00:00
feat: add query variables
This commit is contained in:
@@ -167,6 +167,10 @@ class DashScopeAPIRunner(runner.RequestRunner):
|
||||
image_ids = [] # 用户输入的图片ID列表 (暂不支持)
|
||||
|
||||
plain_text, image_ids = await self._preprocess_user_message(query)
|
||||
|
||||
biz_params = {}
|
||||
biz_params.update(self.biz_params)
|
||||
biz_params.update(query.variables)
|
||||
|
||||
#发送对话请求
|
||||
response = dashscope.Application.call(
|
||||
@@ -176,7 +180,7 @@ class DashScopeAPIRunner(runner.RequestRunner):
|
||||
stream=True, # 流式输出
|
||||
incremental_output=True, # 增量输出,使用流式输出需要开启增量输出
|
||||
session_id=query.session.using_conversation.uuid, # 会话ID用于,多轮对话
|
||||
biz_params=self.biz_params # 工作流应用的自定义输入参数传递
|
||||
biz_params=biz_params, # 工作流应用的自定义输入参数传递
|
||||
# rag_options={ # 主要用于文件交互,暂不支持
|
||||
# "session_file_ids": ["FILE_ID1"], # FILE_ID1 替换为实际的临时文件ID,逗号隔开多个
|
||||
# }
|
||||
|
||||
@@ -111,8 +111,12 @@ class DifyServiceAPIRunner(runner.RequestRunner):
|
||||
|
||||
basic_mode_pending_chunk = ''
|
||||
|
||||
inputs = {}
|
||||
|
||||
inputs.update(query.variables)
|
||||
|
||||
async for chunk in self.dify_client.chat_messages(
|
||||
inputs={},
|
||||
inputs=inputs,
|
||||
query=plain_text,
|
||||
user=f"{query.session.launcher_type.value}_{query.session.launcher_id}",
|
||||
conversation_id=cov_id,
|
||||
@@ -162,8 +166,12 @@ class DifyServiceAPIRunner(runner.RequestRunner):
|
||||
|
||||
ignored_events = ["agent_message"]
|
||||
|
||||
inputs = {}
|
||||
|
||||
inputs.update(query.variables)
|
||||
|
||||
async for chunk in self.dify_client.chat_messages(
|
||||
inputs={},
|
||||
inputs=inputs,
|
||||
query=plain_text,
|
||||
user=f"{query.session.launcher_type.value}_{query.session.launcher_id}",
|
||||
response_mode="streaming",
|
||||
@@ -227,14 +235,11 @@ class DifyServiceAPIRunner(runner.RequestRunner):
|
||||
|
||||
if not query.session.using_conversation.uuid:
|
||||
query.session.using_conversation.uuid = str(uuid.uuid4())
|
||||
|
||||
cov_id = query.session.using_conversation.uuid
|
||||
|
||||
query.variables["conversation_id"] = query.session.using_conversation.uuid
|
||||
|
||||
plain_text, image_ids = await self._preprocess_user_message(query)
|
||||
|
||||
# 尝试获取 CreateTime
|
||||
create_time = int(query.message_event.time) if query.message_event.time else int(datetime.datetime.now().timestamp())
|
||||
|
||||
files = [
|
||||
{
|
||||
"type": "image",
|
||||
@@ -246,13 +251,17 @@ class DifyServiceAPIRunner(runner.RequestRunner):
|
||||
|
||||
ignored_events = ["text_chunk", "workflow_started"]
|
||||
|
||||
inputs = { # these variables are legacy variables, we need to keep them for compatibility
|
||||
"langbot_user_message_text": plain_text,
|
||||
"langbot_session_id": query.variables["session_id"],
|
||||
"langbot_conversation_id": query.variables["conversation_id"],
|
||||
"langbot_msg_create_time": query.variables["msg_create_time"],
|
||||
}
|
||||
|
||||
inputs.update(query.variables)
|
||||
|
||||
async for chunk in self.dify_client.workflow_run(
|
||||
inputs={
|
||||
"langbot_user_message_text": plain_text,
|
||||
"langbot_session_id": f"{query.session.launcher_type.value}_{query.session.launcher_id}",
|
||||
"langbot_conversation_id": cov_id,
|
||||
"langbot_msg_create_time": create_time,
|
||||
},
|
||||
inputs=inputs,
|
||||
user=f"{query.session.launcher_type.value}_{query.session.launcher_id}",
|
||||
files=files,
|
||||
timeout=self.ap.provider_cfg.data["dify-service-api"]["workflow"]["timeout"],
|
||||
|
||||
Reference in New Issue
Block a user