了解各个组件
a. Xinference
- 定义:Xinference 是一个用于推理的框架,专注于高效地部署和运行大语言模型(LLM)。
- 功能:提供优化的推理性能和易于集成的接口,支持多种模型和硬件加速。
b. OneAPI
- 定义:Intel 的 OneAPI 是一个统一的编程模型,旨在简化多种硬件(如 CPU、GPU 和 FPGA)的开发。
- 功能:提供高性能计算和加速库,支持并行计算,适合在不同硬件上运行 AI 工作负载。
c. Dify
- 定义:Dify 是一个平台,旨在简化 AI 应用的开发和部署。
- 功能:提供可视化界面和工具,帮助开发者快速构建和管理 AI 应用。
使用Xinference安装部署本地模型,One API充当网关来管理模型池(本地模型以及第三方模型API),对外暴露统一接口。Dify接入One API来实现对不同大模型的支持,完成LLM应用的开发。
具体使用细节
Xinference使用细节
参考文档:inference.readthedocs.io/zh-cn/lates…
OneAPI使用细节
部署
最简单的方式:基于Docker Compose进行部署
- git clone github.com/songquanpen…
- cd one-api
- sudo docker compose up -d
- sudo docker compose ps (查看部署状态)
部署成功后访问地址: http://localhost:3000/
初始账号用户名为:root,密码为:123456
配置
- 渠道
-
One API中一个渠道对应一个api-key,这个api-key可以是GPT,chatglm,文心一言等第三方厂商提供的。一个api-key通常可以调用同一个厂商的多个模型。
-
One API会根据请求传入的模型来决定使用那个key,如果一个模型对应了多个key,则会随机调用。 添加渠道:
-
添加xinference渠道:
添加第三方siliconflow渠道(需自行注册:siliconflow.cn/zh-cn/)
添加成功有以后,点击测试查看是否有响应
-
令牌
访问One API所需的凭证,只需这1个凭证即可访问One API上配置的模型。因此Dify中,只需要配置One API的baseurl和令牌即可。添加新令牌:
填写名称和选择模型范围即可:
添加令牌完成,可以点击复制,即可使用:
令牌使用方法(测试代码):
BASE_URL:One API地址(http://ip:port/v1)
OPENAI_API_KEY:生成的令牌
from openai import OpenAI
one_api_key = '复制令牌的api-key' #AIT
one_api_url = 'http://ip:port/v1'
client = OpenAI(api_key=one_api_key, base_url=one_api_url)
response = client.chat.completions.create(
#model="sf/glm-4-9b-chat",
model="sf/Qwen2-72B-Instruct",
messages=[
{"role": "system", "content": "You are a helpful assistant"},
{"role": "user", "content": "你好"},
],
stream=False
)
print(response.choices[0].message.content)
- 工作流程
- 客户端请求One API
- 根据请求中的model参数,匹配对应的渠道(根据渠道里的模型进行匹配,必须完全一致)。如果匹配到多个渠道,则随机选择一个(同优先级)。
- One API向真正的地址发出请求。
- One API将结果返回给客户端。
Dify使用细节
部署
-
git clong github.com/langgenius/…
-
cd dify/docker
-
cp .env.example .env
-
sudo docker compose up -d
运行后,可以在浏览器上访问 http://localhost/install 进入 Dify 控制台并开始初始化安装操作。
模型配置
配置访问One API中的模型:
模型提供商选择OpenAI-API-compatible:
添加模型:
总结
结合 Xinference、OneAPI 和 Dify 提供了一种高效的方式来部署和开发 LLM 应用。通过上述步骤,可以创建出功能强大的 AI 应用,满足不同的业务需求。确保在每个阶段进行充分的测试和优化,以实现最佳的性能和用户体验。