Skip to content

模型接口与请求频率

进入“系统管理 → 系统配置 → 模型管理”,可选择HTTP兼容接口、OpenAI SDK或LiteLLM SDK。历史配置仍默认使用HTTP兼容接口,RPM和最大并发均为0,不启用本地限流。

三条接口都通过普通Chat Completions生成文本,结构化正文继续由平台解析。OpenAI SDK使用模型的原始名称;LiteLLM当前经受控OpenAI兼容传输调用服务,名称可填openai/模型名。不带供应商前缀的简单名称会按OpenAI兼容模型处理;模型名本身含斜杠时请显式加openai/。其他供应商原生协议尚未在本项目验证。

Base URL填写服务的API根地址,例如本机服务的http://127.0.0.1:8001/v1。已有以/chat/completions结尾的配置仍兼容。API Key用环境变量名称引用;也可通过现有安全输入框写入本地.env,数据库中不保存原始密钥。

安装配置

项目requirements安装包含已验证的OpenAI2.43.0、LiteLLM1.100.5和HTTPX0.28.1。使用uv时执行uv sync --extra llm启用模型SDK扩展;需要模型训练、观测等其他能力时按原有说明添加相应扩展。

可选TDX依赖mootdx0.11.7要求HTTPX小于0.26,与LiteLLM的HTTPX至少0.28要求冲突。因此pyproject把llm与tdx设为互斥扩展;使用各自独立的安装环境/服务配置,不执行--all-extras强行组合。原HTTP模型接口和OpenAI SDK保留在基础能力中,旧TDX安装配置仍可选择;本轮没有新建TDX跨环境工作进程。

RPM与共享配额

字段 含义
模型调用接口 / api_backend http、openai或litellm
RPM / rpm 滚动60秒内允许的请求尝试数,0表示不限
最大并发 / max_concurrency 同一配额范围的在途请求数,0表示不限
达到限额时等待 / wait_on_limit 默认等待;关闭后返回本地限流错误
共享配额组 / quota_group 缺省每份模型配置独立共享;同组模型共同使用配额
重试次数 / max_retries 可恢复错误的额外尝试数,默认0
扩展请求参数 / extra_body 生成参数JSON对象,不能覆盖核心字段或保存凭据

同一模型的API、网页、知识库多轮检索、模型连接测试及研究调用共用计数。多个LLMClient或同一项目数据库下的后台进程不会各自获得一份RPM。共享组中的RPM、并发和等待策略必须一致;调整一个多模型共享组时,先明确成员的配置变更,避免仅修改一个成员导致策略冲突。

每次尝试都计入RPM,包括请求发出后收到429、鉴权失败或服务端错误。失败不会立即返还请求次数;在途并发许可会释放,进程异常遗留的许可按调用截止时间和宽限期失效。等待时不持有数据库写锁,也不提前占用并发许可。

等待、重试退避与请求使用同一次调用预算。排队期间取消会停止等待;已在网络中的同步请求会在连接/读取超时或响应返回后检查取消,不能保证立刻中断上游处理或撤销已产生费用。底层超时采用网络库的连接/读取语义,极端慢速分块响应不等同于操作系统级硬截止。

429、408/409、配置允许的服务端错误及连接/超时错误可按重试预算再试,优先遵守Retry-After;鉴权与参数错误直接失败。SDK内置重试关闭,因此实际尝试由平台统一记录和限流。

参数与诊断

温度、输出长度、历史和图片按原入口传入;显式思考参数会映射到对应SDK参数位置。未填写的思考开关不主动发送。扩展参数中的top_p等生成字段按普通请求体传递,模型、消息、密钥、工具和响应格式等核心字段禁止通过扩展覆盖;嵌套凭据字段也会拒绝。

普通调用结果新增api_backend、rate_limit_wait_ms、request_duration_ms和retry_count,分别表示调用接口、配额等待、请求尝试总耗时和重试次数;duration_ms包含等待及退避。日志仅记录模型ID、次数和等待信息,不记录密钥、完整请求体或回答。

CLI创建和修改模型支持同样字段。--base-url是平台后端地址,模型服务地址请用--set base_url=...设置;例如在model create参数中提供--api-backend openai --rpm 60 --max-concurrency 2,并用--api-key-env引用本地密钥。所有默认值及保护字段见egs/config/models/llm_client.yaml。

检索场景见知识库指南,整体配置见配置说明,实现边界见模型调用原理。