refactor(platform_ability): 模型自动配置不再写价格四字段(模型表已删,定价走ppid)

This commit is contained in:
yumoqing 2026-09-04 21:02:59 +08:00
parent 8bb9a0c682
commit 495592dee5

View File

@ -93,14 +93,12 @@ async def _h_platform_llm_status(sor, params, ctx):
{"name": getattr(r, "name", ""), "balance": float(getattr(r, "balance", 0) or 0), {"name": getattr(r, "name", ""), "balance": float(getattr(r, "balance", 0) or 0),
"status": getattr(r, "status", "")} for r in (accs or [])] "status": getattr(r, "status", "")} for r in (accs or [])]
models = await sor.sqlExe( models = await sor.sqlExe(
"SELECT name, vendor_model_id, capability, price_input, price_output, status " "SELECT name, vendor_model_id, capability, status "
"FROM llm_model ORDER BY created_at DESC LIMIT 30", {}) "FROM llm_model ORDER BY created_at DESC LIMIT 30", {})
await sor.sqlExe("COMMIT", {}) await sor.sqlExe("COMMIT", {})
out["models"] = [ out["models"] = [
{"name": getattr(r, "name", ""), "vendor_model_id": getattr(r, "vendor_model_id", ""), {"name": getattr(r, "name", ""), "vendor_model_id": getattr(r, "vendor_model_id", ""),
"capability": getattr(r, "capability", ""), "capability": getattr(r, "capability", ""),
"price_input": float(getattr(r, "price_input", 0) or 0),
"price_output": float(getattr(r, "price_output", 0) or 0),
"status": getattr(r, "status", "")} for r in (models or [])] "status": getattr(r, "status", "")} for r in (models or [])]
return json.dumps(out, ensure_ascii=False) return json.dumps(out, ensure_ascii=False)
@ -228,8 +226,6 @@ _EXTRACT_PROMPT = """你是大模型 API 配置专家。通读下面这份模型
"async_steps": [{"purpose": "query|download", "path": "该步骤接口路径", "method": "GET|POST", "request_fields": ["请求字段名列表"], "response_format": "该步骤响应格式说明"}], "async_steps": [{"purpose": "query|download", "path": "该步骤接口路径", "method": "GET|POST", "request_fields": ["请求字段名列表"], "response_format": "该步骤响应格式说明"}],
"models": [{"vendor_model_id": "供应商侧模型ID", "capability": "t2t|t2i|i2t|t2v|embedding|rerank|tts|asr", "models": [{"vendor_model_id": "供应商侧模型ID", "capability": "t2t|t2i|i2t|t2v|embedding|rerank|tts|asr",
"sync_mode": "sync|async(提交后需轮询查询结果的填 async)", "sync_mode": "sync|async(提交后需轮询查询结果的填 async)",
"price_input": 输入价元/千token或null, "price_output": 输出价元/千token或null,
"cost_input": 输入成本元/千token或null, "cost_output": 输出成本元/千token或null,
"description": "一句话说明"}], "description": "一句话说明"}],
"doc_notes": "文档中影响配置的关键注意点" "doc_notes": "文档中影响配置的关键注意点"
} }
@ -391,14 +387,7 @@ async def _h_apply_llm_config(sor, params, ctx):
continue continue
cap = m.get("capability") or "t2t" cap = m.get("capability") or "t2t"
sync_mode = "async" if str(m.get("sync_mode") or "").strip() == "async" else "sync" sync_mode = "async" if str(m.get("sync_mode") or "").strip() == "async" else "sync"
raw_pi, raw_po = m.get("price_input"), m.get("price_output")
price_in, price_out = _f(raw_pi), _f(raw_po)
cost_in = _f(m.get("cost_input"), price_in)
cost_out = _f(m.get("cost_output"), price_out)
desc = (m.get("description", "") or "").strip() desc = (m.get("description", "") or "").strip()
# 文档未给价(null)→ 落 0 并显式标注,避免「0=免费」歧义
if raw_pi is None or raw_po is None:
desc = "⚠️文档未列定价(暂落0,需人工补录)。" + desc
# 异步模型:后续步骤模板链(提交后顺序执行 query→[download]) # 异步模型:后续步骤模板链(提交后顺序执行 query→[download])
query_ids = [] query_ids = []
if sync_mode == "async": if sync_mode == "async":
@ -417,12 +406,10 @@ async def _h_apply_llm_config(sor, params, ctx):
if recs: if recs:
mid = getattr(recs[0], "id", "") mid = getattr(recs[0], "id", "")
await sor.sqlExe( await sor.sqlExe(
"UPDATE llm_model SET price_input=${pi}$, price_output=${po}$, " "UPDATE llm_model SET description=${d}$, "
"cost_input=${ci}$, cost_output=${co}$, description=${d}$, "
"sync_mode=${sm}$, query_profile_ids=${q}$, updated_at=NOW() " "sync_mode=${sm}$, query_profile_ids=${q}$, updated_at=NOW() "
"WHERE id=${i}$", "WHERE id=${i}$",
{"pi": price_in, "po": price_out, "ci": cost_in, "co": cost_out, {"d": desc, "sm": sync_mode, "q": query_ids_json, "i": mid})
"d": desc, "sm": sync_mode, "q": query_ids_json, "i": mid})
await sor.sqlExe("COMMIT", {}) await sor.sqlExe("COMMIT", {})
updated.append(vmid) updated.append(vmid)
continue continue
@ -432,8 +419,7 @@ async def _h_apply_llm_config(sor, params, ctx):
"name": vmid, "vendor_model_id": vmid, "capability": cap, "name": vmid, "vendor_model_id": vmid, "capability": cap,
"sync_mode": sync_mode, "profile_id": profile_ids.get(cap, ""), "sync_mode": sync_mode, "profile_id": profile_ids.get(cap, ""),
"query_profile_ids": query_ids_json, "query_profile_ids": query_ids_json,
"ppid": "", "price_input": price_in, "price_output": price_out, "ppid": "",
"cost_input": cost_in, "cost_output": cost_out,
"default_params": "{}", "status": "active", "default_params": "{}", "status": "active",
"description": desc, "org_id": "0"}) "description": desc, "org_id": "0"})
created.append(vmid) created.append(vmid)