Merge branch 'refs/heads/fix/memory_mcp2_1' into develop
# Conflicts: # api/app/core/memory/agent/langgraph_graph/nodes/problem_nodes.py # api/app/core/memory/agent/langgraph_graph/nodes/summary_nodes.py # api/app/core/memory/agent/langgraph_graph/nodes/verification_nodes.py # api/app/core/memory/agent/langgraph_graph/read_graph.py # api/app/core/memory/agent/langgraph_graph/routing/routers.py # api/app/core/memory/agent/models/verification_models.py # api/app/core/memory/agent/services/optimized_llm_service.py
This commit is contained in:
@@ -1,4 +1,3 @@
|
|||||||
import os
|
|
||||||
import json
|
import json
|
||||||
import time
|
import time
|
||||||
from app.core.logging_config import get_agent_logger
|
from app.core.logging_config import get_agent_logger
|
||||||
@@ -14,7 +13,7 @@ from app.core.memory.agent.utils.session_tools import SessionService
|
|||||||
from app.core.memory.agent.utils.template_tools import TemplateService
|
from app.core.memory.agent.utils.template_tools import TemplateService
|
||||||
from app.core.memory.agent.services.optimized_llm_service import LLMServiceMixin
|
from app.core.memory.agent.services.optimized_llm_service import LLMServiceMixin
|
||||||
|
|
||||||
template_root = os.path.join(PROJECT_ROOT_, 'agent', 'utils', 'prompt')
|
template_root = PROJECT_ROOT_ + '/agent/utils/prompt'
|
||||||
db_session = next(get_db())
|
db_session = next(get_db())
|
||||||
logger = get_agent_logger(__name__)
|
logger = get_agent_logger(__name__)
|
||||||
|
|
||||||
@@ -36,16 +35,11 @@ async def Split_The_Problem(state: ReadState) -> ReadState:
|
|||||||
memory_config = state.get('memory_config', None)
|
memory_config = state.get('memory_config', None)
|
||||||
|
|
||||||
history = await SessionService(store).get_history(group_id, group_id, group_id)
|
history = await SessionService(store).get_history(group_id, group_id, group_id)
|
||||||
|
|
||||||
# 生成 JSON schema 以指导 LLM 输出正确格式
|
|
||||||
json_schema = ProblemExtensionResponse.model_json_schema()
|
|
||||||
|
|
||||||
system_prompt = await problem_service.template_service.render_template(
|
system_prompt = await problem_service.template_service.render_template(
|
||||||
template_name='problem_breakdown_prompt.jinja2',
|
template_name='problem_breakdown_prompt.jinja2',
|
||||||
operation_name='split_the_problem',
|
operation_name='split_the_problem',
|
||||||
history=history,
|
history=history,
|
||||||
sentence=content,
|
sentence=content
|
||||||
json_schema=json_schema
|
|
||||||
)
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@@ -153,16 +147,11 @@ async def Problem_Extension(state: ReadState) -> ReadState:
|
|||||||
data = []
|
data = []
|
||||||
|
|
||||||
history = await SessionService(store).get_history(group_id, group_id, group_id)
|
history = await SessionService(store).get_history(group_id, group_id, group_id)
|
||||||
|
|
||||||
# 生成 JSON schema 以指导 LLM 输出正确格式
|
|
||||||
json_schema = ProblemExtensionResponse.model_json_schema()
|
|
||||||
|
|
||||||
system_prompt = await problem_service.template_service.render_template(
|
system_prompt = await problem_service.template_service.render_template(
|
||||||
template_name='Problem_Extension_prompt.jinja2',
|
template_name='Problem_Extension_prompt.jinja2',
|
||||||
operation_name='problem_extension',
|
operation_name='problem_extension',
|
||||||
history=history,
|
history=history,
|
||||||
questions=databasets,
|
questions=databasets
|
||||||
json_schema=json_schema
|
|
||||||
)
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -59,7 +59,6 @@ async def make_read_graph():
|
|||||||
workflow.add_conditional_edges("Retrieve", Retrieve_continue)
|
workflow.add_conditional_edges("Retrieve", Retrieve_continue)
|
||||||
workflow.add_edge("Retrieve_Summary", END)
|
workflow.add_edge("Retrieve_Summary", END)
|
||||||
workflow.add_conditional_edges("Verify", Verify_continue)
|
workflow.add_conditional_edges("Verify", Verify_continue)
|
||||||
|
|
||||||
workflow.add_edge("Summary_fails", END)
|
workflow.add_edge("Summary_fails", END)
|
||||||
workflow.add_edge("Summary", END)
|
workflow.add_edge("Summary", END)
|
||||||
|
|
||||||
|
|||||||
@@ -162,7 +162,7 @@ class OptimizedLLMService:
|
|||||||
return fallback_value
|
return fallback_value
|
||||||
elif isinstance(fallback_value, dict):
|
elif isinstance(fallback_value, dict):
|
||||||
return response_model(**fallback_value)
|
return response_model(**fallback_value)
|
||||||
|
|
||||||
# 尝试创建空的响应模型
|
# 尝试创建空的响应模型
|
||||||
if hasattr(response_model, 'root'):
|
if hasattr(response_model, 'root'):
|
||||||
# RootModel类型
|
# RootModel类型
|
||||||
@@ -170,7 +170,7 @@ class OptimizedLLMService:
|
|||||||
else:
|
else:
|
||||||
# 普通BaseModel类型
|
# 普通BaseModel类型
|
||||||
return response_model()
|
return response_model()
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"创建降级响应失败: {e}")
|
logger.error(f"创建降级响应失败: {e}")
|
||||||
# 最后的降级策略
|
# 最后的降级策略
|
||||||
|
|||||||
Reference in New Issue
Block a user