Coder Social home page Coder Social logo

tongnm / gpt-web-java Goto Github PK

View Code? Open in Web Editor NEW

This project forked from a616567126/gpt-web-java

0.0 0.0 0.0 1001 KB

基于JDK8 AI 聊天机器人!微信公众号 Midjourney画图、卡密兑换、web 支持ChatGPT、Midjourney画图、sd画图,卡密兑换,易支付,公众号引流,邮件注册🔥

License: Apache License 2.0

Shell 0.35% Java 81.58% PLpgSQL 18.06%

gpt-web-java's Introduction

Siana 智能Ai机器人

Java version     MySql version    Redis version           

🎉 2.0全新版本,全新ui,全新体验

演示地址:https://ai.v-wim.xyz

🧧 2.0全新ui,客户端与管理前端源码不开源,加入VIP群持续更新,扫码下方作者微信添加好友咨询加群

后台管理ui演示地址地址:https://github.com/a616567126/GPT-WEB-JAVA/wiki/%E5%90%8E%E5%8F%B0%E7%AE%A1%E7%90%86ui%E6%BC%94%E7%A4%BA

👨‍🚀 Major Function

📌 客户端

  • 登录
  • 临时用户
  • 注册(公众号注册,邮箱注册,账号密码注册)
  • 基于SSE GPT 3.5/4.0 流式对话+上下文,支持3.5/4.0第三方接口配置,支持默认角色设置
  • GPT 画图
  • Midjourney画图,支持文生图,图生文,U,V,混合生图,垫图,账号池
  • Stable-Diffusion画图,支持模型,Lora配置,支持高清修复
  • 个人信息展示(剩余次数,身份,昵称)
  • 个人信息修改(头像,密码)
  • 产品查询购买
  • 订单查询
  • 支付方式 易支付、卡密兑换

📌 管理端

  • 首页(数据统计)
  • 支付配置
  • 对KEY配置
  • 用户管理
  • MJ账号池
  • 订单管理
  • 公告管理
  • 产品管理
  • 系统配置

📌 公众号

  • 扫码登录、注册
  • Midjourney画图
  • SD画图(开发中)
  • GPT对话(开发中)
  • 卡密获取、兑换

客户端UI演示(Vue2开发)

image image image image image image image image image image image image

移动端UI演示(uniapp开发,可打包小程序,app,H5等)

image image image image image image image image

💻 INSTALL AND START

   安装步骤
    1.安装mysql,redis,安装jdk1.8 也可使用个更高版本但不建议
    2.创建数据库名字为:intelligent_bot
    3.导入src/resources/下的intelligent_bot.sql 文件
    4.修改yml中的数据库配置与redis配置
    5.在根目录下创建临时上传路径/www/temp/data 或自己根据自己实际的路径来配置,注意修改yml中第17行
    6.增加上传图片目录/www/uploads/ 或自己根据自己实际路径来配置,注意修改sys_config表中的图片上传路径
    7.打包java代码复制到/usr/local/siana/下,后续都已这个为准,可根据自己的项目实际位置自行更改
    8.执行nohup java -jar Intelligent-Bot-0.0.1-SNAPSHOT.jar 启动后台
    11.查看日志是否有异常日志,若没有则启动成功
    12.管理员账号admin密码123456,根据自己需求合理增加或修改表内数据,初始化sql只为正常启动代码
    ----------------以下说明为客户端与管理端部署说明---------------------
    13.在服务器上配置启动好服务之后,在客户端与管理端修改api.js里的接口地址
    14.使用npm run dev 测试是否接口请求正常
    15.使用npm run build 打包代码,并部署到服务器
    16.可使用nginx,代理图片服务器,客户端及管理端页面

🕹 Precautions For Using Nginx

