最新AI系统ChatGPT网站系统源码,支持AI绘画,GPT语音对话,ChatFile文档对话总结,DALL-E3文生图,MJ绘画局部编辑重绘

news2024/10/7 14:30:03

一、前言

SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型+国内AI全模型。本期针对源码系统整体测试下来非常完美,那么如何搭建部署AI创作ChatGPT?小编这里写一个详细图文教程吧。已支持GPT语音对话、GPT-4-Turbo模型、DALL-E3文生图、GPT-4-1106-Preview多模态模型。支持GPT-4图片对话能力上传图片,ChatFile文档对话总结、Midjourney绘画动态全功能。

《SparkAi系统详情及搭建部署文档》:

https://www.yuque.com/yuqueyonghutq9yt2/egy0d0/ah9sq89lgl6b7s4w

V5.0版本核心新增功能模块:

重构Midjourney绘画功能,新增支持MJ动态全功能:

  • 新增支持绘画Pan调整:⬆️上、⬇️下、⬅️左、➡️右全方向偏移调整图片

  • 新增支持绘画提升功能:⏫Upscale(Creative)、⏫Upscale(Subtle)、⏫Upscale(4x)、⏫Upscale(2x)等图片调整动作

  • 新增支持同步MJ图片外延、图片放大、自定义缩放功能:🔍Zoom Out 1.5x、🔍Zoom Out 2x、↔️Make Square

①新增OpenAI的TTS语音对话功能

支持电脑PC浏览器和手机端使用(调整用户端语音交互,语音输入则语音回复,文本输入则文本回复)

②ChatFile文档对话总结 

③DALL-E3文生图(支持直接对话绘画)

④新增已支持GPT-4图片对话能力(上传图片并识图理解对话)

可同时支持5张图同时上传对话

1.1AI模型提问

1.2人工智能AI绘画

支持Midjourney局部重绘(Vary Region)在线编辑功能

新增支持MJ最新V6绘画模型(V模型:能够处理更长的提示词,人物效果更加真实,构图、色调、光影更加细腻)

移动端页面:

1.1 程序核心功能

已支持 OpenAI GPT全模型 + 国内AI全模型 + 绘画池系统 + MJ局部编辑重绘功能+OpenAI TTS语音对话功能 + 文档对话总结功能 + Midjourney绘画动态全功能!

  • AI提问:程序已支持GPT3.5,GPT4.0提问、OpenAIGPT全模型+国内AI全模型、支持GPT联网提问
  • 已支持OpenAIGPT全模型+国内AI全模型,已支持国内AI模型 百度文心一言、微软Azure、阿里云通义千问模型、清华智谱AIChatGLM、科大讯飞星火大模型、腾讯混元大模型等
  • ChatFile文档上传对话功能以及总结对话
  • 新增知识库接入(对接百度千帆知识库),用户端动态显示知识库插件并通过插件的方式选择与知识库对话,可自定义训练内容回答和文档总结,上传文档作为知识库内容用于特定场景对话回答,比如企业文化规章制度、产品说明文档、客服等等各行业知识库等
  • 新增支持MJ最新V6绘画模型(V6模型:能够处理更长的提示词,人物效果更加真实,构图、色调、光影更加细腻)
  • AI绘画:Midjourney绘画(全自定义调参)、Midjourney以图生图、Dall-E3绘画
  • Midjourney绘画动态全功能、绘画过程中实时预览缩略图以及同步实时进度显示
  • 支持最新GPT-4多模态模型、OpenAI GPT-4-Turbo-With-Vision-128K模型
  • 已支持GPT-4图片对话能力(上传图片并识图理解对话)可同时支持5张图同时上传对话
  • 对话插件系统,后续逐步增加插件功能,扩展AI能力
  • 新增KEY支持单独配置消耗费率,比如GPT4-32K比GPT4成本更高应该消耗更多的额度次数
  • 微信公众号+邮箱+手机号注册登录
  • 一键智能思维导图生成
  • 应用广场,支持用户前台自定义添加私密或共享
  • AI绘画广场(画廊)
  • 邀请+代理分销模式、用户每日签到功能、会话记录同步保存
  • 支持对接微信官方支付、易支付、码支付、虎皮椒支付等,自定义聚合会员套餐
  • 其他核心功能、后续其他免费版本功能更新

1.2 更新日志

【V5.0.0】更新功能(2024.01.18号更新)

