mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-06-09 23:36:02 +00:00
Compare commits
1 Commits
v4.0.0-bet
...
v4.0.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cd68760c75 |
@@ -30,12 +30,14 @@ class PreProcessor(stage.PipelineStage):
|
|||||||
stage_inst_name: str,
|
stage_inst_name: str,
|
||||||
) -> entities.StageProcessResult:
|
) -> entities.StageProcessResult:
|
||||||
"""处理"""
|
"""处理"""
|
||||||
|
selected_runner = query.pipeline_config['ai']['runner']['runner']
|
||||||
|
|
||||||
session = await self.ap.sess_mgr.get_session(query)
|
session = await self.ap.sess_mgr.get_session(query)
|
||||||
|
|
||||||
# 非 local-agent 时,llm_model 为 None
|
# 非 local-agent 时,llm_model 为 None
|
||||||
llm_model = (
|
llm_model = (
|
||||||
await self.ap.model_mgr.get_model_by_uuid(query.pipeline_config['ai']['local-agent']['model'])
|
await self.ap.model_mgr.get_model_by_uuid(query.pipeline_config['ai']['local-agent']['model'])
|
||||||
if query.pipeline_config['ai']['runner'] == 'local-agent'
|
if selected_runner == 'local-agent'
|
||||||
else None
|
else None
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -43,17 +45,18 @@ class PreProcessor(stage.PipelineStage):
|
|||||||
query,
|
query,
|
||||||
session,
|
session,
|
||||||
query.pipeline_config['ai']['local-agent']['prompt'],
|
query.pipeline_config['ai']['local-agent']['prompt'],
|
||||||
llm_model,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
conversation.use_llm_model = llm_model
|
||||||
|
|
||||||
# 设置query
|
# 设置query
|
||||||
query.session = session
|
query.session = session
|
||||||
query.prompt = conversation.prompt.copy()
|
query.prompt = conversation.prompt.copy()
|
||||||
query.messages = conversation.messages.copy()
|
query.messages = conversation.messages.copy()
|
||||||
|
|
||||||
query.use_llm_model = conversation.use_llm_model
|
query.use_llm_model = llm_model
|
||||||
|
|
||||||
if query.pipeline_config['ai']['runner'] == 'local-agent':
|
if selected_runner == 'local-agent':
|
||||||
query.use_funcs = (
|
query.use_funcs = (
|
||||||
conversation.use_funcs if query.use_llm_model.model_entity.abilities.__contains__('tool_call') else None
|
conversation.use_funcs if query.use_llm_model.model_entity.abilities.__contains__('tool_call') else None
|
||||||
)
|
)
|
||||||
@@ -68,9 +71,7 @@ class PreProcessor(stage.PipelineStage):
|
|||||||
|
|
||||||
# Check if this model supports vision, if not, remove all images
|
# Check if this model supports vision, if not, remove all images
|
||||||
# TODO this checking should be performed in runner, and in this stage, the image should be reserved
|
# TODO this checking should be performed in runner, and in this stage, the image should be reserved
|
||||||
if query.pipeline_config['ai']['runner'][
|
if selected_runner == 'local-agent' and not query.use_llm_model.model_entity.abilities.__contains__('vision'):
|
||||||
'runner'
|
|
||||||
] == 'local-agent' and not query.use_llm_model.model_entity.abilities.__contains__('vision'):
|
|
||||||
for msg in query.messages:
|
for msg in query.messages:
|
||||||
if isinstance(msg.content, list):
|
if isinstance(msg.content, list):
|
||||||
for me in msg.content:
|
for me in msg.content:
|
||||||
@@ -86,9 +87,9 @@ class PreProcessor(stage.PipelineStage):
|
|||||||
content_list.append(llm_entities.ContentElement.from_text(me.text))
|
content_list.append(llm_entities.ContentElement.from_text(me.text))
|
||||||
plain_text += me.text
|
plain_text += me.text
|
||||||
elif isinstance(me, platform_message.Image):
|
elif isinstance(me, platform_message.Image):
|
||||||
if query.pipeline_config['ai']['runner'][
|
if selected_runner != 'local-agent' or query.use_llm_model.model_entity.abilities.__contains__(
|
||||||
'runner'
|
'vision'
|
||||||
] != 'local-agent' or query.use_llm_model.model_entity.abilities.__contains__('vision'):
|
):
|
||||||
if me.base64 is not None:
|
if me.base64 is not None:
|
||||||
content_list.append(llm_entities.ContentElement.from_image_base64(me.base64))
|
content_list.append(llm_entities.ContentElement.from_image_base64(me.base64))
|
||||||
|
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ class DifyServiceAPIRunner(runner.RequestRunner):
|
|||||||
user=f'{query.session.launcher_type.value}_{query.session.launcher_id}',
|
user=f'{query.session.launcher_type.value}_{query.session.launcher_id}',
|
||||||
conversation_id=cov_id,
|
conversation_id=cov_id,
|
||||||
files=files,
|
files=files,
|
||||||
timeout=self.pipeline_config['ai']['dify-service-api']['timeout'],
|
timeout=120,
|
||||||
):
|
):
|
||||||
self.ap.logger.debug('dify-chat-chunk: ' + str(chunk))
|
self.ap.logger.debug('dify-chat-chunk: ' + str(chunk))
|
||||||
|
|
||||||
@@ -184,7 +184,7 @@ class DifyServiceAPIRunner(runner.RequestRunner):
|
|||||||
response_mode='streaming',
|
response_mode='streaming',
|
||||||
conversation_id=cov_id,
|
conversation_id=cov_id,
|
||||||
files=files,
|
files=files,
|
||||||
timeout=self.pipeline_config['ai']['dify-service-api']['timeout'],
|
timeout=120,
|
||||||
):
|
):
|
||||||
self.ap.logger.debug('dify-agent-chunk: ' + str(chunk))
|
self.ap.logger.debug('dify-agent-chunk: ' + str(chunk))
|
||||||
|
|
||||||
@@ -276,7 +276,7 @@ class DifyServiceAPIRunner(runner.RequestRunner):
|
|||||||
inputs=inputs,
|
inputs=inputs,
|
||||||
user=f'{query.session.launcher_type.value}_{query.session.launcher_id}',
|
user=f'{query.session.launcher_type.value}_{query.session.launcher_id}',
|
||||||
files=files,
|
files=files,
|
||||||
timeout=self.pipeline_config['ai']['dify-service-api']['timeout'],
|
timeout=120,
|
||||||
):
|
):
|
||||||
self.ap.logger.debug('dify-workflow-chunk: ' + str(chunk))
|
self.ap.logger.debug('dify-workflow-chunk: ' + str(chunk))
|
||||||
if chunk['event'] in ignored_events:
|
if chunk['event'] in ignored_events:
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import asyncio
|
|||||||
|
|
||||||
from ...core import app, entities as core_entities
|
from ...core import app, entities as core_entities
|
||||||
from ...provider import entities as provider_entities
|
from ...provider import entities as provider_entities
|
||||||
from ...provider.modelmgr import entities as model_entities
|
|
||||||
|
|
||||||
|
|
||||||
class SessionManager:
|
class SessionManager:
|
||||||
@@ -42,7 +41,6 @@ class SessionManager:
|
|||||||
query: core_entities.Query,
|
query: core_entities.Query,
|
||||||
session: core_entities.Session,
|
session: core_entities.Session,
|
||||||
prompt_config: list[dict],
|
prompt_config: list[dict],
|
||||||
llm_model: model_entities.LLMModelInfo,
|
|
||||||
) -> core_entities.Conversation:
|
) -> core_entities.Conversation:
|
||||||
"""获取对话或创建对话"""
|
"""获取对话或创建对话"""
|
||||||
|
|
||||||
@@ -64,7 +62,6 @@ class SessionManager:
|
|||||||
conversation = core_entities.Conversation(
|
conversation = core_entities.Conversation(
|
||||||
prompt=prompt,
|
prompt=prompt,
|
||||||
messages=[],
|
messages=[],
|
||||||
use_llm_model=llm_model,
|
|
||||||
use_funcs=await self.ap.tool_mgr.get_all_functions(
|
use_funcs=await self.ap.tool_mgr.get_all_functions(
|
||||||
plugin_enabled=True,
|
plugin_enabled=True,
|
||||||
),
|
),
|
||||||
|
|||||||
Reference in New Issue
Block a user