🪧 若使用nginx反向代理到后端需要增加SEE支持,与SEE长连接时间

 server {
        listen 443 ssl http2;  # 1.1版本后这样写
        server_name api.baidu.com; #填写绑定证书的域名
        ssl_certificate /www/server/nginx/ssl/baidu.pem;# 指定证书的位置,绝对路径
        ssl_certificate_key /www/server/nginx/ssl/baidu.key; # 绝对路径,同上
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
        ssl_prefer_server_ciphers on;
        location / {
          proxy_pass http://127.0.0.1:8080/;   #转发到tomcat
          proxy_set_header Host $http_host;  ##proxy_set_header用来重定义发往后端服务器的请求头
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_set_header X-Forwarded-Proto $scheme;
          proxy_buffering off;
          proxy_http_version  1.1;
          proxy_read_timeout 600s; ##设置SSE长链接保持时间为 600s
          }
    }
    server {
         #SSL 默认访问端口号为 443
         listen 443 ssl http2; 
         #请填写绑定证书的域名客户端、管理端通用
         server_name bot.baidu.com;
         #请填写证书文件的相对路径或绝对路径
         ssl_certificate /www/server/nginx/ssl/bot/bot.baidu.com.crt;
         #请填写私钥文件的相对路径或绝对路径
         ssl_certificate_key /www/server/nginx/ssl/bot/bot.baidu.com.key;
         ssl_session_timeout 5m;
         #请按照以下协议配置
         ssl_protocols TLSv1.2 TLSv1.3; 
         #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
         ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
         ssl_prefer_server_ciphers on;
         location / {
             #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
             #例如,您的网站主页在 Nginx 服务器的 /etc/www 目录下,则请修改 root 后面的 html 为 /etc/www。
            root    /usr/local/siana/bot;
            index   index.html;
            try_files  $uri $uri/ /index.html;
            }
   }
   server {
        listen       80;
        server_name  bot.baidu.com;#客户端、管理端通用80强制443
        rewrite ^ https://$http_host$request_uri? permanent;

    }
   server {
        listen 443 ssl http2;
        server_name img.baidu.com; #图片服务器
        location    / {
            root   /www/uploads/;
            charset utf-8;          #显示中文
            add_header 'Access-Control-Allow-Origin' '*'; #允许来自所有的访问地址
            add_header 'Access-Control-Allow-Credentials' 'true';
            add_header 'Access-Control-Allow-Methods' 'GET, PUT, POST, DELETE, OPTIONS'; #支持请求方式
            add_header 'Access-Control-Allow-Headers' 'Content-Type,*';
        }
         #请填写证书文件的相对路径或绝对路径
         ssl_certificate /www/server/nginx/ssl/img/img.xx.crt;
         #请填写私钥文件的相对路径或绝对路径
         ssl_certificate_key /www/server/nginx/ssl/img/img.xx.key;
         ssl_session_timeout 5m;
         #请按照以下协议配置
         ssl_protocols TLSv1.2 TLSv1.3; 
         #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
         ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
         ssl_prefer_server_ciphers on;
    }

💬 USE GPT

  • 1.在gpt_key中配置对应的gpt key,注意区分3.5与4.0
  • 2.若国内环境使用请使用代理访问,或使用cloudflare搭理,教程地址
  • 3.gpt使用sse方式进行消息推送与前端交互,若使用nginx请查看上方nginx配置

🧩 USE Image Upload(图片上传)

  • 1.创建指定的文件夹如:/usr/local/upload
  • 2.创建成功后在"sys_config"表中"img_upload_url"配置第一步创建的目录记得最后边加上"/"如:/usr/local/upload/
  • 3.使用nginx进行文件夹代理
  • 4.nginx代理的域名或ip配置到sys_config中img_return_url如:"https://www.baidu.com"
  • 5.上传的图片会以每天的年月日来进行创建文件夹
  • 6.图片名称分为两种,Midjourney的名字为任务id,其余的图片为当前时间戳
  • 7.图片最终的地址为:"img_return_url"+"img_upload_url"+文件名,如:"https://www.baidu.com/20230618/123.jpg"

🎨 USE Stable-Diffusion

  • 1.在"sd_model"表中配置模型(名字(全部内容包括后缀),图片)
  • 2.若有lora在"sd_lora"表中配置lora(名字,图片)
  • 3.配置"sys_config"表中"is_open_sd"为1,开启状态
  • 4.配置"sys_config"表中"sd_url"的地址,本地默认地址为http://127.0.0.1:7860(记得打开api开关)

🎨 USE Midjourney

  • 1.注册 MidJourney创建自己的频道、参考地址
  • 2.添加成功之后查看浏览器中的地址如:https://discord.com/channels/123/456 其中123为mj_guild_id,456为mj_channel_id
  • 3.获取mj_user_token,浏览器打开F12随便发送一个信息查看Network,Authorization为用户token

🪜 USE Proxy

GPT、Midjourney 国内网络环境下使用代理访问

