DB-GPT项目中使用AI SDK调用本地多模型服务指南
DB-GPT DB-GPT - 一个开源的数据库领域大模型框架,旨在简化构建数据库大模型应用的过程。 项目地址: https://gitcode.com/gh_mirrors/db/DB-GPT
前言
在现代AI应用开发中,能够灵活调用各种大语言模型是开发者的核心需求之一。DB-GPT项目提供了一个创新的解决方案,它允许开发者通过标准的AI SDK接口来调用本地部署的多种大语言模型,大大简化了多模型集成的工作流程。
准备工作
模型服务部署
在开始使用AI SDK调用之前,必须确保已经完成了模型服务的部署工作。DB-GPT支持多种模型的本地部署,包括但不限于Qwen、BAAI等系列模型。部署过程需要根据具体模型的要求进行配置,确保模型服务能够正常运行。
API Server启动
部署完成后,需要启动API Server服务,这是AI SDK调用的核心组件。默认情况下,API Server会监听8100端口。
启动命令示例:
dbgpt start apiserver --controller_addr http://127.0.0.1:8000 --api_keys EMPTY
这个命令中:
--controller_addr
参数指定了控制器地址--api_keys
参数设置了API密钥,示例中使用"EMPTY"表示无需密钥验证
服务验证方法
使用cURL验证
cURL是一个简单有效的命令行工具,可以用来快速验证API服务是否正常工作。
1. 模型列表查询
curl http://127.0.0.1:8100/api/v1/models \
-H "Authorization: Bearer EMPTY" \
-H "Content-Type: application/json"
2. 普通聊天接口
curl http://127.0.0.1:8100/api/v1/chat/completions \
-H "Authorization: Bearer EMPTY" \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen/Qwen2.5-Coder-32B-Instruct",
"messages": [{"role": "user", "content": "hello"}]
}'
3. 流式聊天接口
curl http://127.0.0.1:8100/api/v1/chat/completions \
-H "Authorization: Bearer EMPTY" \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen/Qwen2.5-Coder-32B-Instruct",
"stream": true,
"messages": [{"role": "user", "content": "hello"}]
}'
4. 文本嵌入接口
curl http://127.0.0.1:8100/api/v1/embeddings \
-H "Authorization: Bearer EMPTY" \
-H "Content-Type: application/json" \
-d '{
"model": "BAAI/bge-large-zh-v1.5",
"input": "Hello world!"
}'
使用AI SDK验证
对于Python开发者来说,使用官方的AI SDK可以更加方便地集成到现有项目中:
import ai
# 初始化客户端
client = ai.AIClient(
api_key="EMPTY",
base_url="http://127.0.0.1:8100/api/v1",
)
# 指定模型
model = "Qwen/Qwen2.5-Coder-32B-Instruct"
# 创建聊天完成请求
completion = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": "hello"}]
)
# 输出结果
print(completion.choices[0].message.content)
实验性功能:重排序API
DB-GPT还提供了一个实验性的重排序(ReRank)API,可以用于对候选文本列表进行相关性排序。
cURL验证方式
curl http://127.0.0.1:8100/api/v1/beta/relevance \
-H "Authorization: Bearer EMPTY" \
-H "Content-Type: application/json" \
-d '{
"model": "bge-reranker-base",
"query": "what is awel talk about?",
"documents": [
"Agentic Workflow Expression Language(AWEL) is...",
"Autonomous agents have long been...",
"AWEL is divided into three levels...",
"Elon musk is a famous entrepreneur..."
]
}'
Python验证方式
from dbgpt.rag.embedding import OpenAPIRerankEmbeddings
# 初始化重排序客户端
rerank = OpenAPIRerankEmbeddings(
api_key="EMPTY",
model_name="bge-reranker-base"
)
# 执行重排序
results = rerank.predict(
query="what is awel talk about?",
candidates=[
"Agentic Workflow Expression Language(AWEL) is...",
"Autonomous agents have long been...",
"AWEL is divided into three levels...",
"Elon musk is a famous entrepreneur..."
]
)
# 输出相关性分数
print(results)
输出结果示例:
[
0.9685816764831543,
3.7338297261158004e-05,
0.03692878410220146,
3.73825132555794e-05
]
最佳实践建议
- 环境隔离:建议在虚拟环境中进行开发和测试,避免依赖冲突
- 错误处理:在实际应用中,应该添加适当的错误处理逻辑
- 性能监控:对于生产环境,建议添加API调用性能监控
- 安全考虑:虽然示例中使用"EMPTY"作为API密钥,但在生产环境中应该使用强密钥
常见问题解答
Q: 为什么我的API调用返回404错误? A: 请确保API Server已正确启动,并且端口没有被其他服务占用
Q: 如何知道哪些模型可用? A: 可以通过查询模型列表API获取当前可用的模型
Q: 流式接口和普通接口有什么区别? A: 流式接口适合需要实时显示结果的场景,可以减少用户等待时间
通过本文的介绍,开发者可以快速掌握在DB-GPT项目中使用AI SDK调用本地多模型服务的方法,为构建复杂的AI应用打下坚实基础。
DB-GPT DB-GPT - 一个开源的数据库领域大模型框架,旨在简化构建数据库大模型应用的过程。 项目地址: https://gitcode.com/gh_mirrors/db/DB-GPT
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考