改造 dify 项目适配自建的 OpenAI API 服务

本文介绍了如何修改Dify项目,将默认的OpenAIAPI地址替换为自建服务地址,包括调整`openai_provider.py`、重构Docker镜像、更新docker-compose.yaml并设置环境变量,以便于启动项目使用自定义API.

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0. 背景

项目 https://github.com/langgenius/dify.git 的 OpenAI 配置项目里,现在(20230802)还支持输入 api_base 项目,所以修改了一下代码适配自建的 OpenAI API 服务。

1. 修改默认的 api_base 地址

整个工程检索 http://api.openai.com,将它置换为自建的 OpenAI API 服务的地址,例如 http://127.0.0.1:8000/v1

整个工程检索 OpenAIEmbeddings,添加自建的 OpenAI API 服务的地址,例如,

import os
(略)
        embeddings = CacheEmbedding(OpenAIEmbeddings(
            openai_api_base=os.environ.get("OPENAI_API_BASE", "http://127.0.0.1:8000/v1"),
            **model_credentials
        ))

2. 修改 openai_provider.py

在这里插入图片描述

3. 重新构建 docker 镜像

cd api
docker buildx build -t <your_dockerhub_username>/dify-api:0.3.12 .

4. 修改 docker-compose.yaml

将两处 image: langgenius/dify-api:0.3.12 修改为 <your_dockerhub_username>/dify-api:0.3.12
在 worker 和 api 中添加环境变量 OPENAI_API_BASE: "http://127.0.0.1:8000/v1"

5. 启动项目

cd docker
docker compose up -d

完结!

### Dify配置和适配昇腾AI加速卡的方法 为了使Dify能够适配昇腾AI加速卡,需对现有环境进行一系列修改。昇腾AI处理器由华为设计,专为机器学习任务提供硬件加速支持。 #### 修改默认API基础地址 首先,针对昇腾设备的特点,需要调整`api_base`指向昇腾云服务端点或本地部署的服务接口[^3]。这一步骤确保了后续调用能正确路由到目标计算资源上执行推理操作。 ```bash export API_BASE_URL="https://ascend-cloud-service.example.com/v1" ``` #### 更新OpenAI Provider设置 接着,在`openai_provider.py`文件内加入特定于昇腾的支持逻辑,比如指定模型加载路径、初始化参数等: ```python class AscendProvider(OpenAIBaseProvider): def __init__(self, config=None): super().__init__() self.config = { 'model_path': '/path/to/ascend/models', **config or {} } def load_model(self, model_name): from ascend_sdk import ModelLoader return ModelLoader.load(model_name=model_name, path=self.config['model_path']) ``` #### 构建兼容镜像 考虑到昇腾SDK可能依赖特殊的库文件或是编译选项,建议创建一个新的Dockerfile来集成这些变更,并通过多阶段构建优化最终容器大小[^4]: ```dockerfile FROM nvidia/cuda:11.7.0-cudnn8-devel-ubuntu20.04 AS builder RUN apt-get update && \ apt-get install -y python3-pip git build-essential libgomp1 WORKDIR /app COPY . . # 安装Ascend SDK和其他依赖项 RUN pip3 install --no-cache-dir -r requirements.txt && \ wget https://example.com/path-to-ascend-sdk.deb && dpkg -i *.deb FROM ubuntu:20.04 COPY --from=builder /app / CMD ["dify", "serve"] ``` #### 调整Docker Compose配置 最后,编辑`docker-compose.yml`以反映新的镜像名称和服务定义: ```yaml version: '3' services: dify-server: image: custom-dify-with-ascend-support:v1 ports: - "8000:8000" environment: - API_BASE_URL=https://ascend-cloud-service.example.com/v1 ``` 以上步骤完成后即可启动项目并验证是否成功利用昇腾AI加速卡提升了性能表现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值