自定义大模型
在 AI 对话互动场景下,你可能需要使用自定义的大语言模型 (Custom LLM) 实现更多个性化需求。本文介绍如何使用自定义大模型接入声网对话式 AI 引擎。
技术原理
声网对话式 AI 引擎使用 OpenAI API 协议与 LLM 服务进行交互。接入自定义大模型的核心是提供一个与 OpenAI API 兼容的 HTTP 服务,这个服务需要能够接收和返回符合 OpenAI API 协议的请求和响应。
在此基础上,你可以实现更多的自定义功能,包括但不限于:
- 使用检索增强生成(RAG)功能,让大模型从特定知识库中检索信息
- 使用多模态能力,让大模型以文本和音频两种模态输出
- 使用工具调用功能,让大模型调用外部工具
- 使用 Function Calling 功能,让大模型以函数调用的形式返回结构化数据
前提条件
开始前,请确保你已经:
- 参考实现对话式智能体实现了与 AI 智能体对话互动的基本逻辑
- 拥有可访问的自定义大语言模型服务
- 如需使用检索增强生成(RAG)功能,已准备好向量数据库或检索系统
实现方式
创建符合 OpenAI API 协议的服务
要成功接入声网对话式 AI 引擎,你的自定义大模型服务必须提供一个与 OpenAI Chat Completions API 兼容的接口。关键点如下:
- 接口路径:提供接收请求的端点 (Endpoint),例如
https://your-custom-llm-service/chat/completions
。 - 请求格式:接受与 OpenAI API 协议兼容的请求参数。
- 响应格式:返回与 OpenAI API 协议兼容、且符合 SSE 规范的流式响应。
下面的示例代码展示了如何实现一个符合 OpenAI API 协议的接口:
- Python
- Go
配置声网对话式 AI 引擎
在调用 POST 创建对话式智能体时,将 LLM 配置指向你的自定义服务:
如果访问你的自定义大模型服务需要校验身份,请在 api_key
字段中传入你的认证信息。
{
"llm": {
"url": "https://your-custom-llm-service/chat/completions",
"api_key": "",
"system_messages": [
{
"role": "system",
"content": "You are a helpful assistant."
}
]
}
}
进阶功能
实现检索增强生成
如果你想提升智能体响应的准确性和相关性,可以利用检索增强生成(RAG)功能,让你的自定义大模型从特定知识库中检索信息,再将检索结果作为上下文提供给大模型生成回答。
以下示例代码模拟了从知识库中检索并返回内容的流程,并创建了 /rag/chat/completions
接口用于使用 RAG 检索结果调用 LLM 生成回答:
- Python
- Go
在调用 POST 创建对话式智能体时,只需将 LLM URL 指向你的 RAG 接口:
如果访问你的自定义大模型服务需要校验身份,请在 api_key
字段中传入你的认证信息。
{
"llm": {
"url": "http://your-custom-llm-service/rag/chat/completions",
"api_key": ""
"system_messages": [
{
"role": "system",
"content": "Please answer the user's question based on the following retrieved information: ..."
}
]
}
}
实现多模态能力
声网对话式 AI 引擎支持大模型以多模态形式(文本和音频)输出,你可以创建专用的多模态接口以实现更多个性化需求。
如果你想了解更多关于使用音频模态输出的信息,你可以阅读使用音频模态输出。
以下示例代码展示了通过读取文本和音频文件,并发送给大模型生成音频回复的流程:
- Python
- Go
调用 POST 创建对话式智能体时,参考如下配置:
{
"llm": {
"url": "http://your-custom-llm-service/audio/chat/completions",
"api_key": "your_api_key",
"input_modalities": ["text"],
"output_modalities": ["text", "audio"]
"system_messages": [
{
"role": "system",
"content": "You are a helpful assistant."
}
]
}
}
参考信息
示例项目
声网提供了开源的示例项目供你参考,你可以前往下载或查看其中的源代码。
接口标准
自定义大模型服务必须兼容 OpenAI Chat Completions API 的接口标准:
- 请求格式:包含模型、消息、工具调用配置等参数
- 响应格式:包含模型生成的回复、元数据等信息
- 流式响应:符合 SSE (Server-Sent Events) 规范
详细接口标准可参考: