手把手家教你进行ChatGPT私有化部署

背景

随着AI技术的不断成熟,加上ChatGPT如火如荼的发布新版本迭代更新,人工智能的热度也升温到史无前例的高度。 我们有理由相信,现在身边还不愿主动去接触这项技术,深入了解的小伙伴,在不久的将来,一定会被时代淘汰,至少幸存下来的成本会比我们低很多。 言归正传,前段时间注册了ChatGPT的账号后,也尝试部署了Telegram版本的ChatGPT聊天功能,颇为成功,当时用的还是OpenAI的API。 最近想着既然ChatGPT发布了自己的API,民间会不会有些新的动作? 果不其然,网上已经有大神完成了私有的版本,这使得部署在本地,训练属于自己的AI成为可能!

部署

本地化部署起来并不难,有些网络和Linux基础的童鞋会更加容易些。

准备一个满足要求的Linux系统环境

我这里用的是以下环境:CentOS Linux release 7.9.2009 (Core) 这里假定读者都是没有安装OS的门槛的,同时也有自己可用的代理套件,就不再赘述。

进行部署

  1. 使用git将工程文件clone下来,进入到目录后,复制一份配置文件出来
git clone https://github.com/869413421/chatgpt-web.git
cd chatgpt-web/
cp config.dev.json config.json
  1. 编辑配置文件config.json 粘贴入以下信息,这里的api_key需要替换成你自己的。 port和proxy都是可以自行定义的。显然在国内不定义proxy基本上是没法用的。
{"api_key": "sk-tnsMqcfmpyz6kExx5EuR88TbkFJ8OUzsCPyH2oIci","port": 9999,"listen": "","bot_desc": "Kiss me more.","proxy": "http://10.11.100.44:1080","model": "gpt-3.5-turbo-0301","max_tokens": 512,"temperature": 0.9,"top_p": 1,"frequency_penalty": 0.0,"presence_penalty": 0.6,"auth_user": "","auth_password": ""
}
  1. 安装go编译语言工具 由于该项目使用go语言编写,所以需要有相应的语言工具来执行程序。
yum install go
go mod download github.com/alecthomas/kong
go get github.com/869413421/chatgpt-web/bootstarp
go get github.com/869413421/chatgpt-web/app/http/controllers
  1. 执行以下命令即可启动服务 go run main.go 首次执行后,命令会卡10秒左右,然后看到这样的输出画面

6F01D6B9-5CE9-4877-A267-9887E1761F5B.png 启动后,就可以在本地浏览器里通过URL进行访问。 我这里Server的IP为10.21.100.94,那么网址就是http://10.11.100.19:9999

6637220B-EC6F-4CE9-A391-7969293C9F38.png 成功访问后,在后台是可以看到反馈的

B85575FF-AC81-4FAC-AAB6-1195AA997202.png

设置为系统服务

每次都用那个命令启动服务,会比较繁琐。 我们一般都习惯于使用systemctl start/stop service_name来开启和停止服务。

这里可以将执行语句定义为一个Service。 新建服务。 touch /lib/systemd/system/chat.service 然后编辑: vi /lib/systemd/system/chat.service

[Unit]
Description=ChatGPT Test[Service]
User=root
Group=root
Type=simple
Restart=always
RestartSec=20
StartLimitInterval=0
Nice=10
WorkingDirectory=/root/downloads/chatgpt-web/
ExecStart=/usr/lib/golang/bin/go "run" "/root/downloads/chatgpt-web/main.go"
StandardOutput=null
TimeoutStartSec=30[Install]
RequiredBy=multi-user.target

注意:这里的WorkingDirectory和ExecStart是我自己的目录,你需要修改为你存放项目文件的目录。

这里的几个参数可以解释下:

Restart=always 进程挂了就重启 RestartSec=20 20秒检查一次 StartLimitInterval=0 无限次重启,忽略失败次数

最后重启守护进程,并且重启服务,并设置为自启动。 systemctl daemon-reload

systemctl restart chat

systemctl enable chat 查看状态可以看到已经Active,成功启动。当然也可以用netstat来验证下端口。 systemctl status chat

3CDEECC1-FF3F-495D-99F6-ED0C53163C21.png

Troubleshooting