📄 USE Baidu

GPT、Midjourney、Stable-Diffusion 使用文本审核,Midjourney、Stable-Diffusion,使用百度翻译

📄 USE Google Bard

🍾 Put It Last

  • 作者使用服务器地址:浅夏云
  • 作者使用机场地址:新华云
  • 默认启动时需配置如下三个表的数据(根据自己实际情况)
    • gpt_key
    • pay_config
    • sys_config
    • 项目启动时会加载对应参数到redis中,如果手动修改数据库,需要在redis中修改对应参数,防止不生效
  • FlagStudio地址:http://flagstudio.baai.ac.cn/

支付配置(pay_config)

字段 描述 注意
pid 易支付商户id
secret_key 易支付商户秘钥
submit_url 易支付支付请求域名 易支付发起支付的api地址,例如:https://pay888.mfysc.shop/submit.php
api_url 易支付订单查询api 后端核对订单时,易支付使用订单查询的api地址例如:https://pay888.mfysc.shop/api.php
wx_appid 微信支付的appid
wx_mchid 微信支付商户号 微信支付平台-商户信息-微信支付商户号
wx_v3_secret 微信apiv3秘钥 微信支付平台-账户中心-设置APIv3秘钥
wx_serial_no 证书序列号 微信支付平台-账户中心-API安全-API证书管理-证书序列号(若没有则申请新证书)
wx_private_key 商户证书内容 微信支付平台-账户中心-API安全-API证书管理-与证书序列号一一对应内容为生成的apiclient_key.pem文件全部内容

系统配置(sys_config)

字段 描述 注意
registration_method 注册模式 1 账号密码 2 邮箱注册 3 公众号 开启邮件注册后需要在emil_config中配置邮件相关参数
default_times 默认注册次数 用户注册时默认赠送请求次数
gpt_url gpt请求地址 可使用官方或替换第三方
gpt4_url gpt4请求地址 可使用官方或替换第三方
is_open_gpt gpt开关 0-未开启、1-开启gpt3.5、2-开启gpt4.0、3-全部 默认开启3.5
is_open_gpt_official gpt画图开关 0-未开启、1-开启 默认关闭
img_upload_url 图片上传地址 例如:/usr/local 配置图片上传路径
img_return_url 图片域名前缀 上传图片后与图片名组合成可访问的url 例如:https://baidu.com 图片上传成功后 则返回 https://baidu.com /2023/04/26/2222.jpg
api_url 后台接口地址 用于mj、支付、微信等回调使用
client_url 客户端页面地址 用于支付跳转等
is_open_sd 是否开启sd 0未开启 1开启
sd_url Sd接口地址 开启sd时需配置这个地址
is_open_flag_studio 是否开启FlagStudio 0-未开启 1开启
flag_studio_key FlagStudio key 登录之后api获得每天500次请求
flag_studio_url FlagStudio 接口地址 暂时写死https://flagopen.baai.ac.cn/flagStudio
baidu_appid 百度appid 用于百度翻译
baidu_secret 百度Secret 用于百度翻译
baidu_key 百度应用key 用于敏感词检查
baidu_secret_key 百度应用Secret 用于敏感词检查
is_open_mj 是否开启mj 0-未开启 1开启
is_open_proxy 是否开启代理 0关闭 1开启
proxy_ip 代理ip
proxy_port 代理端口
bing_cookie 微软bing cookie
is_open_bing 是否开启bing 0-未开启 1开启
is_open_stable_studio 是否开启StableStudio 0未开启 1 开启
stable_studio_api StableStudioapi地址前缀 写死:https://api.stability.ai
stable_studio_key StableStudio key
client_logo 客户端logo地址
client_name 客户端名字
bard_token 谷歌BardToken 格式为aAjs4boxxxx;sidts-xxxx 注意中间';'

💪 Contributors

🥤 Reward(有能力的可以请作者喝一杯冰可落)

  • 支付宝

  • 微信

⭐ 记得点一个Star哦!!!!

✉ Scan code to add friends(扫码添加微信好友)

扫码添加好友

🎯 Pay attention to the official account(关注公众号)

关注公众号

Star History Chart

SPONSOR

本项目由JetBranins赞助相关开发工具

License

Apache License 2.0

gpt-web-java's People

Contributors

a616567126 avatar litter-coder avatar

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.