您的位置:首页 > 财经 > 产业 > 哈尔滨市政府_微营销工具_建网站多少钱_快速排名软件seo系统

哈尔滨市政府_微营销工具_建网站多少钱_快速排名软件seo系统

2025/1/16 7:37:16 来源:https://blog.csdn.net/Lichen0196/article/details/145102246  浏览:    关键词:哈尔滨市政府_微营销工具_建网站多少钱_快速排名软件seo系统
哈尔滨市政府_微营销工具_建网站多少钱_快速排名软件seo系统

服务器一次性部署One API + ChatGPT-Next-Web

  • One API + ChatGPT-Next-Web 介绍
      • One API
      • ChatGPT-Next-Web
  • docker-compose 部署One API + ChatGPT-Next-Web
    • Open API docker-compose 配置
    • ChatGPT-Next-Web docker-compose 配置
    • docker-compose 启动容器
  • 后续配置

同步发布在个人笔记服务器一次性部署One API + ChatGPT-Next-Web

One API + ChatGPT-Next-Web 介绍

自从 OpenAI 公布旗下产品 ChatGPT 后,AIGC 的热潮已经到来很久了,我一直都只是及其轻度的翻墙使用 ChatGPT 或者使用手机品牌自带的产品。最近终于下定决心多了解一下,才发现类 ChatGPT 的产品已经多到一双手不够数了(实在太落伍了 〒▽〒 )。

为了更方便的体验多家的AI,遂决定在自己的服务器上使用 docker-compose 搭建一个可以集中多家 API 并方便切换的服务。One API + ChatGPT-Next-Web 的组合为我提供了这样可能。

One API

项目GitHub
One API 是一个多平台大模型 API 的接口管理 & 分发系统,支持 Azure、Anthropic Claude、Google PaLM 2 & Gemini、智谱 ChatGLM、百度文心一言、讯飞星火认知、阿里通义千问、360 智脑以及腾讯混元等绝大部分模型。

在开发中我们会遇到这样的问题:大量的开源或成熟的项目是基于 OpenAI 的 API 编写的,但是我们需要对接的资源是非 OpenAI 的;或者我们需要在多个不同 API 接口的模型间进行切换。这都要求我们学习或频繁切换多家的 API。
如果我们有一个系统,可以把多个产品集中起来,并以一种统一的 API 接口暴露出来,那我们就可以方便的部署所有基于 OpenAI API 的项目了;在多家 AI 之间切换时也不再需要修改 API 格式。

One API 就可以实现这样的功能:它作为一个 Agent ,把多家大模型 API 接口接收进来,用户通过 One API 分发的 key 访问,实现以标准的 OpenAI API 格式访问所有的大模型(也可以统一使用非 OpenAI格式)。

非 OpenAI 格式模型
标准 OpenAI 格式模型
One API 分发的 key
讯飞星火认知
其他大模型
OpenAI
Azure
其他大模型
用户
One API

ChatGPT-Next-Web

项目GitHub
一个很优秀的开源项目,可以方便的部署跨平台的私人 ChatGPT 应用, 原生支持大量模型。在我的项目中主要用看来以标准的 OpenAI API 和 One API 对接,作为一个聊天前端使用。

浏览器访问
标准 OpenAI API 格式
用户
One API
ChatGPT-Next-Web

docker-compose 部署One API + ChatGPT-Next-Web

docker-compose 一次性部署多个服务的方法可以参考我以前的笔记:
docker compose部署nginx+php+mysql+phpmyadmin环境
本次的项目只有两个,相比于 LNMP 环境更加简单,本笔记分别记录最终的 compose 文件中的两个部分,如果只想部署其中一个服务的话,只使用对应的部分就好了。

Open API docker-compose 配置

最推荐自己阅读 github 上官方的 docker-compose 文件。

推荐先把镜像 pull 下来:

docker pull justsong/one-api:v0.6.10	# 最好指定版本号,默认tag可能会获得测试版镜像导致不稳定。

这里我的配置文件如下:
docker-compose.yml