当然在配置过程中,因为种种环境因素等原因,大家配置未必都会一样顺利。 这里列举一些常见的问题,希望对大家有所帮助。

  • 执行命令go run main.go后,网页依然打不开

这时可以先在Server上执行该命令查看服务对应的端口是否正常监听着:netstat -tnlp | grep 9999 如果没有结果,那就是服务压根没启动成功。如果有,则往下阅读

在访问网页的系统里用以下命令测试:telnet 10.21.100.94 9999 如果有反馈结果,则说明没问题,如果显示任何错误提示,例如connection refused或timeout之类等等,说明访问不到服务器。

一般可能的原因是防火墙挡住了。你可以粗暴地直接关闭防火墙来验证 systemctl stop iptables

systemctl stop firewalld 上面的两条必有一条生效。 验证后,可以通过以下命令添加防火墙策略并保存。

iptables -I INPUT 6 -p tcp --dport 9999 -j ACCEPT

iptables-save > /etc/sysconfig/iptables 注意,不同的OS版本,保存配置的命令会有所不同。

  • 在前端网页访问时,输入对话提示超时错误 错误语句为:请求出错,Post “ api.openai.com/v1/chat/com… “: dial tcp 185.45.6.57:443: connect: connection refused

这里的IP显然是ChatGPT的Server IP

4EA4DBDB-204A-48EC-BDA1-702F1F6DDBF1.png

原因是我们没有设置Proxy。这里需要设置为你自己的代理的IP。 设置格式语法如下: "proxy": "http://10.21.100.46:1080", "proxy": "socks5://127.0.0.1:10808"

如何学习AI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

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

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

相关文章

二手物品交易小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,管理员管理,商品信息管理,论坛管理,收货地址管理,基础数据管理 微信端账号功能包括:系统首页,商品信息&…

晨持绪科技:抖音店铺运营思路

在抖音这个充满活力与创意的平台上,店铺运营不仅仅是一种商业行为,它更是一种艺术的展示。如同画家在画布上勾勒出色彩斑斓的画面,抖音店铺的运营者们也在平台上精心策划着每一个细节,以吸引更多的目光和流量。 内容创作。内容是吸…

工程师 - 什么是SMP

什么是 SMP(对称多处理)? What is SMP (symmetric multiprocessing)? 对称多处理(SMP,symmetric multiprocessing)是由多个处理器完成的计算机处理过程,这些处理器共享一个操作系统&#xff0…

新加坡博士申请|中国社科院-新加坡社科大学联合培养工商管理博士

新加坡博士申请|中国社科院-新加坡社科大学联合培养工商管理博士 【项目名称】中国社会科学院大学与新加坡新跃社科大学工商管理博士项目 【学制】最短3年,最长不超过7年 【学位证书】新加坡新跃社科大学工商管理博士学位 【招生对象】企业高管、咨询顾问及其他有…

我在高职教STM32——时钟系统与延时控制(2)

大家好,我是老耿,高职青椒一枚,一直从事单片机、嵌入式、物联网等课程的教学。对于高职的学生层次,同行应该都懂的,老师在课堂上教学几乎是没什么成就感的。正因如此,才有了借助 CSDN 平台寻求认同感和成就…

WPS中制作甘特图的详细教程

网上没几个详细说怎么在WPS中制作甘特图的,我自己整理了一下详细教程,最终效果如下图所示: 1.写好需要展示的项目相关信息,如下图所示: #####这个进度的百分比渐变效果这样设置就行了 2.现在我们需要计算已用时间和剩…

docker安装ElasticSearchKibana

本文参考以下两篇文章 ✅ElasticSearch&Kibana 部署 云效 Thoughts 企业级知识库 (aliyun.com) docker安装ElasticSearch&Kibana - 飞书 安装elasticsearch 使用docker下载es: docker pull elasticsearch:8.13.0 挂载配置 创建挂在文件目录 mkdir…

AI大模型:解锁未来职业竞争力的金钥匙

AI元年:大模型的革新力量 随着ChatGPT的震撼登场,2023年被标记为AI元年,大模型以其前所未有的影响力,重塑我们的日常生活和工作方式。从日常的问答对话到复杂的编程辅助,乃至创意图像生成,AI大模型展现出超…

嵌入式Linux系统编程 — 6.4 信号集

