fix(llm_bridge): 修复purpose碰撞——3个调用函数补purpose参数并塞payload._purpose(上轮重构收敛时丢失,4处调用点传purpose='utility'会TypeError)
This commit is contained in:
parent
25db66aa61
commit
8a9d0f8294
@ -105,11 +105,13 @@ def _no_llm_error(model_name=None, org_id=None) -> ValueError:
|
||||
|
||||
|
||||
async def llm_call(prompt: str, model: str = None, temperature: float = 0.7,
|
||||
org_id: str = None, user_id: str = None) -> str:
|
||||
org_id: str = None, user_id: str = None, purpose: str = '') -> str:
|
||||
"""Call LLM and return text response.
|
||||
|
||||
统一走模型治理推理 API(门禁链 + 双维度记账)。
|
||||
org_id 为空 = 系统级('0'),与旧语义(不过滤机构)等价。
|
||||
purpose='utility':辅助任务(分类/选择/摘要),治理层按用途选模型链
|
||||
(机构策略配置辅助模型优先),经 payload 的 _purpose 键透传到端点。
|
||||
"""
|
||||
# 兼容旧优先级:harnessed_agent(若宿主加载了独立推理后端)
|
||||
try:
|
||||
@ -129,6 +131,8 @@ async def llm_call(prompt: str, model: str = None, temperature: float = 0.7,
|
||||
"messages": [{"role": "user", "content": prompt}],
|
||||
"temperature": temperature,
|
||||
}
|
||||
if purpose:
|
||||
payload["_purpose"] = purpose
|
||||
data = await _http_chat(payload, org_id or '0', user_id or '', model or '')
|
||||
try:
|
||||
return data["choices"][0]["message"]["content"]
|
||||
@ -143,9 +147,14 @@ async def call_llm(tenant_id: str, prompt: str, model: str = None, temperature:
|
||||
|
||||
|
||||
async def llm_call_msgs(messages: list, model: str = None, temperature: float = 0.7,
|
||||
org_id: str = None, user_id: str = None) -> str:
|
||||
"""Call LLM with full message array (system/user/assistant)."""
|
||||
org_id: str = None, user_id: str = None, purpose: str = '') -> str:
|
||||
"""Call LLM with full message array (system/user/assistant).
|
||||
|
||||
purpose='utility':辅助任务(分类/选择/摘要),治理层按用途选模型链。
|
||||
"""
|
||||
payload = {"model": model or '', "messages": messages, "temperature": temperature}
|
||||
if purpose:
|
||||
payload["_purpose"] = purpose
|
||||
data = await _http_chat(payload, org_id or '0', user_id or '', model or '')
|
||||
try:
|
||||
return data["choices"][0]["message"]["content"]
|
||||
@ -156,17 +165,20 @@ async def llm_call_msgs(messages: list, model: str = None, temperature: float =
|
||||
|
||||
async def llm_call_msgs_native(messages: list, tools: list = None, model: str = None,
|
||||
temperature: float = 0.7, org_id: str = None,
|
||||
user_id: str = None) -> dict:
|
||||
user_id: str = None, purpose: str = '') -> dict:
|
||||
"""Native function calling. 传入 tools JSON schema,返回 message dict。
|
||||
|
||||
Returns:
|
||||
{"content": str, "tool_calls": [{"id","type","function":{"name","arguments"}}]}
|
||||
当模型返回 tool_calls 时,content 通常为空字符串。
|
||||
purpose='utility':辅助任务(分类/选择/摘要),治理层按用途选模型链。
|
||||
"""
|
||||
payload = {"model": model or '', "messages": messages, "temperature": temperature}
|
||||
if tools:
|
||||
payload["tools"] = tools
|
||||
payload["tool_choice"] = "auto"
|
||||
if purpose:
|
||||
payload["_purpose"] = purpose
|
||||
data = await _http_chat(payload, org_id or '0', user_id or '', model or '')
|
||||
try:
|
||||
msg = data["choices"][0]["message"]
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user