如何快速构建你的AI开放平台?一步步教你!

news2024/11/25 22:32:23

目录

  • 楔子
  • 成品展示
    • 后台页面
    • 面客端页面
    • 成品项目地址
  • 项目源码地址
    • one-api
    • chatgpt-next-web
  • 搭建步骤
    • 搭建one-api
      • 运行命令
      • 命令解释
      • 后台配置
    • 搭建chatgpt-next-web
      • 运行命令
      • 命令解释
      • 面客端配置
  • 总结

✨这里是第七人格的博客✨小七,欢迎您的到来~✨

🍅系列专栏:无🍅

✈️本篇内容: 快速构建你的AI开放平台✈️

🍱本篇收录完整代码地址:无🍱

楔子

小七的朋友最近想自己搭一个AI聊天网站,他的需求是最好能接入各种大模型,正好小七申请了星火的开发者token。所以花了几个小时的时间,为朋友搭了一个演示网站,骗了一顿饭钱,爽歪歪,哈哈~

成品展示

废话少说,先上才艺展示✨

后台页面

后台页面

面客端页面

面客端页面

成品项目地址

https://chat.52javaee.com/

测试token:sk-p8qMVLvP10WfQrbiEaA3A0D825554767B7D176A8FbAa54D8

项目源码地址

one-api

https://github.com/songquanpeng/one-api

chatgpt-next-web

https://github.com/Yidadaa/ChatGPT-Next-Web

搭建步骤

搭建one-api

运行命令

docker run --name one-api -d --restart always -p 3000:3000 -e TZ=Asia/Shanghai -v /home/data/one-api:/data justsong/one-api

命令解释

这是一个Docker命令,用于运行一个名为"one-api"的容器。下面是每个参数的解释:

  • docker run: 运行一个新的容器。
  • --name one-api: 为容器指定一个名称,这里是"one-api"。
  • -d: 以后台模式运行容器。
  • --restart always: 容器在退出时总是重新启动。
  • -p 3000:3000: 将容器内的3000端口映射到宿主机的3000端口上,以便可以通过宿主机访问容器内的服务。
  • -e TZ=Asia/Shanghai: 设置容器的环境变量TZ为"Asia/Shanghai",以设置容器的时区为中国上海时区。
  • -v /home/data/one-api:/data: 将宿主机的/home/data/one-api目录挂载到容器内的/data目录下,以便容器可以访问宿主机上的文件。
  • justsong/one-api: 指定要运行的Docker镜像的名称和标签,这里是"justsong/one-api"。

因此,这个命令的作用是运行一个名为"one-api"的容器,使用"justsong/one-api"镜像,并将容器内的3000端口映射到宿主机的3000端口上,同时设置容器的环境变量和挂载宿主机上的目录。容器将以后台模式运行,并在退出时自动重启。

通过ip:3000访问你的项目,初始账号用户名为 root,密码为 123456

后台配置

基础使用只需要添加渠道和令牌即可

搭建chatgpt-next-web

运行命令

docker run --name chat-next-web -d -p 3001:3000 -e OPENAI_API_KEY=sk-sRvPJJ0Edfasdfasfas -e CODE=www.52javaee.com -e BASE_URL=http://192.168.100.1:3000 yidadaa/chatgpt-next-web

命令解释

这是一个Docker命令,用于运行一个名为"chat-next-web"的容器。下面是每个参数的解释:

  • docker run: 运行一个新的容器。
  • --name chat-next-web: 为容器指定一个名称,这里是"chat-next-web"。
  • -d: 以后台模式运行容器。
  • -p 3001:3000: 将容器内的3000端口映射到宿主机的3001端口上,以便可以通过宿主机访问容器内的服务。
  • -e OPENAI_API_KEY=sk-sRvPJJ0Edfasdfasfas: 设置容器的环境变量OPENAI_API_KEY为"sk-sRvPJJ0Edfasdfasfas",这是你在one-api的生成的token。
  • -e CODE=www.52javaee.com: 设置容器的环境变量CODE为"www.52javaee.com",这是前台登录的密码。
  • -e BASE_URL=http://192.168.100.1:3000: 设置容器的环境变量BASE_URL为"http://192.168.100.1:3000",这是one-api应用的地址。
  • yidadaa/chatgpt-next-web: 指定要运行的Docker镜像的名称和标签,这里是"yidadaa/chatgpt-next-web"。

