对话API是DB-GPT提供的统一的对话接口,可以通过对话接口分别与多种大模型,多种应用场景进行对话。 当前DB-GPT支持的所有模型都可以通过对话API进行对话。此外也支持多种对话场景,如:
- 普通对话 - ChatNormal
- 应用对话 - ChatAPP
- 知识库对话 - ChatKnowledge
- 工作流对话 - ChatFlow
默认对话模式是普通对话,即直接与大语言模型进行交流。
这里我们来介绍一些对话API的具体使用。接口地址如下:
POST /api/v2/chat/completions
调用案例
Curl调用
DBGPT_API_KEY="dbgpt"curl -X POST "http://localhost:5670/api/v2/chat/completions" \-H "Authorization: Bearer $DBGPT_API_KEY" \-H "accept: application/json" \-H "Content-Type: application/json" \-d "{\"messages\":\"Hello\",\"model\":\"chatgpt_proxyllm\", \"stream\": true}"
Python SDK样例
流式对话
创建一个chat.py 文件,输入如下代码
import asynciofrom dbgpt.client import ClientDBGPT_API_KEY = "dbgpt"client = Client(api_key=DBGPT_API_KEY)async def chat():async for data in client.chat_stream(model="proxyllm",messages="hello",):print(data.choices[0].delta.content)if __name__ == "__main__":asyncio.run(chat())
如果你使用Notebook,可以直接使用如下代码:
from dbgpt.client import ClientDBGPT_API_KEY="dbgpt"client = Client(api_key=DBGPT_API_KEY)async for data in client.chat_stream(model="proxyllm",messages="hello"):print(data.choices)

非流式对话
from dbgpt.client import ClientDBGPT_API_KEY = "dbgpt"client = Client(api_key=DBGPT_API_KEY)response = await client.chat(model="proxyllm" ,messages="hello")
请求响应
{"id": "a8321543-52e9-47a5-a0b6-3d997463f6a3","object": "chat.completion","created": 1710826792,"model": "chatgpt_proxyllm","choices": [{"index": 0,"message": {"role": "assistant","content": "Hello! How can I assist you today?"},"finish_reason": null}],"usage": {"prompt_tokens": 0,"total_tokens": 0,"completion_tokens": 0}}
参数说明
| 参数名 | 参数说明 | 是否必须 |
|---|---|---|
model |
要对话的模型名称,具体的模型可以参考DB-GPT模型配置文件支持的模型列表。 + proxyllm + zhipu_proxyllm + vicuna-13b + 更多模型 |
- [x] 是 |
messages |
对话消息,包含历史对话记录 | - [x] 是 |
chat_model |
DB-GPT对话模式,支持以下对话模式 + chat_normal, 普通对话 + chat_app,与应用对话 + chat_knowledge, 与知识库对话 + chat_flow,与流程对话 默认是普通对话 |
- [ ] 否 |
chat_param |
在不同对话模式下,需要的对话参数, 如 + app_id** + space_id + flow_id 默认值为空 |
- [ ] 否 |
max_new_tokens |
最大Token数量,总长度受模型上下文长度的限制。 | - [ ] 否 |
temperature |
使用的温度, 参数值越小确定性越高,值越大输出随机性越大 | - [ ] 否 |
<font style="color:rgb(28, 30, 33);">conv_uid</font> |
模型对话的推理ID,默认是None | - [ ] 否 |
span_id |
模型推理的span_id, 默认是None | - [ ] 否 |
sys_code |
系统码,默认值是None | - [ ] 否 |
user_name |
用户名,默认值是None | - [ ] 否 |
流式响应参数
| 参数 | 参数描述 | 备注 |
|---|---|---|
id |
对话id,例如:902b51f2-be4a-42ba-b318-5b4567a33666 | |
model |
对话模型 | |
created |
创建聊天完成时的Unix时间戳 | |
choices |
python [ index: 0, delta:{ role, content, finish_reason } ] |
非流式响应参数
| 参数 | 参数描述 | 备注 |
|---|---|---|
id |
对话id,例如:902b51f2-be4a-42ba-b318-5b4567a33666 | |
model |
对话模型 | |
created |
创建聊天完成时的Unix时间戳 | |
object |
object=’chat.completion’ | |
choices |
python [ index: 0, delta:{ role, content, finish_reason } ] |
|
usage |
+ prompt_tokens + total_tokens + completion_tokens |
