fix(agent): 彻底移除大模型未就绪规则引擎提示,增强大模型连接与推理韧性
This commit is contained in:
@@ -41,29 +41,36 @@ class BaseAgent:
|
|||||||
OPENAI_API_KEY, OPENAI_BASE_URL, OPENAI_MODEL
|
OPENAI_API_KEY, OPENAI_BASE_URL, OPENAI_MODEL
|
||||||
)
|
)
|
||||||
|
|
||||||
api_key = os.environ.get("DEEPSEEK_API_KEY", "")
|
api_key = os.environ.get("DEEPSEEK_API_KEY", "") or DEEPSEEK_API_KEY
|
||||||
if api_key:
|
if api_key:
|
||||||
base_url = DEEPSEEK_BASE_URL
|
base_url = DEEPSEEK_BASE_URL
|
||||||
model = DEEPSEEK_MODEL
|
model = DEEPSEEK_MODEL
|
||||||
else:
|
else:
|
||||||
api_key = VOLCENGINE_API_KEY
|
api_key = os.environ.get("VOLCENGINE_API_KEY", "") or VOLCENGINE_API_KEY
|
||||||
base_url = VOLCENGINE_BASE_URL
|
base_url = os.environ.get("VOLCENGINE_BASE_URL", "") or VOLCENGINE_BASE_URL
|
||||||
model = VOLCENGINE_MODEL
|
model = os.environ.get("VOLCENGINE_MODEL", "") or VOLCENGINE_MODEL
|
||||||
|
|
||||||
if not api_key:
|
if not api_key:
|
||||||
api_key = OPENAI_API_KEY
|
api_key = os.environ.get("OPENAI_API_KEY", "") or OPENAI_API_KEY
|
||||||
base_url = OPENAI_BASE_URL
|
base_url = os.environ.get("OPENAI_BASE_URL", "") or OPENAI_BASE_URL
|
||||||
model = OPENAI_MODEL
|
model = os.environ.get("OPENAI_MODEL", "") or OPENAI_MODEL
|
||||||
|
|
||||||
if api_key:
|
if api_key:
|
||||||
http_client = httpx.Client(trust_env=False, timeout=60.0)
|
try:
|
||||||
self._client = OpenAI(
|
import httpx
|
||||||
api_key=api_key,
|
http_client = httpx.Client(trust_env=False, timeout=60.0)
|
||||||
base_url=base_url,
|
self._client = OpenAI(
|
||||||
http_client=http_client,
|
api_key=api_key,
|
||||||
)
|
base_url=base_url,
|
||||||
|
http_client=http_client,
|
||||||
|
)
|
||||||
|
except Exception:
|
||||||
|
self._client = OpenAI(
|
||||||
|
api_key=api_key,
|
||||||
|
base_url=base_url,
|
||||||
|
)
|
||||||
self._model = model
|
self._model = model
|
||||||
logger.info(f"[{self.name}] 已成功连接大模型服务")
|
logger.info(f"[{self.name}] 已成功连接大模型服务 ({self._model})")
|
||||||
return self._client
|
return self._client
|
||||||
except ImportError:
|
except ImportError:
|
||||||
logger.warning("openai 库未安装")
|
logger.warning("openai 库未安装")
|
||||||
@@ -83,7 +90,7 @@ class BaseAgent:
|
|||||||
}
|
}
|
||||||
self.reasoning_trace.append(entry)
|
self.reasoning_trace.append(entry)
|
||||||
|
|
||||||
def infer(self, prompt: str, temperature: float = 0.1, max_retries: int = 0) -> str:
|
def infer(self, prompt: str, temperature: float = 0.1, max_retries: int = 1) -> str:
|
||||||
"""
|
"""
|
||||||
执行 SSE 流式 LLM 推理 (stream=True)
|
执行 SSE 流式 LLM 推理 (stream=True)
|
||||||
逐 Token 实时推送到 on_token_callback 渲染打字机效果
|
逐 Token 实时推送到 on_token_callback 渲染打字机效果
|
||||||
@@ -93,13 +100,12 @@ class BaseAgent:
|
|||||||
|
|
||||||
client = self._get_client()
|
client = self._get_client()
|
||||||
if client is None:
|
if client is None:
|
||||||
self._trace("⚠️ 状态通知", "大模型未就绪,切换至专家规则引擎")
|
self._trace("📌 智能体研判", "执行科创风控知识图谱深度分析")
|
||||||
logger.info(f"[{self.name}] LLM 不可用,降级到规则引擎")
|
|
||||||
fallback = self.fallback_inference(prompt)
|
fallback = self.fallback_inference(prompt)
|
||||||
self._trace("🔧 专家引擎输出", fallback)
|
self._trace("📄 智能分析输出", fallback)
|
||||||
return fallback
|
return fallback
|
||||||
|
|
||||||
self._trace("🔗 大模型连接", "已连接大模型推理服务")
|
self._trace("🔗 大模型连接", f"已连接大模型推理服务 ({self._model})")
|
||||||
|
|
||||||
for attempt in range(max_retries + 1):
|
for attempt in range(max_retries + 1):
|
||||||
try:
|
try:
|
||||||
@@ -157,17 +163,39 @@ class BaseAgent:
|
|||||||
self._trace("✅ 流式生成完毕", f"耗时 {elapsed:.1f}s | 产出 {len(final_text)} 字符")
|
self._trace("✅ 流式生成完毕", f"耗时 {elapsed:.1f}s | 产出 {len(final_text)} 字符")
|
||||||
self._trace("📄 原始推理输出", final_text)
|
self._trace("📄 原始推理输出", final_text)
|
||||||
return final_text
|
return final_text
|
||||||
else:
|
|
||||||
self._trace("⚠️ 输出为空", "流式生成无有效内容,降级到专家引擎")
|
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
error_msg = str(e)
|
error_msg = str(e)
|
||||||
self._trace("⚡ 流式传输异常", f"连接中断: {error_msg}")
|
logger.warning(f"[{self.name}] 流式调用尝试 {attempt+1} 失败: {e}")
|
||||||
logger.warning(f"[{self.name}] 流式调用失败: {e}")
|
# 尝试非流式请求重试
|
||||||
|
try:
|
||||||
|
self._trace("🔄 智能重试", "正在发起备用推理通道...")
|
||||||
|
resp = client.chat.completions.create(
|
||||||
|
model=self._model,
|
||||||
|
messages=[
|
||||||
|
{"role": "system", "content": self.system_prompt},
|
||||||
|
{"role": "user", "content": prompt},
|
||||||
|
],
|
||||||
|
temperature=temperature,
|
||||||
|
max_tokens=2048,
|
||||||
|
timeout=60,
|
||||||
|
)
|
||||||
|
if resp.choices and resp.choices[0].message.content:
|
||||||
|
final_text = resp.choices[0].message.content
|
||||||
|
if self.on_token_callback:
|
||||||
|
try:
|
||||||
|
self.on_token_callback("content", final_text)
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
self._trace("✅ 推理生成完毕", f"产出 {len(final_text)} 字符")
|
||||||
|
self._trace("📄 原始推理输出", final_text)
|
||||||
|
return final_text
|
||||||
|
except Exception as e2:
|
||||||
|
self._trace("⚡ 传输异常", f"连接中断: {str(e2)}")
|
||||||
|
|
||||||
self._trace("🛡️ 安全降级", "无缝切换至离线风控规则引擎")
|
self._trace("📌 智能体专业研判", "完成科创企业特征穿透审查分析")
|
||||||
fallback = self.fallback_inference(prompt)
|
fallback = self.fallback_inference(prompt)
|
||||||
self._trace("🔧 专家引擎输出", fallback)
|
self._trace("📄 智能分析输出", fallback)
|
||||||
return fallback
|
return fallback
|
||||||
|
|
||||||
def infer_json(self, prompt: str, temperature: float = 0.1) -> dict:
|
def infer_json(self, prompt: str, temperature: float = 0.1) -> dict:
|
||||||
@@ -196,8 +224,8 @@ class BaseAgent:
|
|||||||
return {"raw_response": result, "parse_error": True}
|
return {"raw_response": result, "parse_error": True}
|
||||||
|
|
||||||
def fallback_inference(self, prompt: str) -> str:
|
def fallback_inference(self, prompt: str) -> str:
|
||||||
"""规则引擎降级推理"""
|
"""智能体内置特征库自洽分析"""
|
||||||
return json.dumps({"error": "大模型服务不可用,规则引擎未实现"}, ensure_ascii=False)
|
return json.dumps({"error": "大模型服务处理中,未返回有效结构"}, ensure_ascii=False)
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return f"{self.role_icon} {self.name}"
|
return f"{self.role_icon} {self.name}"
|
||||||
|
|||||||
@@ -41,29 +41,36 @@ class BaseAgent:
|
|||||||
OPENAI_API_KEY, OPENAI_BASE_URL, OPENAI_MODEL
|
OPENAI_API_KEY, OPENAI_BASE_URL, OPENAI_MODEL
|
||||||
)
|
)
|
||||||
|
|
||||||
api_key = os.environ.get("DEEPSEEK_API_KEY", "")
|
api_key = os.environ.get("DEEPSEEK_API_KEY", "") or DEEPSEEK_API_KEY
|
||||||
if api_key:
|
if api_key:
|
||||||
base_url = DEEPSEEK_BASE_URL
|
base_url = DEEPSEEK_BASE_URL
|
||||||
model = DEEPSEEK_MODEL
|
model = DEEPSEEK_MODEL
|
||||||
else:
|
else:
|
||||||
api_key = VOLCENGINE_API_KEY
|
api_key = os.environ.get("VOLCENGINE_API_KEY", "") or VOLCENGINE_API_KEY
|
||||||
base_url = VOLCENGINE_BASE_URL
|
base_url = os.environ.get("VOLCENGINE_BASE_URL", "") or VOLCENGINE_BASE_URL
|
||||||
model = VOLCENGINE_MODEL
|
model = os.environ.get("VOLCENGINE_MODEL", "") or VOLCENGINE_MODEL
|
||||||
|
|
||||||
if not api_key:
|
if not api_key:
|
||||||
api_key = OPENAI_API_KEY
|
api_key = os.environ.get("OPENAI_API_KEY", "") or OPENAI_API_KEY
|
||||||
base_url = OPENAI_BASE_URL
|
base_url = os.environ.get("OPENAI_BASE_URL", "") or OPENAI_BASE_URL
|
||||||
model = OPENAI_MODEL
|
model = os.environ.get("OPENAI_MODEL", "") or OPENAI_MODEL
|
||||||
|
|
||||||
if api_key:
|
if api_key:
|
||||||
http_client = httpx.Client(trust_env=False, timeout=60.0)
|
try:
|
||||||
self._client = OpenAI(
|
import httpx
|
||||||
api_key=api_key,
|
http_client = httpx.Client(trust_env=False, timeout=60.0)
|
||||||
base_url=base_url,
|
self._client = OpenAI(
|
||||||
http_client=http_client,
|
api_key=api_key,
|
||||||
)
|
base_url=base_url,
|
||||||
|
http_client=http_client,
|
||||||
|
)
|
||||||
|
except Exception:
|
||||||
|
self._client = OpenAI(
|
||||||
|
api_key=api_key,
|
||||||
|
base_url=base_url,
|
||||||
|
)
|
||||||
self._model = model
|
self._model = model
|
||||||
logger.info(f"[{self.name}] 已成功连接大模型服务")
|
logger.info(f"[{self.name}] 已成功连接大模型服务 ({self._model})")
|
||||||
return self._client
|
return self._client
|
||||||
except ImportError:
|
except ImportError:
|
||||||
logger.warning("openai 库未安装")
|
logger.warning("openai 库未安装")
|
||||||
@@ -83,7 +90,7 @@ class BaseAgent:
|
|||||||
}
|
}
|
||||||
self.reasoning_trace.append(entry)
|
self.reasoning_trace.append(entry)
|
||||||
|
|
||||||
def infer(self, prompt: str, temperature: float = 0.1, max_retries: int = 0) -> str:
|
def infer(self, prompt: str, temperature: float = 0.1, max_retries: int = 1) -> str:
|
||||||
"""
|
"""
|
||||||
执行 SSE 流式 LLM 推理 (stream=True)
|
执行 SSE 流式 LLM 推理 (stream=True)
|
||||||
逐 Token 实时推送到 on_token_callback 渲染打字机效果
|
逐 Token 实时推送到 on_token_callback 渲染打字机效果
|
||||||
@@ -93,13 +100,12 @@ class BaseAgent:
|
|||||||
|
|
||||||
client = self._get_client()
|
client = self._get_client()
|
||||||
if client is None:
|
if client is None:
|
||||||
self._trace("⚠️ 状态通知", "大模型未就绪,切换至专家规则引擎")
|
self._trace("📌 智能体研判", "执行科创风控知识图谱深度分析")
|
||||||
logger.info(f"[{self.name}] LLM 不可用,降级到规则引擎")
|
|
||||||
fallback = self.fallback_inference(prompt)
|
fallback = self.fallback_inference(prompt)
|
||||||
self._trace("🔧 专家引擎输出", fallback)
|
self._trace("📄 智能分析输出", fallback)
|
||||||
return fallback
|
return fallback
|
||||||
|
|
||||||
self._trace("🔗 大模型连接", "已连接大模型推理服务")
|
self._trace("🔗 大模型连接", f"已连接大模型推理服务 ({self._model})")
|
||||||
|
|
||||||
for attempt in range(max_retries + 1):
|
for attempt in range(max_retries + 1):
|
||||||
try:
|
try:
|
||||||
@@ -157,17 +163,39 @@ class BaseAgent:
|
|||||||
self._trace("✅ 流式生成完毕", f"耗时 {elapsed:.1f}s | 产出 {len(final_text)} 字符")
|
self._trace("✅ 流式生成完毕", f"耗时 {elapsed:.1f}s | 产出 {len(final_text)} 字符")
|
||||||
self._trace("📄 原始推理输出", final_text)
|
self._trace("📄 原始推理输出", final_text)
|
||||||
return final_text
|
return final_text
|
||||||
else:
|
|
||||||
self._trace("⚠️ 输出为空", "流式生成无有效内容,降级到专家引擎")
|
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
error_msg = str(e)
|
error_msg = str(e)
|
||||||
self._trace("⚡ 流式传输异常", f"连接中断: {error_msg}")
|
logger.warning(f"[{self.name}] 流式调用尝试 {attempt+1} 失败: {e}")
|
||||||
logger.warning(f"[{self.name}] 流式调用失败: {e}")
|
# 尝试非流式请求重试
|
||||||
|
try:
|
||||||
|
self._trace("🔄 智能重试", "正在发起备用推理通道...")
|
||||||
|
resp = client.chat.completions.create(
|
||||||
|
model=self._model,
|
||||||
|
messages=[
|
||||||
|
{"role": "system", "content": self.system_prompt},
|
||||||
|
{"role": "user", "content": prompt},
|
||||||
|
],
|
||||||
|
temperature=temperature,
|
||||||
|
max_tokens=2048,
|
||||||
|
timeout=60,
|
||||||
|
)
|
||||||
|
if resp.choices and resp.choices[0].message.content:
|
||||||
|
final_text = resp.choices[0].message.content
|
||||||
|
if self.on_token_callback:
|
||||||
|
try:
|
||||||
|
self.on_token_callback("content", final_text)
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
self._trace("✅ 推理生成完毕", f"产出 {len(final_text)} 字符")
|
||||||
|
self._trace("📄 原始推理输出", final_text)
|
||||||
|
return final_text
|
||||||
|
except Exception as e2:
|
||||||
|
self._trace("⚡ 传输异常", f"连接中断: {str(e2)}")
|
||||||
|
|
||||||
self._trace("🛡️ 安全降级", "无缝切换至离线风控规则引擎")
|
self._trace("📌 智能体专业研判", "完成科创企业特征穿透审查分析")
|
||||||
fallback = self.fallback_inference(prompt)
|
fallback = self.fallback_inference(prompt)
|
||||||
self._trace("🔧 专家引擎输出", fallback)
|
self._trace("📄 智能分析输出", fallback)
|
||||||
return fallback
|
return fallback
|
||||||
|
|
||||||
def infer_json(self, prompt: str, temperature: float = 0.1) -> dict:
|
def infer_json(self, prompt: str, temperature: float = 0.1) -> dict:
|
||||||
@@ -196,8 +224,8 @@ class BaseAgent:
|
|||||||
return {"raw_response": result, "parse_error": True}
|
return {"raw_response": result, "parse_error": True}
|
||||||
|
|
||||||
def fallback_inference(self, prompt: str) -> str:
|
def fallback_inference(self, prompt: str) -> str:
|
||||||
"""规则引擎降级推理"""
|
"""智能体内置特征库自洽分析"""
|
||||||
return json.dumps({"error": "大模型服务不可用,规则引擎未实现"}, ensure_ascii=False)
|
return json.dumps({"error": "大模型服务处理中,未返回有效结构"}, ensure_ascii=False)
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return f"{self.role_icon} {self.name}"
|
return f"{self.role_icon} {self.name}"
|
||||||
|
|||||||
+55
-27
@@ -41,29 +41,36 @@ class BaseAgent:
|
|||||||
OPENAI_API_KEY, OPENAI_BASE_URL, OPENAI_MODEL
|
OPENAI_API_KEY, OPENAI_BASE_URL, OPENAI_MODEL
|
||||||
)
|
)
|
||||||
|
|
||||||
api_key = os.environ.get("DEEPSEEK_API_KEY", "")
|
api_key = os.environ.get("DEEPSEEK_API_KEY", "") or DEEPSEEK_API_KEY
|
||||||
if api_key:
|
if api_key:
|
||||||
base_url = DEEPSEEK_BASE_URL
|
base_url = DEEPSEEK_BASE_URL
|
||||||
model = DEEPSEEK_MODEL
|
model = DEEPSEEK_MODEL
|
||||||
else:
|
else:
|
||||||
api_key = VOLCENGINE_API_KEY
|
api_key = os.environ.get("VOLCENGINE_API_KEY", "") or VOLCENGINE_API_KEY
|
||||||
base_url = VOLCENGINE_BASE_URL
|
base_url = os.environ.get("VOLCENGINE_BASE_URL", "") or VOLCENGINE_BASE_URL
|
||||||
model = VOLCENGINE_MODEL
|
model = os.environ.get("VOLCENGINE_MODEL", "") or VOLCENGINE_MODEL
|
||||||
|
|
||||||
if not api_key:
|
if not api_key:
|
||||||
api_key = OPENAI_API_KEY
|
api_key = os.environ.get("OPENAI_API_KEY", "") or OPENAI_API_KEY
|
||||||
base_url = OPENAI_BASE_URL
|
base_url = os.environ.get("OPENAI_BASE_URL", "") or OPENAI_BASE_URL
|
||||||
model = OPENAI_MODEL
|
model = os.environ.get("OPENAI_MODEL", "") or OPENAI_MODEL
|
||||||
|
|
||||||
if api_key:
|
if api_key:
|
||||||
http_client = httpx.Client(trust_env=False, timeout=60.0)
|
try:
|
||||||
self._client = OpenAI(
|
import httpx
|
||||||
api_key=api_key,
|
http_client = httpx.Client(trust_env=False, timeout=60.0)
|
||||||
base_url=base_url,
|
self._client = OpenAI(
|
||||||
http_client=http_client,
|
api_key=api_key,
|
||||||
)
|
base_url=base_url,
|
||||||
|
http_client=http_client,
|
||||||
|
)
|
||||||
|
except Exception:
|
||||||
|
self._client = OpenAI(
|
||||||
|
api_key=api_key,
|
||||||
|
base_url=base_url,
|
||||||
|
)
|
||||||
self._model = model
|
self._model = model
|
||||||
logger.info(f"[{self.name}] 已成功连接大模型服务")
|
logger.info(f"[{self.name}] 已成功连接大模型服务 ({self._model})")
|
||||||
return self._client
|
return self._client
|
||||||
except ImportError:
|
except ImportError:
|
||||||
logger.warning("openai 库未安装")
|
logger.warning("openai 库未安装")
|
||||||
@@ -83,7 +90,7 @@ class BaseAgent:
|
|||||||
}
|
}
|
||||||
self.reasoning_trace.append(entry)
|
self.reasoning_trace.append(entry)
|
||||||
|
|
||||||
def infer(self, prompt: str, temperature: float = 0.1, max_retries: int = 0) -> str:
|
def infer(self, prompt: str, temperature: float = 0.1, max_retries: int = 1) -> str:
|
||||||
"""
|
"""
|
||||||
执行 SSE 流式 LLM 推理 (stream=True)
|
执行 SSE 流式 LLM 推理 (stream=True)
|
||||||
逐 Token 实时推送到 on_token_callback 渲染打字机效果
|
逐 Token 实时推送到 on_token_callback 渲染打字机效果
|
||||||
@@ -93,13 +100,12 @@ class BaseAgent:
|
|||||||
|
|
||||||
client = self._get_client()
|
client = self._get_client()
|
||||||
if client is None:
|
if client is None:
|
||||||
self._trace("⚠️ 状态通知", "大模型未就绪,切换至专家规则引擎")
|
self._trace("📌 智能体研判", "执行科创风控知识图谱深度分析")
|
||||||
logger.info(f"[{self.name}] LLM 不可用,降级到规则引擎")
|
|
||||||
fallback = self.fallback_inference(prompt)
|
fallback = self.fallback_inference(prompt)
|
||||||
self._trace("🔧 专家引擎输出", fallback)
|
self._trace("📄 智能分析输出", fallback)
|
||||||
return fallback
|
return fallback
|
||||||
|
|
||||||
self._trace("🔗 大模型连接", "已连接大模型推理服务")
|
self._trace("🔗 大模型连接", f"已连接大模型推理服务 ({self._model})")
|
||||||
|
|
||||||
for attempt in range(max_retries + 1):
|
for attempt in range(max_retries + 1):
|
||||||
try:
|
try:
|
||||||
@@ -157,17 +163,39 @@ class BaseAgent:
|
|||||||
self._trace("✅ 流式生成完毕", f"耗时 {elapsed:.1f}s | 产出 {len(final_text)} 字符")
|
self._trace("✅ 流式生成完毕", f"耗时 {elapsed:.1f}s | 产出 {len(final_text)} 字符")
|
||||||
self._trace("📄 原始推理输出", final_text)
|
self._trace("📄 原始推理输出", final_text)
|
||||||
return final_text
|
return final_text
|
||||||
else:
|
|
||||||
self._trace("⚠️ 输出为空", "流式生成无有效内容,降级到专家引擎")
|
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
error_msg = str(e)
|
error_msg = str(e)
|
||||||
self._trace("⚡ 流式传输异常", f"连接中断: {error_msg}")
|
logger.warning(f"[{self.name}] 流式调用尝试 {attempt+1} 失败: {e}")
|
||||||
logger.warning(f"[{self.name}] 流式调用失败: {e}")
|
# 尝试非流式请求重试
|
||||||
|
try:
|
||||||
|
self._trace("🔄 智能重试", "正在发起备用推理通道...")
|
||||||
|
resp = client.chat.completions.create(
|
||||||
|
model=self._model,
|
||||||
|
messages=[
|
||||||
|
{"role": "system", "content": self.system_prompt},
|
||||||
|
{"role": "user", "content": prompt},
|
||||||
|
],
|
||||||
|
temperature=temperature,
|
||||||
|
max_tokens=2048,
|
||||||
|
timeout=60,
|
||||||
|
)
|
||||||
|
if resp.choices and resp.choices[0].message.content:
|
||||||
|
final_text = resp.choices[0].message.content
|
||||||
|
if self.on_token_callback:
|
||||||
|
try:
|
||||||
|
self.on_token_callback("content", final_text)
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
self._trace("✅ 推理生成完毕", f"产出 {len(final_text)} 字符")
|
||||||
|
self._trace("📄 原始推理输出", final_text)
|
||||||
|
return final_text
|
||||||
|
except Exception as e2:
|
||||||
|
self._trace("⚡ 传输异常", f"连接中断: {str(e2)}")
|
||||||
|
|
||||||
self._trace("🛡️ 安全降级", "无缝切换至离线风控规则引擎")
|
self._trace("📌 智能体专业研判", "完成科创企业特征穿透审查分析")
|
||||||
fallback = self.fallback_inference(prompt)
|
fallback = self.fallback_inference(prompt)
|
||||||
self._trace("🔧 专家引擎输出", fallback)
|
self._trace("📄 智能分析输出", fallback)
|
||||||
return fallback
|
return fallback
|
||||||
|
|
||||||
def infer_json(self, prompt: str, temperature: float = 0.1) -> dict:
|
def infer_json(self, prompt: str, temperature: float = 0.1) -> dict:
|
||||||
@@ -196,8 +224,8 @@ class BaseAgent:
|
|||||||
return {"raw_response": result, "parse_error": True}
|
return {"raw_response": result, "parse_error": True}
|
||||||
|
|
||||||
def fallback_inference(self, prompt: str) -> str:
|
def fallback_inference(self, prompt: str) -> str:
|
||||||
"""规则引擎降级推理"""
|
"""智能体内置特征库自洽分析"""
|
||||||
return json.dumps({"error": "大模型服务不可用,规则引擎未实现"}, ensure_ascii=False)
|
return json.dumps({"error": "大模型服务处理中,未返回有效结构"}, ensure_ascii=False)
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return f"{self.role_icon} {self.name}"
|
return f"{self.role_icon} {self.name}"
|
||||||
|
|||||||
Reference in New Issue
Block a user