feat(i18n): inject language instruction into LLM system prompts
This commit is contained in:
parent
22bf50f877
commit
8f6110df0f
|
|
@ -6,6 +6,7 @@
|
||||||
import json
|
import json
|
||||||
from typing import Dict, Any, List, Optional
|
from typing import Dict, Any, List, Optional
|
||||||
from ..utils.llm_client import LLMClient
|
from ..utils.llm_client import LLMClient
|
||||||
|
from ..utils.locale import get_language_instruction
|
||||||
|
|
||||||
|
|
||||||
# 本体生成的系统提示词
|
# 本体生成的系统提示词
|
||||||
|
|
@ -188,8 +189,9 @@ class OntologyGenerator:
|
||||||
additional_context
|
additional_context
|
||||||
)
|
)
|
||||||
|
|
||||||
|
system_prompt = f"{ONTOLOGY_SYSTEM_PROMPT}\n\n{get_language_instruction()}"
|
||||||
messages = [
|
messages = [
|
||||||
{"role": "system", "content": ONTOLOGY_SYSTEM_PROMPT},
|
{"role": "system", "content": system_prompt},
|
||||||
{"role": "user", "content": user_message}
|
{"role": "user", "content": user_message}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ from enum import Enum
|
||||||
from ..config import Config
|
from ..config import Config
|
||||||
from ..utils.llm_client import LLMClient
|
from ..utils.llm_client import LLMClient
|
||||||
from ..utils.logger import get_logger
|
from ..utils.logger import get_logger
|
||||||
|
from ..utils.locale import get_language_instruction
|
||||||
from .zep_tools import (
|
from .zep_tools import (
|
||||||
ZepToolsService,
|
ZepToolsService,
|
||||||
SearchResult,
|
SearchResult,
|
||||||
|
|
@ -1162,7 +1163,7 @@ class ReportAgent:
|
||||||
if progress_callback:
|
if progress_callback:
|
||||||
progress_callback("planning", 30, "正在生成报告大纲...")
|
progress_callback("planning", 30, "正在生成报告大纲...")
|
||||||
|
|
||||||
system_prompt = PLAN_SYSTEM_PROMPT
|
system_prompt = f"{PLAN_SYSTEM_PROMPT}\n\n{get_language_instruction()}"
|
||||||
user_prompt = PLAN_USER_PROMPT_TEMPLATE.format(
|
user_prompt = PLAN_USER_PROMPT_TEMPLATE.format(
|
||||||
simulation_requirement=self.simulation_requirement,
|
simulation_requirement=self.simulation_requirement,
|
||||||
total_nodes=context.get('graph_statistics', {}).get('total_nodes', 0),
|
total_nodes=context.get('graph_statistics', {}).get('total_nodes', 0),
|
||||||
|
|
@ -1258,6 +1259,7 @@ class ReportAgent:
|
||||||
section_title=section.title,
|
section_title=section.title,
|
||||||
tools_description=self._get_tools_description(),
|
tools_description=self._get_tools_description(),
|
||||||
)
|
)
|
||||||
|
system_prompt = f"{system_prompt}\n\n{get_language_instruction()}"
|
||||||
|
|
||||||
# 构建用户prompt - 每个已完成章节各传入最大4000字
|
# 构建用户prompt - 每个已完成章节各传入最大4000字
|
||||||
if previous_sections:
|
if previous_sections:
|
||||||
|
|
@ -1805,6 +1807,7 @@ class ReportAgent:
|
||||||
report_content=report_content if report_content else "(暂无报告)",
|
report_content=report_content if report_content else "(暂无报告)",
|
||||||
tools_description=self._get_tools_description(),
|
tools_description=self._get_tools_description(),
|
||||||
)
|
)
|
||||||
|
system_prompt = f"{system_prompt}\n\n{get_language_instruction()}"
|
||||||
|
|
||||||
# 构建消息
|
# 构建消息
|
||||||
messages = [{"role": "system", "content": system_prompt}]
|
messages = [{"role": "system", "content": system_prompt}]
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@ from openai import OpenAI
|
||||||
|
|
||||||
from ..config import Config
|
from ..config import Config
|
||||||
from ..utils.logger import get_logger
|
from ..utils.logger import get_logger
|
||||||
|
from ..utils.locale import get_language_instruction
|
||||||
from .zep_entity_reader import EntityNode, ZepEntityReader
|
from .zep_entity_reader import EntityNode, ZepEntityReader
|
||||||
|
|
||||||
logger = get_logger('mirofish.simulation_config')
|
logger = get_logger('mirofish.simulation_config')
|
||||||
|
|
@ -585,6 +586,7 @@ class SimulationConfigGenerator:
|
||||||
- reasoning (string): 简要说明为什么这样配置"""
|
- reasoning (string): 简要说明为什么这样配置"""
|
||||||
|
|
||||||
system_prompt = "你是社交媒体模拟专家。返回纯JSON格式,时间配置需符合中国人作息习惯。"
|
system_prompt = "你是社交媒体模拟专家。返回纯JSON格式,时间配置需符合中国人作息习惯。"
|
||||||
|
system_prompt = f"{system_prompt}\n\n{get_language_instruction()}"
|
||||||
|
|
||||||
try:
|
try:
|
||||||
return self._call_llm_with_retry(prompt, system_prompt)
|
return self._call_llm_with_retry(prompt, system_prompt)
|
||||||
|
|
@ -701,6 +703,7 @@ class SimulationConfigGenerator:
|
||||||
}}"""
|
}}"""
|
||||||
|
|
||||||
system_prompt = "你是舆论分析专家。返回纯JSON格式。注意 poster_type 必须精确匹配可用实体类型。"
|
system_prompt = "你是舆论分析专家。返回纯JSON格式。注意 poster_type 必须精确匹配可用实体类型。"
|
||||||
|
system_prompt = f"{system_prompt}\n\n{get_language_instruction()}"
|
||||||
|
|
||||||
try:
|
try:
|
||||||
return self._call_llm_with_retry(prompt, system_prompt)
|
return self._call_llm_with_retry(prompt, system_prompt)
|
||||||
|
|
@ -864,6 +867,7 @@ class SimulationConfigGenerator:
|
||||||
}}"""
|
}}"""
|
||||||
|
|
||||||
system_prompt = "你是社交媒体行为分析专家。返回纯JSON,配置需符合中国人作息习惯。"
|
system_prompt = "你是社交媒体行为分析专家。返回纯JSON,配置需符合中国人作息习惯。"
|
||||||
|
system_prompt = f"{system_prompt}\n\n{get_language_instruction()}"
|
||||||
|
|
||||||
try:
|
try:
|
||||||
result = self._call_llm_with_retry(prompt, system_prompt)
|
result = self._call_llm_with_retry(prompt, system_prompt)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue