Giter VIP home page Giter VIP logo

chatait-free's Introduction

ChatAIT

ChatAIT是用golang+vue开发的AI对话网站,对话模式模仿ChatGPT(GPT3.5、GPT4)和Midjourney的形式。正式版已经开源,不区分正式版和免费版,所有功能开源。如需定制联系邮箱。

请自觉遵守当地法律,勿将本项目用于非法目的和用途以及商用,本项目仅用于学习使用。

感谢:

特别感谢 “雨” 对本项目的捐赠和账号支持,v1.2.0版本离不开 “雨” 的大力支持。

功能:

  • GPT4
  • GPT3.5
  • Midjourney
  • 充值和购买次数
  • openai接口循环调用
  • midjourney接口循环调用
  • midjourney接口多进程
  • midjourney U V Zoom Vary(strong) Vary(Subtle) ⬅️ ➡️ ⬆️ ⬇️ 等操作(请开启Remix mode,系统会无视弹窗自动跳过)
  • midjourney 支持文生图和图生图 以及各种参数
  • midjourney 生成的图片可选是否本地保存
  • 管理员及角色管理
  • 会员管理
  • 会员等级
  • 对接微免签
  • midjourney提问支持百度翻译
  • midjourney图片本地保存缩略图,以便前台快速打开
  • 支持第三方openai接口
  • 允许自定义指定gpt3和gpt4的模型
  • 支持niji机器人
  • 敏感词过滤
  • 站内公告文章系统
  • 百度文心一言
  • I18n 多语言
  • 更多实用功能

演示地址

ChaiAIT官网

截图

视频部署教程

https://www.bilibili.com/video/BV1gP411Y7oj

第三方openai配置

openai 的默认接口为: https://api.openai.com/v1/chat/completions 在openai配置的apiUrl中替换为第三方接口的地址,如果不填则默认openai接口,请注意这里的接口地址要写完整。

升级说明

v1.1.1 升级到 v1.1.3

按照教程部署后,把之前的数据库增加第三方api的字段,从mysql中执行以下命令: 查看升级命令

v1.1.3 升级到 v1.2.0

按照教程部署后,把之前的数据库增加第三方api的字段,从mysql中执行以下命令: 查看升级命令

Docker部署

Docker部署

常规部署

解析域名

需要将以下域名解析到你服务器的IP,假设你的服务器主域名为chatait.demo

www.chatait.demo                # 网站前台域名(会员访问的域名)
backend.chatait.demo            # 网站后台域名(管理员访问的域名)
chat-frontend-api.chatait.demo  # 前台接口服务端域名(前台前端请求的接口域名)
chat-backend-api.chatait.demo   # 后台接口服务端域名(后台前端请求的接口域名)

注:如果不是自己打包VUE部署 chat-frontend-apichat-backend-api 两个A记录必须严格按照这个内容解析。

购买服务器

最好购买国外服务器,因为国外服务器可以直接访问openaimidjourney网站,如果部署在国内服务器,部署完成后需要配置代理服务器。
购买完成后安装linux系统,推荐centos7 或者 AlmaLinux 等RedHeat系统,我下面的步骤也都基于这些系统,有能力的可以采用其他系统部署。

下列服务器仅供参考,因为CN2 GIA 和 9929线路对国内访问速度友好。
便宜服务器:https://vmiss.com/
8折优惠码:20%off

线路 内存 CPU SSD 流量 带宽 价格 价格
美国 CN2 GIA 1G 1核 10G 400G/月 200M 3.5加元/月 连接
美国 CN2 GIA 1G 1核 15G 800G/月 200M 5.6加元/月 连接
美国 CN2 GIA 2G 1核 20G 1.2T/月 300M 11加元/月 连接
美国 CN2 GIA 2G 2核 40G 2T/月 500M 21加元/月 连接
美国 9929 1G 1核 10G 500G/月 200M 4加元/月 连接
美国 9929 1G 1核 15G 1T/月 200M 6.8加元/月 连接
美国 9929 2G 1核 20G 1.5T/月 300M 12.8加元/月 连接
美国 9929 2G 2核 40G 2.5T/月 500M 24加元/月 连接

