mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-08-13 22:20:58 +00:00
fix: llm model wrongly required when runner is not local-agent (#1386)
This commit is contained in:
committed by
GitHub
parent
f2e1ae432c
commit
13d36412dd
@@ -133,7 +133,7 @@ class Conversation(pydantic.BaseModel):
|
|||||||
|
|
||||||
update_time: typing.Optional[datetime.datetime] = pydantic.Field(default_factory=datetime.datetime.now)
|
update_time: typing.Optional[datetime.datetime] = pydantic.Field(default_factory=datetime.datetime.now)
|
||||||
|
|
||||||
use_llm_model: requester.RuntimeLLMModel
|
use_llm_model: typing.Optional[requester.RuntimeLLMModel] = None
|
||||||
|
|
||||||
use_funcs: typing.Optional[list[tools_entities.LLMFunction]]
|
use_funcs: typing.Optional[list[tools_entities.LLMFunction]]
|
||||||
|
|
||||||
|
|||||||
@@ -32,8 +32,18 @@ class PreProcessor(stage.PipelineStage):
|
|||||||
"""处理"""
|
"""处理"""
|
||||||
session = await self.ap.sess_mgr.get_session(query)
|
session = await self.ap.sess_mgr.get_session(query)
|
||||||
|
|
||||||
|
# 非 local-agent 时,llm_model 为 None
|
||||||
|
llm_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'
|
||||||
|
else None
|
||||||
|
)
|
||||||
|
|
||||||
conversation = await self.ap.sess_mgr.get_conversation(
|
conversation = await self.ap.sess_mgr.get_conversation(
|
||||||
query, session, query.pipeline_config['ai']['local-agent']['prompt']
|
query,
|
||||||
|
session,
|
||||||
|
query.pipeline_config['ai']['local-agent']['prompt'],
|
||||||
|
llm_model,
|
||||||
)
|
)
|
||||||
|
|
||||||
# 设置query
|
# 设置query
|
||||||
@@ -43,16 +53,17 @@ class PreProcessor(stage.PipelineStage):
|
|||||||
|
|
||||||
query.use_llm_model = conversation.use_llm_model
|
query.use_llm_model = conversation.use_llm_model
|
||||||
|
|
||||||
query.use_funcs = (
|
if query.pipeline_config['ai']['runner'] == 'local-agent':
|
||||||
conversation.use_funcs if query.use_llm_model.model_entity.abilities.__contains__('tool_call') else None
|
query.use_funcs = (
|
||||||
)
|
conversation.use_funcs if query.use_llm_model.model_entity.abilities.__contains__('tool_call') else None
|
||||||
|
)
|
||||||
|
|
||||||
query.variables = {
|
query.variables = {
|
||||||
'session_id': f'{query.session.launcher_type.value}_{query.session.launcher_id}',
|
'session_id': f'{query.session.launcher_type.value}_{query.session.launcher_id}',
|
||||||
'conversation_id': conversation.uuid,
|
'conversation_id': conversation.uuid,
|
||||||
'msg_create_time': int(query.message_event.time)
|
'msg_create_time': (
|
||||||
if query.message_event.time
|
int(query.message_event.time) if query.message_event.time else int(datetime.datetime.now().timestamp())
|
||||||
else int(datetime.datetime.now().timestamp()),
|
),
|
||||||
}
|
}
|
||||||
|
|
||||||
# Check if this model supports vision, if not, remove all images
|
# Check if this model supports vision, if not, remove all images
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ class ModelManager:
|
|||||||
for model in self.model_list:
|
for model in self.model_list:
|
||||||
if model.name == name:
|
if model.name == name:
|
||||||
return model
|
return model
|
||||||
raise ValueError(f'无法确定模型 {name} 的信息,请在元数据中配置')
|
raise ValueError(f'无法确定模型 {name} 的信息')
|
||||||
|
|
||||||
async def get_model_by_uuid(self, uuid: str) -> entities.LLMModelInfo:
|
async def get_model_by_uuid(self, uuid: str) -> entities.LLMModelInfo:
|
||||||
"""通过uuid获取模型"""
|
"""通过uuid获取模型"""
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ 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:
|
||||||
@@ -41,6 +42,7 @@ 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:
|
||||||
"""获取对话或创建对话"""
|
"""获取对话或创建对话"""
|
||||||
|
|
||||||
@@ -62,9 +64,7 @@ class SessionManager:
|
|||||||
conversation = core_entities.Conversation(
|
conversation = core_entities.Conversation(
|
||||||
prompt=prompt,
|
prompt=prompt,
|
||||||
messages=[],
|
messages=[],
|
||||||
use_llm_model=await self.ap.model_mgr.get_model_by_uuid(
|
use_llm_model=llm_model,
|
||||||
query.pipeline_config['ai']['local-agent']['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