因此,这个命令的作用是运行一个名为"chat-next-web"的容器,使用"yidadaa/chatgpt-next-web"镜像,并将容器内的3000端口映射到宿主机的3001端口上,同时设置容器的环境变量和挂载宿主机上的目录。容器将以后台模式运行。

现在你可以通过ip:3001访问你的项目了

面客端配置

apikey填写token,即可跳过密码访问

image-20230914151821747

总结

执行命令和配置,3分钟生成你自己的ai聊天机器人,更多玩法请参考开源项目文档

docker run --name one-api -d --restart always -p 3000:3000 -e TZ=Asia/Shanghai -v /home/data/one-api:/data justsong/one-api
docker run --name chat-next-web -d -p 3001:3000 -e OPENAI_API_KEY=sk-sRvPJJ0Edfasdfasfas -e CODE=www.52javaee.com -e BASE_URL=http://192.168.100.1:3000 yidadaa/chatgpt-next-web

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1009384.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第22章_瑞萨MCU零基础入门系列教程之DMA控制器

本教程基于韦东山百问网出的 DShanMCU-RA6M5开发板 进行编写,需要的同学可以在这里获取: https://item.taobao.com/item.htm?id728461040949 配套资料获取:https://renesas-docs.100ask.net 瑞萨MCU零基础入门系列教程汇总: ht…

nginx配置vue前端代理

背景:做一个前后端分离的项目,我这里是vue3 view ts创建的前端项目,在前端配置跨域请求。 一、开发阶段 在vue.config.js中配置devserver的proxy进行代理请求配置,然后将所有请求改为/api开头的即可。但是这样配置只在开发阶段…

数仓主题域和数据域、雪花模型,星型模型和星座模型

数仓模型和领域划分 一、主题域和数据域的差别二、雪花模型,星座模型和星型模型 一、主题域和数据域的差别 明确数据域作为数仓搭建的重要一环,能够让数仓的数据便于管理和应用。 数据域和主题域都是数据仓库中的重要概念,但含义略有不同&am…

【计算机视觉 | 图像模型】常见的计算机视觉 image model(CNNs Transformers) 的介绍合集(四)

文章目录 一、ResNeSt二、ShuffleNet v2三、FBNet四、Inception-v4五、ResNet-D六、MetaFormer七、PyramidNet八、RevNet九、Convolutional Vision Transformer(CVT)十、Tokens-To-Token Vision Transformer十一、Self-Attention Network十二、MixNet十三…

高速电路设计笔记----第二章

本章主要讲解的是电阻、电容、电感的选型。 一、电阻:关键还是限流。 1、通常在电源滤波时除了LC外,还会串接一个R。目的是为了降低信号的Q值,防止信号失真。常用于失真电源滤波。(例如时钟电源滤波) 2、选型的电阻的…

眺望数据应用新态势|第八届腾讯云Techo TVP开发者峰会圆满落幕

引言 在数据驱动的时代,如何有效地利用大数据已经成为了各个行业的重要课题。而随着云计算、人工智能等新兴技术的蓬勃发展,数据技术也随之不断生长并呈现出新的趋势与特点,企业该如何把握数据技术的新脉络,从而洞察数据背后的价…

【动态规划刷题 14】最长递增子序列 摆动序列

