配置大语言模型
为适应不同场景,您可能需要选择不同的大语言模型(LLM)提供商,包括火山豆包、MiniMax、阿里通义千问、阶跃星辰、DeepSeek 等,也可能更进一步使用完全自研的LLM。本文说明常见大语言模型厂商如何配置及相关注意事项。
LLM 参数说明
使用第三方 LLM 服务或者使用自定义的 LLM 服务时,需要配置 LLM 参数。
| 参数 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| Vendor | String | 否 | LLM 接口的供应商类别。
|
| Url | String | 是 | LLM 回调地址,必须与 OpenAI 协议兼容。
|
| ApiKey | String | 否 | 访问 LLM 提供的各类模型及相关服务的身份验证凭证。 |
| Model | String | 是 | 调用的模型。不同的 LLM 服务提供商支持的配置不同,请参考对应文档填入。 |
| SystemPrompt | String | 否 | 系统提示词。可以是角色设定、提示词和回答样例等。 |
| Temperature | Float | 否 | 较高的值将使输出更加随机,而较低的值将使输出更加集中和确定。 |
| TopP | Float | 否 | 采样方法,数值越小结果确定性越强;数值越大,结果越随机。 |
| Params | Object | 否 | 其他 LLM 参数,例如使用的最大 Token 数限制等。不同的 LLM 供应商支持的配置不同,请参考对应文档按需填入。 说明 参数名与各厂商 LLM 的参数名保持一致。 |
| AddAgentInfo | Bool | 否 | 如果该值为 true ,在 AI Agent 后台向自定义 LLM 服务发起请求时,请求参数中会包含智能体信息 agent_info。该值默认为 false。在使用自定义 LLM 时可根据此参数内容做额外的业务逻辑。说明 仅在 Vendor 为 "OpenAIChat" 时有效。 |
| AgentExtraInfo | Object | 否 | Agent 扩展信息,服务器在请求 LLM 服务时会在请求参数中透传该参数。透传参数示例请参考使用自定义 LLM。您可以使用此参数在自定义 LLM 服务中执行额外的业务逻辑。 说明 仅在 Vendor 为 "OpenAIChat" 时有效。 |
使用第三方 LLM
第三方 LLM 需要兼容 OpenAI 协议。
不同厂商不同模型的 max_tokens 参数最大值不同,请根据实际需求设置合理的值。如果不了解该参数含义,可以不设置该参数,这会使用默认值。
- 如果 max_tokens 超过模型限制,可能会导致请求失败。
- 如果 max_tokens 设置过小,可能会导致输出不完整,答案被截断。
您可以在注册智能体(RegisterAgent)或创建智能体实例(CreateAgentInstance)时设置 LLM 参数。
以下是常见 LLM 厂商的配置示例:
使用自定义 LLM
AI Agent 后台使用 OpenAI API 协议调用 LLM 服务。因此,您也可以使用任何兼容 OpenAI 协议的自定义 LLM。这里的自定义 LLM 甚至可以在底层实现的时候调用多个子 LLM 模型或者进行 RAG 搜索、联网搜索后再进行整合输出。
实现自定义LLM
创建符合 OpenAI Chat Completions API 协议的接口。
使用自定义LLM
在注册智能体(RegisterAgent)时,设置使用自定义 LLM URL,并在 SystemPrompt 中要求 LLM 根据知识库内容回答用户问题。
// 请将以下示例中的 LLM 和 TTS 的 ApiKey、appid、token 等鉴权参数换成你实际的鉴权参数。
async registerAgent(agentId: string, agentName: string) {
// 请求接口:https://aigc-aiagent-api.zegotech.cn?Action=RegisterAgent
const action = 'RegisterAgent';
// !mark(4:9)
const body = {
AgentId: agentId,
Name: agentName,
LLM: {
Url: "https://your-custom-llm-service/chat/completions",
ApiKey: "your_api_key",
Model: "your_model",
SystemPrompt: "请根据用户提供的知识库内容用友好的语气回答用户问题,如果用户的问题不在知识库中,请礼貌的告诉用户我们没有相关的知识库内容。"
},
TTS: {
Vendor: "ByteDance",
Params: {
"app": {
"appid": "zego_test",
"token": "zego_test",
"cluster": "volcano_tts"
},
"audio": {
"voice_type": "zh_female_wanwanxiaohe_moon_bigtts"
}
}
}
};
// sendRequest 方法封装了请求的 URL 和公共参数。详情参考:https://doc-zh.zego.im/aiagent-server/api-reference/accessing-server-apis
return this.sendRequest<any>(action, body);
}至此您就可以与自定义 LLM 进行对话了。
最佳实践
详细使用案例请参考 结合 RAG 使用 AI Agent。
如何配置多模态 LLM - 配置文字输入语音输出的 LLM
相比纯文本输入输出的 LLM 请求,输出为音频的请求体中多了指定输出模态的 modalities 字段和指定输出音色和格式的 audio 字段,这些字段在 LLM.Params 参数中指定。
请在调用 CreateAgentInstance 或 CreateDigitalHumanAgentInstance 接口的时候,在 AdvancedConfig 中 指定 DisableTTS:true 来禁用 TTS 功能。
以下为 LLM 输出音频的参数配置示例:
"LLM": {
"Url": "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions",
"ApiKey": "your_api_key",
"Model": "qwen3-omni-flash",
"SystemPrompt": "你是小智,成年女性,是**即构科技创造的陪伴助手**,上知天文下知地理,聪明睿智、热情友善。\n对话要求:1、按照人设要求与用户对话。\n2、不能超过100字。",
"Temperature": 1,
"TopP": 0.7,
"Params": {
"max_tokens": 1024,
"stream":true,
"stream_options":{"include_usage":true},
"modalities":["text","audio"],
"audio":{"voice":"Cherry","format":"pcm"}
}
}校验 LLM 参数
如果您在配置 LLM 参数时,不确定参数是否正确,可以使用 LLM 参数校验器进行校验。
- 选择合适的 LLM 厂商、选择开发语言、填写 LLM 参数后即可点击校验按钮进行校验。
- 用户消息可以填写一个用户消息用于测试 LLM 是否能正确理解用户意图并返回正确的响应。如果不填写,默认使用“你好,请介绍一下你自己”作为用户消息。
- “示例代码” Tab 为对应语言的示例代码。
- “实际请求LLM参数” 为实际发送给 LLM 的参数,您可以根据对比所选厂商的官方文档,确保参数填写正确。