注: 购买服务器后,设置的root密码一定要够复杂,尽量大于等于16个字符并包含英文大小写和数字,防止被暴力破解。

本地电脑安装ssh客户端工具

本地电脑安装ssh客户端工具,用于连接服务器
windows: xshell, winscp, putty等
mac: nuoshell, termius等
这些工具随意,只要能连上服务器哪个都行

关闭selinux防火墙

修改/etc/selinux/config文件 将 SELINUX=enforcing 改为 SELINUX=disabled
重启服务器

shutdown -r now

关闭firewall防火墙

执行命令

systemctl disable firewalld

新建chatait用户

新建一个非root用户,用该用户来启动服务端程序以保证网站的安全。执行以下命令

useradd chatait
passwd chatait

执行完这两条命令后,要求为chatait用户设置密码,输入过程没有回显,请一定注意,也是输入上了。输入完成后回车即可。然后接着输入第二次,之后回车。 创建完账户后,再执行以下命令来创建一个程序在服务器上的所在目录,执行:

mkdir /home/wwwroot/chatait

注: 设置的chatait密码一定要够复杂,尽量大于等于16个字符并包含英文大小写和数字,防止被暴力破解。

安装lnmp一键安装包

官网: https://lnmp.org/,依次执行下列命令:

cd ~ 
wget http://soft.lnmp.com/lnmp/lnmp2.0.tar.gz -O lnmp2.0.tar.gz && tar zxf lnmp2.0.tar.gz && cd lnmp2.0 && ./install.sh lnmp 

执行命令后,可能会出现一些报错提示,不要怕,提示缺少什么就安装什么,例如,缺少 wget就安装,命令如下:

yum install wget

命令执行完成后会开始下载,下载完成后出现提示,依次按照需求选择要安装的MySQL版本及密码,以及PHP版本。 MySQL选择5.7或者8.0都可,然后输入MySQL的root密码,最后选择PHP版本,默认即可,因为本程序不需要PHP。 安装过程根据服务器和网络环境,持续时间大概在1小时到3小时不等。安装完成后会出现completed! enjoy it.字样。

注: 设置的数据库root密码一定要够复杂,尽量大于等于16个字符并包含英文大小写和数字,防止被暴力破解。

导入mysql数据库及初始数据

本地浏览器打开网址:http://xxx.xxx.xxx.xxx/phpmyadmin 其中的xxx.xxx.xxx.xxx为服务器的ip地址,打开页面后左侧菜单New

数据库名称: chatait_db, 编码格式: utf8mb4_general_ci

创建完成后,点击左侧菜单 chatait_db , 点击顶部菜单SQL,把下载的程序包内 db目录下的chatait_db.sql文件的内容粘贴到浏览器页面输入框内。点击Go按钮执行初始化数据库命令。

上传ChatAIT程序

下面利用winscp、lrzsz命令、scp命令,这些其一上传至服务器就好,如果是winscp直接拖拽到对应目录即可,如果是lrzsz命令的话,输入rz命令弹出提示框上传。
将下载的程序包内 frontendServer backendServer frontendVue backendVue tmp files 这几个目录全部上传至服务器的/home/wwwroot/chat/ 目录下。

配置文件

打开本地程序包内config目录下的config.toml文件,把最下面的数据库配置部分按照你的服务器实际用户名密码来修改,如果其他步骤都和我的流程一致,则其他部分无需修改。
修改完成后,将config目录上传至/home/wwwroot/chat/下。

配置nginx

nginx是会员能访问到网站的关键步骤,一定要按照你的真实域名修改。打开本地程序包内的nginx目录下的chatait.conf文件,找到所有的chatait.demo替换为你的主域名,如果按照我的流程部署,其他位置无需修改。
修改完成后,将chatait.conf文件上传至/usr/local/nginx/conf/vhost/下。

注:如果你的网站想要启用ssl即https,需要注释掉监听的80端口,取消443端口监听前面的注释。并把ssl相关的注释打开,配置好你的ssl证书的key和crt文件路径。

配置完成后,执行重启nginx命令

lnmp nginx restart

修改程序目录的权限