1. 重构Midjourney绘画功能,新增支持MJ动态全功能:
  - 新增支持绘画Pan调整:⬆️上、⬇️下、⬅️左、➡️右全方向偏移调整图片
  - 新增支持绘画提升功能:⏫Upscale(Creative)、⏫Upscale(Subtle)、⏫Upscale(4x)、⏫Upscale(2x)等图片调整动作
  - 新增支持同步MJ图片外延、图片放大、自定义缩放功能:🔍Zoom Out 1.5x、🔍Zoom Out 2x、↔️Make Square
2. 新增绘画过程中实时预览缩略图以及同步实时进度显示
3. 调整按钮为根据当前图片状态全动态显示,兼容未来MJ官方可能新增的功能
4. 新增绘制命令显示,绘画状态跟踪、连续大量绘画时方便追踪串联上下级
5. 修复适配MJ官方更新导致V5版本局部重绘功能失效的问题
6. 新增PC浏览器功能菜单栏默认名称显示、调整前端UI主题为紫色以及UI美化、管理后台菜单栏UI优化
7. 调整应用工作台为对话模式,支持持续使用
8. 调整单用户可以同时进行5个任务
9. 优化提交绘画时检查是否有返回错误,避免空等超时;优化绘图失败时,可能未退还余额的问题
10. 优化PDF文档总结对话上传文档时校验额度并扣费,避免恶意上传;上传失败消息提示
11. 优化拉黑和锁定用户时强制用户登出

二、系统模块演示

快速体验

官方演示站:

  • 系统用户端:https://ai.sparkaigf.com
  • 管理后端:https://ai.sparkaigf.com/sparkai/admin
  • 测试账号密码:admin 123456

三、系统功能模块

3.1ChatGPT模型提问

已支持GPT联网提问

3.2Prompt应用

3.2.1Prompt应用

3.2.2应用工作台

3.2.3自定义Prompt应用

支持用户自定义Prompt应用

3.3 支持Midjourney绘画

  • 支持同步官方图片重新生成指令

  • 同步官方 Vary 指令 单张图片对比加强 Vary(Strong) | Vary(Subtle)

  • 同步官方 Zoom 指令 单张图片无限缩放 Zoom out 2x | Zoom out 1.5x

  • 新增 Midjourney局部重绘(Vary Region)在线编辑功能

3.3.2图生图

3.4Dall-E3绘画

可直接对话文生图

3.5智能思维导图生成

3.6AI画廊

3.6系统后台管理系统

其他和后台页面太多功能,就不展示了,直接访问演示站点和演示后台。 

四、搭建部署教程

4.1基础env环境配置

在代码中我们提供了基础 环境变量文件配置文件 env.example ,使用前先去掉后缀改为 .env 文件即可,我们在env环境配置文件只需要配置如下东西。

  • 授权码授权ip配置

  • 邮件服务配置

  • mysql数据库 这三项是基础配置、mysql与授权是必须的、在配置mysql与授权的情况下项目才可以启动成功、邮件服务可以后续追加。

4.2env文件代码

# 服务器ip
SPARK_AI_HOST=
# 授权码
SPARK_AI_KEY=

# mysql
DB_HOST=localhost
DB_PORT=3306
DB_USER=数据库用户名
DB_PASS=数据库密码
DB_DATABASE=数据库名
DB_LOG=false
DB_SYNC=true

#  mailer 邮件服务
MAILER_HOST=smtp.163.com
MAILER_PORT=465
MAILER_USER=发信邮箱
MAILER_PASS=邮箱发信密钥
MAILER_FROM=发信邮箱

# Redis
REDIS_PORT=6379
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=
REDIS_DB=0

# jwt token
JWT_SECRET=chat-spark
# jwt token 过期时间
JWT_EXPIRESIN=7d
# 接口文档前缀
SWAGGERPREFIX=/docs
# 自定义端口
PORT=9520

五、环境安装

前置条件:

  1. 国内或者海外服务器均可,最低配置2H2G起,建议2H4G甚至更高

  2. 宝塔安装成功

所需环境:

  • Nginx >= 1.19.8

  • MySQL >= 5.7MySQL 8.0

  • PHP-7.4(非必须)

  • PM2管理器 >=5.5

  • Redis 7.0.11

  • Node版本:>=16.19.1

5.1Node版本

使用PM2切换Node版本(必须)

切换Node版本为:v16.19.1

5.2安装pnpm模块

5.3安装Redis

六、部署跑起来

6.1新建站点

