DB-GPT项目中使用AI SDK调用本地多模型服务指南

DB-GPT项目中使用AI SDK调用本地多模型服务指南

DB-GPT 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
]

最佳实践建议

  1. 环境隔离:建议在虚拟环境中进行开发和测试,避免依赖冲突
  2. 错误处理:在实际应用中,应该添加适当的错误处理逻辑
  3. 性能监控:对于生产环境,建议添加API调用性能监控
  4. 安全考虑:虽然示例中使用"EMPTY"作为API密钥,但在生产环境中应该使用强密钥

常见问题解答

Q: 为什么我的API调用返回404错误? A: 请确保API Server已正确启动,并且端口没有被其他服务占用

Q: 如何知道哪些模型可用? A: 可以通过查询模型列表API获取当前可用的模型

Q: 流式接口和普通接口有什么区别? A: 流式接口适合需要实时显示结果的场景,可以减少用户等待时间

通过本文的介绍,开发者可以快速掌握在DB-GPT项目中使用AI SDK调用本地多模型服务的方法,为构建复杂的AI应用打下坚实基础。

DB-GPT DB-GPT - 一个开源的数据库领域大模型框架,旨在简化构建数据库大模型应用的过程。 DB-GPT 项目地址: https://gitcode.com/gh_mirrors/db/DB-GPT

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐皓锟Godly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值