把程序目录的权限全部改成chatait的权限,防止root启动程序带来安全隐患。执行以下命令:

chown -R chatait:chatait /home/wwwroot/chatait
chmod -R 755 /home/wwwroot/chatait

检查网站部署情况

chatait用户登录ssh终端,执行以下命令来检查前端部署情况:

/home/wwwroot/chatait/frontendServer/chatait-frontend-server --gf.gcfg.path=/home/wwwroot/chatait/config

执行该命令后,打开浏览器,打开网址 http://www.chatait.demo ,如果网站能正常访问,点击登录按钮有反应(提示用户名和密码错误也是反应),则证明前台部署成功,按ctrl+C 按键打断命令。

接下来执行以下命令来检查后台部署情况:

/home/wwwroot/chatait/backendServer/chatait-backend-server --gf.gcfg.path=/home/wwwroot/chatait/config

执行该命令后,打开浏览器,打开网址 http://backend.chatait.demo ,如果网站能正常访问,点击登录按钮有反应(提示用户名和密码错误也是反应),则证明后台部署成功,按ctrl+C 按键打断命令。

注:默认管理员账户: admin, 密码: admin111

配置服务项并设置开机启动

上面的步骤执行完成后,如果ssh客户端一旦退出,程序就会中断,网站服务端接口将无法访问。因为我们需要将前台服务端和后台服务端加入到系统项里,并配置开机启动。
首先,以root用户登录ssh客户端,将程序包内的system目录内的 chataitBackend.servicechataitFrontend.service 两个文件上传至服务器 /etc/systemd/system 目录下,然后依次执行以下命令:

systemctl daemon-reload
systemctl enable chataitBackend.service
systemctl enable chataitFrontend.service
systemctl start chataitBackend.service
systemctl start chataitFrontend.service

上述命令执行完成后,再次浏览器打开前台和后台网址,看看是否能正常访问,并且点击登录按钮都有反应(提示用户名和密码错误也是反应),则全部部署完毕。

注意事项

以上步骤没有涉及到防火墙等一些其他安全措施,还可以做进一步的安全调整,这个需要有一定服务器运维经验才能完成,所以,一旦有了一定的运维经验,也就不用非常严格的按照我的步骤来部署了。为了让新手能够以最快的速度和最简单的流程完成部署,所以我写的这些流程省去了一些安全设置。

捐赠

来自 时间 金额 备注
胖六斤 2023.11.18 66.00
2024.2.19 700+

联系邮箱

邮箱: [email protected]

框架

golang: Goframe
Vue: TDesign

chatait-free's People

Contributors

anlityli avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

chatait-free's Issues

代理地址

代理地址怎么设置?支持些什么?可以用第三方api吗?

对话接口有这个报错

/conversation/es/speak-stream?stream_uuid=对话接口有这个报错

{"error":400,"message":"sql: no rows in result set"}

image

docker部署报错

docker部署报错:Failed to execute 'open' on 'XMLHttpRequest': Invalid URL
可能因为nginx配置问题

chatait-backend-vue build 失败?

chatait-backend-vue build 在window 和linux 上都build 失败, npm run build

[email protected] build D:\code\git\chatait-free\chatait-backend-vue
vue-tsc --noEmit && vite build --mode release

src/layouts/components/MenuContent.vue:59:45 - error TS7026: JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists.

59 if (typeof item.icon === "string") return ;
~~~~~~~~~~~~~~~~~~~~~~~~~~~

Found 1 error in src/layouts/components/MenuContent.vue:59

请问有build 好 chatait-backend-vue 和 chatait-frontend-vue的 dist 文件吗?

直接拉的最新代码

1.13EOF

微信截图_20231218195622
微信截图_20231218195657
使用第三方api反代opnai会显示eof
使用中转api也是eof

添加api key报这个提示,麻烦帮忙看下

{
"error": 400,
"message": "Error 1364: Field 'api_url' doesn't have a default value, INSERT INTO c_config_openai(title,api_key,proxy,max_tokens,status,id,created_at) VALUES('chatai','sk-------------','openai.com',500,1,1733924798293082112,1700903887) \n"
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.