version: '3.4'services:one-api:image: justsong/one-api:v0.6.10container_name: one-apirestart: always
#    network: hostcommand: --log-dir /app/logsports:- "yourport:3000"			# 填写映射到服务器上的端口号volumes:- yourdatapath:/data		# 填写自己本地的数据保存路径- yourlogpath:/app/logs	# 填写自己本地的日志保存路径environment:- SQL_DSN=oneapi:123456@tcp(db:3306)/one-api  # 修改此行,或注释掉以使用 SQLite 作为数据库- REDIS_CONN_STRING=redis://redis- SESSION_SECRET=random_string  # 修改为随机字符串- TZ=Asia/Shanghai
#      - NODE_TYPE=slave  # 多机部署时从节点取消注释该行
#      - SYNC_FREQUENCY=60  # 需要定期从数据库加载数据时取消注释该行
#      - FRONTEND_BASE_URL=https://openai.justsong.cn  # 多机部署时从节点取消注释该行depends_on:- redis- dbhealthcheck:test: [ "CMD-SHELL", "wget -q -O - http://localhost:3000/api/status | grep -o '\"success\":\\s*true' | awk -F: '{print $2}'" ]interval: 30stimeout: 10sretries: 3redis:image: "${REGISTRY:-docker.io}/redis:latest"container_name: redisrestart: alwaysdb:image: "${REGISTRY:-docker.io}/mysql:8.2.0"restart: alwayscontainer_name: mysqlvolumes:- ./data/mysql:/var/lib/mysql  # 挂载目录,持久化存储ports:- '3306:3306'environment:TZ: Asia/Shanghai   # 设置时区MYSQL_ROOT_PASSWORD: 'OneAPI@justsong' # 设置 root 用户的密码MYSQL_USER: oneapi   # 创建专用用户MYSQL_PASSWORD: '123456'    # 设置专用用户密码MYSQL_DATABASE: one-api   # 自动创建数据库

注意:上述的文件会使用镜像内部的数据库,如果我们服务器上已经有了数据库,那可以在环境变量部分直接指定本机的数据库,redis 和 db 部分将不再需要。形如下面:

version: '3.4'services:one-api:image: justsong/one-api:v0.6.10container_name: one-apirestart: always
#    network: hostcommand: --log-dir /app/logsports:- "yourport:3000"			# 填写映射到服务器上的端口号volumes:- yourdatapath:/data		# 填写自己本地的数据保存路径- yourlogpath:/app/logs	# 填写自己本地的日志保存路径environment:- SQL_DSN=数据库专用用户:用户密码@tcp(数据库地址:数据库端口)/数据库名称  # 修改此行,或注释掉以使用 SQLite 作为数据库- SESSION_SECRET=random_string  # 修改为随机字符串- TZ=Asia/Shanghai
#      - NODE_TYPE=slave  # 多机部署时从节点取消注释该行
#      - SYNC_FREQUENCY=60  # 需要定期从数据库加载数据时取消注释该行
#      - FRONTEND_BASE_URL=https://openai.justsong.cn  # 多机部署时从节点取消注释该行healthcheck:test: [ "CMD-SHELL", "wget -q -O - http://localhost:3000/api/status | grep -o '\"success\":\\s*true' | awk -F: '{print $2}'" ]interval: 30stimeout: 10sretries: 3

在使用本地服务器时,推荐先把数据库建好,使用类似 phpmyadmin 等工具会十分方便。

ChatGPT-Next-Web docker-compose 配置

最推荐自己阅读 github 上官方的 docker-compose 文件。

推荐先把镜像 pull 下来:

docker pull yidadaa/chatgpt-next-web:v2.15.8 

这里我的配置文件如下:
docker-compose.yml

version: '3.4'services:chatgpt-next-web:
#    profiles: [ "no-proxy" ]container_name: chatgpt-next-webimage: yidadaa/chatgpt-next-web:v2.15.8ports:- yourport:3000environment:- OPENAI_API_KEY=$OPENAI_API_KEY- GOOGLE_API_KEY=$GOOGLE_API_KEY- CODE=指定一个登录字段- BASE_URL=$BASE_URL- OPENAI_ORG_ID=$OPENAI_ORG_ID- HIDE_USER_API_KEY=$HIDE_USER_API_KEY- DISABLE_GPT4=$DISABLE_GPT4- ENABLE_BALANCE_QUERY=$ENABLE_BALANCE_QUERY- DISABLE_FAST_LINK=$DISABLE_FAST_LINK- OPENAI_SB=$OPENAI_SB

docker-compose 启动容器

如果只需要部署一个服务的话,直接使用上面某个服务的文件即可;如果要一次性部署两个服务,则需要将两个文件合并在一个文件内,注意删除重复的***version: ‘3.4’ services:***字段,最终形如下面的格式:

# Creat container for One API + ChatGPT-Next-Web
version: '3.4'services:one-api:#########chatgpt-next-web:#########

最后运行命令:

docker-compose up -d

使用命令 docker ps查看当前运行的容器里面是否有我们的 one-api 和 chatgpt-next-web,如果有的话,那就运行成功了。
此时我们通过浏览器分别访问地址:
One API
yourdomain:oneapi_port
首次访问需要登录,默认用户为 root ,默认密码是 12345。
在这里插入图片描述

ChatGPT-Next-Web:
yourdomain:chatgptnextweb_port
在这里插入图片描述

后续配置

笔记只记录了两个平台的搭建过程。后续会以讯飞的 SparkDesk 模型为例,介绍如何联通两个服务,实现个人服务器访问类 ChatGPT AI。
后续笔记已更新:
配置 One API + ChatGPT-Next-Web,以讯飞星火认知大模型为例

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com