进入宝塔 - > 网站 -> 添加站点

6.2开启HTTPS

6.2.1使用自己的ssl证书

6.2.2Let's Encrypt 证书申请

如果没有证书,就使用宝塔提供免费证书,申请 Let's Encrypt

6.3上传系统源码

删除宝塔创建站点生成的默认文件

将程序上传并解压到网站根目录下

6.3.1配置.env文件

在宝塔直接双击 .env.example 文件编辑,或在终端vim编辑

配置完成后将文件后缀删掉、文件名字就是 .env

6.3.2 检查验证Node相关环境

此时再次打开终端、确定我们需要是否有node相关环境

node -v
npm -v
pnpm -v

6.4启动项目

6.4.1开启端口

宝塔面板安全开启 9520 端口和 3306 端口

6.4.2安装依赖

使用终端切换到网站目录

cd /www/wwwroot/网站目录

或直接在网站根目录下输入ssh终端

使用 pnpm i 命令安装依赖

pnpm i

6.4.3启动项目

使用 pnpm start 命令启动项目

pnpm start

6.4.4查看启动日志

输入 pm2 log 查看详细日志、看到下图表示成功!

pm2 log

6.4.5添加反向代理

添加 9520 端口反向代理,宝塔安全需要开启该端口,不然无法访问

七、使用系统

部署完成!此时通过域名即可访问系统了

7.1管理后台

默认前台地址为域名地址 默认后台地址则为:

https://域名地址/sparkai/admin

默认超级管理员账号为:

super ,spark123

7.2修改超级管理员默认密码

登录后,请先修改超级管理员默认密码

7.3搭建完成

八、后台配置&系统版本更新

8.1后台配置

系统配置教程和其他教程请前往系统详情部署文档或博客原教程。

https://www.idcyli.com

8.2系统版本更新

系统版本更新教程请前往系统详情部署文档或博客原教程。

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

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

相关文章

Python中==和is有什么区别

是比较两个对象的内容是否相等,即两个对象的“值”是否相等,不管两者在内存中的引用地址是否一样。 is 比较的是两个实例对象是不是完全相同,它们是不是同一个对象,占用的内存地址是否相同。即is比较两个条件:1.内容相…

LeetCode670.最大交换

我真的怀疑他是不是难度等级评错了,因为感觉没到中级,总之先看题吧 给定一个非负整数,你至多可以交换一次数字中的任意两位。返回你能得到的最大值。 示例 1 : 输入: 2736 输出: 7236 解释: 交换数字2和数字7。示例 2 : 输入: 9973 输出:…

数字拆分--完全背包问题

一、题目 https://acm.ecnu.edu.cn/problem/3034/ 二、思路 本来算法就很弱,加上很久没刷题,做这道题真的是一言难尽~ 一开始我以为是找规律写递推式,写到f(9)的时候就觉得不对劲,又想了一会,还是没想到&#xff0…

【Linux配置yum源以及基本yum指令】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、yum是什么? 二、什么是软件包? 三、三种安装软件包的方式 四、yum的相关操作 4.1、搜索软件 4.2、安装软件 4.3、卸载软件 4.4、那…

Python | 七、栈 Stack、队列 Queue

栈的基础知识 是一种数据结构,在Python中常使用列表来模拟实现特点:先进后出 栈的基本操作 因为Python中通过列表模拟实现栈,所以以下的基本操作实际是列表的一些操作获取长度,使用len(stack)方法进栈,使用stack.app…

Element组件完整引入、按需引入、样式修改(全局、局部)、简单安装less以及npm命令证书过期等

目录 一、npm 安装二、完整引入三、按需引入四、样式修改1.按需加载的全局样式修改2. 局部样式修改1. 在 css 预处理器如 less scss 等直接使用::v-deep2. 只能用在原生 CSS 语法中:/deep/ 或者 >>> 五、 拓展:npm 安装less报错,提示证书过期六…

使用Go语言编写简单的HTTP服务器

在Go语言中,我们可以使用标准库中的"net/http"包来编写HTTP服务器。下面是一个简单的示例,展示了如何使用Go编写一个基本的HTTP服务器。 go复制代码 package main import ( "fmt" "net/http" ) …

红黑树浅浅学习

红黑树浅浅学习 红黑树概念红黑树平衡性调整 红黑树概念 二叉树:二叉树是每个节点最多有两个子树的树结构。二叉查找树:又称“二叉搜索树”,左孩子比父节点小,右孩子比父节点大,还有一个特性就是”中序遍历“可以让结…