673. 最长递增子序列的个数 链接: 673. 最长递增子序列的个数 给定一个未排序的整数数组 nums , 返回最长递增子序列的个数 。 注意 这个数列必须是 严格 递增的。 示例 1: 输入: [1,3,5,4,7] 输出: 2 解释: 有两个最长递增子序列,分别是 [1, 3, 4,…

【校招VIP】产品工作难点之如何平衡团队协作

考点介绍: 对于简历上有实习经验的同学,团队配合和项目推进是一个非常常见的提问点。产品经理经常会面临项目延期,无法上线的情况。基于此,产品经理应该做些什么来保障项目按时上线呢? 产品工作难点之如何平衡团队协作-相关题目…

Linux下创建普通用户遇到的问题及解决办法

在Linux下只有root一个超级用户,但是可以创建多个普通用户的,具体的创建方法如下。 先切换到root用户,使用下面的命令创建用户名为user1(本文均以此用户名为例,注意后续键入指令时不要弄错了)的普通用户。 su root useradd user1 …

interview4-集合篇

一、算法复杂度分析 为什么要进行复杂度分析?因为可以指导你编写出性能更优的代码和评判别人写的代码的好坏。 (1)时间复杂度分析 时间复杂度是用来评估代码的执行耗时的。 1.假如每行代码的执行耗时一样:1ms 2.分析这段代码总…

跟随算网超人,深度解析算力网络!

随着数字时代全面开启 算力网络已成为当下热点议题 作为信息社会两大基石 算力、网络为何如此重要? 又将如何影响社会发展脉动? 为帮助大家深入了解算力网络 我们特别推出“算网超人”系列科普 下面,请跟随算网超人的步伐 来到该系列的…

uni-app H5使用 tabbars切换,echartst图表变小 宽度只有100px问题解决

问题: 跳转到别tabbars页面之后,再回来,echarts图显示缩小小团子。 原因分析: 在tabs切换中有echarts的话,我们会发现初始化的那个echarts是有宽度的,当点击tabs切换之后,切换过来的echarts只…

Python+requests编写的自动化测试项目

框架产生目的:公司走的是敏捷开发模式,编写这种框架是为了能够满足当前这种发展模式,用于前后端联调之前(后端开发完接口,前端还没有将业务处理完毕的时候)以及日后回归阶段,方便为自己腾出学(m…

Biome-BGC生态系统模型与Python融合技术:揭秘未来生态预测新趋势

Biome-BGC是利用站点描述数据、气象数据和植被生理生态参数,模拟日尺度碳、水和氮通量的有效模型,其研究的空间尺度可以从点尺度扩展到陆地生态系统。 在Biome-BGC模型中,对于碳的生物量积累,采用光合酶促反应机理模型计算出每天…

手机提词器有哪些?简单介绍这一款

手机提词器有哪些?手机提词器在现代社会中越来越受欢迎,原因是它可以帮助人们提高演讲和朗读的效果。使用手机提词器可以让人们更加自信地面对演讲和朗读,不至于出现口误或读错字的情况。此外,手机提词器还可以帮助人们节省时间和…

了解稀疏数组

稀疏数组(一种数据结构) package com.mypackage.array;public class Demo08 {public static void main(String[] args) {//1.创建一个二维数组 11*11// 0:没有棋子 1:黑棋 2:白棋int[][] array1 new int[11][11];…

OpenCV(四十一):图像分割-分水岭法

1.分水岭方法介绍 OpenCV 提供了分水岭算法(Watershed Algorithm)的实现, 使用分水岭算法对图像进行分割,将图像的不同区域分割成互不干扰的区域。分水岭算法模拟了水在图像中的扩散和聚集过程,将标记的边界被看作是阻…

Android Shadow 插件化原理演示

工程目录图 请点击下面工程名称,跳转到代码的仓库页面,将工程 下载下来 Demo Code 里有详细的注释 代码:LearnShadow

【Linux指令】Centos7 touch修改Access/Modify/Change 时间与恢复系统时间

文章目录 前言正文1. 查看文件状态2.只更新Access Time2.只更新Modify Time3. 修改Acess Time 与Modify Time为指定时间4. 修改Change时间5. 恢复系统时间 总结 前言 本篇主要讲解touch与时间相关的操作,关于touch创建文件,就不再赘述。 正文 1. 查看…

IP地址定位基础数据采集

在互联网时代,IP地址定位技术已经成为了广泛应用的一项重要技术。无论是用于网络安全、广告投放、市场调研还是用户体验优化,IP地址定位技术都发挥着关键作用。 什么是IP地址定位? IP地址定位是一种技术,它通过IP地址来确定设备…