BYO-LLM

BYO-LLM

本文说明如何用 OpenAI API 兼容方式接入自研、微调或私有化部署的大语言模型。页名 BYO-LLM。平台转发请求并按能力配置调用;模型回复由企业的模型服务生成。

这里的 QPS、并发和超时是模型服务自身的限制,不是开放接口的访问频次。

快速阅读

优先提供 POST /v1/chat/completions。鉴权使用 Authorization: Bearer <API_KEY>。若接口不需要鉴权,必须书面说明。

上下文长度和最大输出长度在平台中填纯数字。例如 128K 填 128000。

非兼容接口需要另附完整接口文档,适配范围以联调评估为准。

阅读地图

内容章节
企业要提交的服务信息配置项:模型服务信息
平台添加 OpenAI-API-compatible 时的能力开关配置项:平台能力配置
请求和响应长什么样请求与响应
呼入 / 外呼机器人与对话分析何时真的调到该模型生效、验收

配置项

模型服务信息

参数必填填写要求
API endpoint / 接入点是完整调用地址,例如 https://example.com/v1/chat/completions
API endpoint URL / 基础地址是去掉 /chat/completions。上例填 https://example.com/v1
API Key / 鉴权密钥是用于 Authorization: Bearer <API_KEY>。无需鉴权时明确说明
model / 模型名称是服务实际识别的模型 ID,例如 qwen3-8b
endpoint model name / Endpoint 模型名称否仅当服务要求在 endpoint 配置里单独声明时填写
OpenAI API-compatible / 接口协议是优先 /v1/chat/completions。非兼容接口另附文档
HTTP Method / 请求方法是通常为 POST
HTTP Headers / 请求头是至少 Authorization: Bearer <API_KEY>、Content-Type: application/json
Request Body / 请求体参数是说明 model、messages、temperature、top_p、max_tokens、stream、stream_options 的支持情况
Response Schema / 返回体格式是回复内容、Token 用量、错误码、错误信息所在字段
stream / 流式输出是是否支持 stream=true,以及分隔符
Context Length / 上下文长度是纯数字,例如 128000
max_tokens / 最大输出长度是单次响应最大输出 Token 数
Sampling Parameters / 生成参数否temperature、top_p、presence_penalty、frequency_penalty 的默认值或限制
Network Access / 网络访问方式是公网、专线、VPN 或内网白名单
IP Allowlist / IP 白名单视网络限制来源时提供开通要求
Rate Limit / Timeout / 限流与超时否模型服务的 QPS、并发、超时和额度

平台接入配置示例:

{
  "provider": "OpenAI-API-compatible",
  "modelType": "LLM",
  "apiEndpointUrl": "https://example.com/v1",
  "apiKey": "sk-xxxx",
  "model": "qwen3-8b",
  "contextLength": 128000,
  "maxTokens": 8192,
  "stream": true
}

平台能力配置

添加 OpenAI-API-compatible 模型时确认:

配置项必填配置要求
Model Type / 模型类型是LLM
model / 模型名称是服务实际识别的模型 ID
Model Display Name / 模型显示名称否便于业务识别的展示名
API Key / 鉴权密钥是调用时生成 Authorization: Bearer <API_KEY>
API endpoint URL / 基础地址是/chat/completions 前的地址,例如 https://example.com/v1
endpoint model name / API endpoint 中的模型名称否无特殊要求时可不填,或与模型名称一致
Completion mode / 完成模式是对话
Context Length / 模型上下文长度是纯数字,例如 128000
max_tokens / 最大 token 上限是模型允许的最大输出 Token 数
Agent Thought / 推理能力是支持推理或思考选 支持,否则 不支持
Function calling / 工具调用是支持时选 Tool Call;旧版接口可选 Function Call;不支持选 不支持
Stream function calling / 流式工具调用是支持选 支持,否则 不支持
Vision / 视觉输入是支持图片等视觉输入选 支持,纯文本选 不支持
Structured Output / 结构化输出是支持 JSON 等结构化输出选 支持,否则 不支持
Stream mode auth / 流式鉴权否无特殊要求选 不使用
Stream delimiter / 流模式返回结果的分隔符否按服务协议填写,默认可使用 \n\n

能力开关必须与模型服务真实能力一致。打开工具调用或视觉,但服务不支持时,联调会在对应请求上失败。

配置来源:企业提交上表;平台写入模型配置;呼入机器人、外呼机器人或对话分析选择该模型后才发起调用。

请求与响应

请求示例:

POST /v1/chat/completions HTTP/1.1
Host: example.com
Authorization: Bearer sk-xxxx
Content-Type: application/json
{
  "model": "qwen3-8b",
  "messages": [
    {
      "role": "user",
      "content": "请总结这通会话的主要问题"
    }
  ],
  "temperature": 0.7,
  "top_p": 0.9,
  "max_tokens": 1024,
  "stream": true,
  "stream_options": {
    "include_usage": true
  }
}

非流式响应需能取到回复内容。支持用量统计时返回 usage。

{
  "id": "chatcmpl-example",
  "object": "chat.completion",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "本通会话主要围绕客户咨询订单状态展开,客服已完成查询并告知预计送达时间。"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 128,
    "completion_tokens": 36,
    "total_tokens": 164
  }
}

stream=true 时按服务约定的分隔符持续返回,例如:

data: {"choices":[{"delta":{"content":"本通"},"index":0}]}

data: {"choices":[{"delta":{"content":"会话主要围绕客户咨询订单状态展开。"},"index":0}]}

data: [DONE]

生效

  1. 地址、密钥、模型名称和网络白名单可用。
  2. 平台能力开关与服务能力一致,上下文和 max_tokens 已填纯数字。
  3. 呼入机器人、外呼机器人或对话分析实际选中该模型。
  4. 服务返回 choices 中的回复;流式时分隔符与平台配置一致。

地址、密钥、模型名称或协议变更后同步改平台配置。内网部署时先完成网络打通。模型效果、时延、稳定性和费用取决于该模型服务。

验收

  • 测试问题能打通鉴权,并取到回复文本。
  • messages、stream、max_tokens 与服务要求一致。
  • 流式输出的分隔符与「Stream delimiter」一致。
  • 鉴权失败、模型不存在、限流、超时能从错误码和错误信息区分。
  • 对话分析若要求 JSON,先确认 Structured Output 为 支持,且返回里能稳定取到该结构。
  • 按业务峰值核对模型服务自己的 QPS、并发和超时,不要用开放接口频次页的默认值代替。

Did this page help you?