# agent_model_options.dspy - 返回 active 模型列表(供 AgentIO 模型选择下拉) # llm 表是 pipeline 库的通用配置,产线无关 # org_id 多租户隔离:非系统级机构只看到本机构的模型(不含系统级兜底) dbname = get_module_dbname('pipeline_core') org_id = (await get_userorgid()) or '' async with DBPools().sqlorContext(dbname) as sor: sql = "SELECT id, name, provider, model_id, capabilities FROM llm WHERE status='active'" params = {} if org_id and org_id != '0': sql += " AND org_id=${org}$" params['org'] = org_id sql += " ORDER BY name" recs = await sor.sqlExe(sql, params) rows = [] for r in recs: rows.append({ 'value': r.id, 'text': f"{r.name} ({r.provider})", 'provider': r.provider, 'model_id': r.model_id, 'capabilities': r.capabilities or 'text', }) return rows