目录​​​​​​​ 1 信号集概念 2 sigemptyset、sigfillset初始化信号集 3 sigaddset、sigdelset向信号集中添加/删除信号 4 sigismember函数测试信号是否在信号集中 1 信号集概念 在Linux系统中,信号集(signal set)用于表示一组信号…

对标GPT-4o!不锁区、支持手机、免费使用,Moshi来啦!

7月4日凌晨,法国知名开源AI研究实验室Kyutai在官网发布了,具备看、听、说多模态大模型——Moshi。 Moshi功能与OpenAI在5月14日展示的最新模型GPT-4o差不多,可以听取人的语音提问后进行实时推理回答内容。但GPT-4o的语音模式要在秋天才能全面…

确认下单:购物车页面点击 去结算 按钮发起两个请求trade(显示购物车的商品信息和计算商品的总金额)findUserAddressList

文章目录 1、确认下单:购物车页面点击去结算1.1、在OrderController类中创建 trade 方法1.2、在CartController类中创建 checkedCartInfos1.3、CartServiceImpl 实现 checkedCartInfos的业务功能1.4、在service-cart-client模块下定义远程openFeign接口1.5、在SpzxO…

再次登榜,深兰科技荣膺全球独角兽企业500强

6月27~28日,《2024全球独角兽企业500强》榜单发布,深兰科技凭借在AI产业赋能和产品出海方面的出色表现,继2023年之后再次登榜。 《2024全球独角兽企业500强》评委会介绍,本届榜单的产生,是由“全球独角兽企…

flutter开发实战-Charles抓包设置,dio网络代理

flutter开发实战-Charles抓包设置 在开发过程中抓包,可以看到请求参数等数据,方便分析问题。flutter上使用Charles抓包设置。dio需要设置网络代理。 一、dio设置网络代理 在调试模式下需要抓包调试,所以需要使用代理,并且仅用H…

专利优先权是什么

专利优先权:定义、分类与重要性 在专利的世界中,专利优先权是一个至关重要的概念。它不仅是专利申请人权益的保障,更是确保创新成果得到及时和充分保护的重要工具。 一、专利优先权的定义 专利优先权是指专利申请人就其发明创造第一次在某…

CTF常用sql注入(一)联合注入和宽字节

0x01 前言 给自己总结一下sql注入的常用姿势吧,记录一下学习 0x02 联合 联合注入的关键词是union SQL的union联合注入原理是联合两个表进行注入攻击,使用union select关键词来进行联合查询。 那么为什么我们在题目中一般是只写一个呢 因为 $sql &quo…

java-数据结构与算法-02-数据结构-02-链表

文章目录 1. 概述2. 单向链表3. 单向链表(带哨兵)4. 双向链表(带哨兵)5. 环形链表(带哨兵)6. 习题E01. 反转单向链表-Leetcode 206E02. 根据值删除节点-Leetcode 203E03. 两数相加-Leetcode 2E04. 删除倒数…

基于C++实现的EventLoop与事件驱动编程

一,概念介绍 事件驱动编程(Event-Driven)是一种编码范式,常被应用在图形用户界面,应用程序,服务器开发等场景。 采用事件驱动编程的代码中,通常要有事件循环,侦听事件,…

封装stater时配置导入配置类提示功能

提示功能如下 使用注解导入配置属性时添加依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency>

孕产妇健康管理信息平台,多家医院产科广泛运用,系统稳定,功能齐全 产科管理系统源码,三甲医院产科电子病历系统成品源代码

孕产妇健康管理信息平台&#xff0c;多家医院产科广泛运用&#xff0c;系统稳定&#xff0c;功能齐全 产科管理系统源码&#xff0c;三甲医院产科电子病历系统成品源代码 女性生育过程会面临许多的困难和问题&#xff0c;需要经常性地前往医院做详细的身心检查&#xff0c;在…

IDEA 一键部署Docker

以部署示例服务&#xff08;sevnce-demo&#xff09;为例。 配置服务器 地址、账号、密码根据实际情况填写 配置镜像仓库 地址、账号、密码根据实际情况填写 编写Dockerfile 在sevnce-demo根目录下右键&#xff0c;选择创建Dockerfile。 # 基础镜像 FROM sevnce-registry.c…