侧边栏壁纸
  • 累计撰写 88 篇文章
  • 累计创建 41 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

Linux/NAS+Dify+NextChat/LobeChat+月之暗面Kimi+通义千问+智谱清言ChatGLM4+秘塔MetasoAI+跃问StepChat+讯飞星火+聆心智能Emohaa

勤为径苦作舟
2024-04-26 / 0 评论 / 0 点赞 / 121 阅读 / 0 字

简介

文中案例是 NAS,但其实都是在 Docker 中部署,Windows、Linux 都可以。

新建 Docker 网络

需要先新建一个自定义网络,方便容器间通信,Docker Compose 不支持默认 bridge 网络,会报错。

docker network create 网络名

部署 free-api

LLM Red Team 找到需要部署的逆向 API。

docker run -it -d --init --name kimi-free-api -p 10013:8000 -e TZ=Asia/Shanghai vinlic/kimi-free-api:latest

或者根据 free-api-hub 部署所有 API。

cd /opt
git clone https://github.com/LLM-Red-Team/free-api-hub.git
cd free-api-hub

# 添加 networks.default.external: true 和 networks.default.name: 自定义网络名
vim all-free-api.yml

# docker-compose 一键启动所有 free-api 的脚本
docker-compose -f all-free-api.yml up -d

部署 Dify

可以参考 Docker Compose 部署 | Dify 部署全部,也可以通用中间件单独部署,此处采用后者。

独立部署 Redis 和 PostgreSQL

  • 命令创建容器(仅供参考):
    # Redis
    docker run -d --restart=always \
      --name redis -p 16379:6379 \
      --network 网络名 \
      -v /volume1/docker/redis/redis.conf:/usr/local/etc/redis/redis.conf \
      -v /volume1/docker/redis/data:/data \
      redis redis-server /usr/local/etc/redis/redis.conf \
      --requirepass 密码 \
      --appendonly yes
    
    # PostgreSQL
    docker run -d --restart=always \
      --name postgres -p 15432:5432 \
      --network 网络名 \
      -e POSTGRES_PASSWORD=密码 \
      -e PGDATA=/var/lib/postgresql/data/pgdata \
      -v /volume1/docker/postgres/data:/var/lib/postgresql/data \
      postgres
    
  • 图形化创建 Redis:
    Redis
    redis.conf:
    requirepass 密码
    
  • 图形化创建 PostgreSQL
    PostgreSQL
    手动创建dify数据库:
    CREATE DATABASE "dify"
    WITH
      OWNER = "postgres"
      ENCODING = 'UTF8'
    ;
    

修改 Docker Compose 和 Nginx 配置并部署

cd /opt
git clone https://github.com/langgenius/dify.git
cd dify

# 修改 Nginx 配置,将 proxy_pass 中的 api 改成 dify-api,web 改成 dify-web,即使用容器名
vim nginx/conf.d/default.conf

vim docker/docker-compose.yaml

修改docker-compose.yaml

  • 修改services.api.environment.SECRET_KEYsk-后的内容,使用openssl rand -base64 42重新生成,作为会话 Cookie 和数据库敏感信息加密的密钥。
  • vim:259,295s/^/#/可以将 259~295 行的开头替换为 #,此处即注释services.dbservices.redis部分。
  • 注释services.api.depends_onservices.worker.depends_onservices.nginx.depends_on
  • 修改services.api.environmentDB_REDIS_开头和 CELERY_BROKER_URL的配置。
  • 修改services.worker.environmentDB_REDIS_RELYT_开头和 CELERY_BROKER_URL的配置。
  • 如果数据库和 Redis 的 Host 要使用前面已经创建的独立容器名,需要放在同一网络下,即添加networks.default.external: truenetworks.default.name: 自定义网络名
  • 添加services.api.container_name: dify-apiservices.worker.container_name: dify-api-workerservices.web.container_name: dify-webservices.weaviate.container_name: dify-weaviateservices.sandbox.container_name: dify-sandboxservices.nginx.container_name: dify-nginx,设置容器名。
  • 修改services.nginx.ports中的- "80:80"- "自定义端口:80"
  • 按需修改services.api.environmentCONSOLE_WEB_URLCONSOLE_API_URLSERVICE_API_URLAPP_WEB_URL'http://IP域名:自定义端口号'
  • 按需修改services.web.environmentCONSOLE_API_URLAPP_API_URL'http://IP域名:自定义端口号'

更多查看环境变量说明
修改后启动:

docker-compose up -d

创建应用

访问http://IP域名:自定义端口/install初始化后登录。

此处以 kimi 为例,先根据 kimi-free-api 接入准备获取模型 API Key。

在 Dify 中右上角设置,模型供应商中选择OpenAI-API-compatible并配置。

最后创建应用选择模型配置后发布即可。

更多功能自行探索。

部署 NextChat

参考 ChatGPT-Next-Web/README_CN.md 部署。

docker pull yidadaa/chatgpt-next-web

docker run -d -p 10098:3000 \
  --name next-chat
  --network 网络名 \
  -e CODE=页面访问密码1,页面访问密码2 \
  yidadaa/chatgpt-next-web

部署 LobeChat

参考 lobe-chat/README.zh-CN.md 部署。

docker run -d -p 10097:3210 \
  -e ACCESS_CODE=访问此服务密码1,访问此服务密码2 \
  --name lobe-chat \
  --network 网络名 \
  lobehub/lobe-chat

参考

0

评论区