机器学习实验报告——Bayes算法

目录 一、算法介绍 1.1算法背景 1.2算法假设 1.3 贝叶斯与朴素贝叶斯 1.4算法原理 二、算法推导 2.1朴素贝叶斯介绍 2.2朴素贝叶斯算法推导 2.2.1先验后验概率 2.2.2条件概率公式 2.3 独立性假设 2.4 朴素贝叶斯推导 三、算法实现 3.1数据集描述 3.2代码实现 四…

python04-变量命名规则

python需要使用标识符来给变量命名。 标识符,我来解释下,就是给程序中变量、类、方法命名的符号,简单理解就是起一个名字,这个名字必须是合法的名字, 对于Python来说,标识符必须是以字母、下划线(_)开头&…

性能优化-高通的Hexagon DSP和NPU

原文来自【 Qualcomm’s Hexagon DSP, and now, NPU 】 本文主要介绍Qualcomm Hexagon DSP和NPU,这些为处理简单大量运算而设计的硬件。 🎬个人简介:一个全栈工程师的升级之路! 📋个人专栏:高性能&#xf…

[足式机器人]Part2 Dr. CAN学习笔记- 最优控制Optimal Control Ch07-2 动态规划 Dynamic Programming

本文仅供学习使用 本文参考: B站:DR_CAN Dr. CAN学习笔记 - 最优控制Optimal Control Ch07-2 动态规划 Dynamic Programming 1. 基本概念2. 代码详解3. 简单一维案例 1. 基本概念 Richoard Bell man 最优化理论: An optimal policy has the …

Python + Selenium —— 常用控制方法!

Selenium 体系中用来操作浏览器的 API 就是 WebDriver,WebDriver 针对多种语言都实现了一套 API,支持多种编程语言。 Selenium 通常用来做自动化测试,或者编写网络爬虫。 通常我们说的 Selenium 自动化操作,指的就是 WebDriver …

LLM:RoPE - 开源代码中的实现 (下)

本文着重学习一下开源代码中关于RoPE的实现:ChatGLM-6B、ChatGLM2-6B、LLAMA 回顾一下RoPE位置编码: 1:对于 token 序列中的每个词嵌入向量,首先计算其对应的 query 和 key 向量 2:然后对每个 token 位置都计算对应的旋转位置编码 3:接着对每个 token 位置的 query 和 …

聊聊呼声较高的向量过滤搜索及其优化

向量过滤搜索是一种基于条件的向量搜索方法,常用于推荐系统和信息检索等领域,能够帮助用户快速找到在给定条件下与其查询相关的内容。 在 Milvus 社区中,这也是呼声比较高的功能。为满足广大用户的需求,Milvus 在 Knowhere 2.x 版…

通过Stable Diffusion生成虚假的遥感影像

简介 这两天玩了一下stable diffusion,是真的好玩! 然后我在想遥感有没有相关的生成模型,找了一下,还真找到了(https://github.com/xiaoyuan1996/Stable-Diffusion-for-Remote-Sensing-Image-Generation/tree/main&a…

COT元素

论文首先定义了思维链中的两种核心元素 Bridge Object: 模型解决问题所需的核心和必须元素。例如数学问题中的数字和公式,QA问题中的实体,有点类似把论文1中pattern和symbol和在了一起,感觉定义更清晰了 Language Template:除去B…

跨平台实用软件推荐

现代工作环境下,每个人都需要高效管理时间、任务和信息流来提高生产力和实现目标。为了帮助您更有效地管理工作流程,我们为您推荐了以下几款实用的跨平台软件。 1.亿可达:是一款连接不同应用功能的超级软件连接器。它可以将不同的应用程序进行…

《WebKit 技术内幕》学习之九(1): JavaScript引擎

1 概述 1.1 JavaScript语言 说起JavaScript语言,又要讲一个典型的从弱小到壮大的奋斗史。起初,它只是一个非常不起眼的语言,用来处理非常小众的问题。所以,从设计之初,它的目标就是解决一些脚本语言的问题&#xff…

常用界面设计组件 —— 按钮组件、布局组件

2.4 按钮组件2.5 布局组件 2.4 按钮组件 QPushButton、QRadioButton 、QCheckBox都从 QAbstractButton,拥有一些共同的属性,如下图所 示: 图标使用setIcon()来设置,文本可以在构造函数或通过 setText()来设置。 可以使用 isCheck…