[开源]基于 AI 大语言模型 API 实现的 AI 助手全套开源解决方案

原文:[开源]基于 AI 大语言模型 API 实现的 AI 助手全套开源解决方案

一飞开源,介绍创意、新奇、有趣、实用的开源应用、系统、软件、硬件及技术,一个探索、发现、分享、使用与互动交流的开源技术社区平台。致力于打造活力开源社区,共建开源新生态!

一、开源项目简介

ChatGPT-Plus

这一套完整的系统,包括前端聊天应用和一个后台管理系统。系统有用户鉴权,你可以自己使用,也可以部署直接给 C 端用户提供 ChatGPT 的服务。

ChatGPT-PLUS 基于 AI 大语言模型 API 实现的 AI 助手全套开源解决方案,自带运营管理后台,开箱即用。集成了 OpenAI, Azure, ChatGLM,讯飞星火,文心一言等多个平台的大语言模型。集成了 MidJourney 和 Stable Diffusion AI绘画功能。主要有如下特性:

  • 完整的开源系统,前端应用和后台管理系统皆可开箱即用。

  • 基于 Websocket 实现,完美的打字机体验。

  • 内置了各种预训练好的角色应用,比如小红书写手,英语翻译大师,苏格拉底,孔子,乔布斯,周报助手等。轻松满足你的各种聊天和应用需求。

  • 支持 OPenAI,Azure,文心一言,讯飞星火,清华 ChatGLM等多个大语言模型。

  • 支持 MidJourney / Stable Diffusion AI 绘画集成,开箱即用。

  • 支持使用个人微信二维码作为充值收费的支付渠道,无需企业支付通道。

  • 已集成支付宝支付功能,支持多种会员套餐和点卡购买功能。

  • 集成插件 API 功能,可结合大语言模型的 function 功能开发各种强大的插件,已内置实现了微博热搜,今日头条,今日早报和 AI 绘画函数插件。

二、开源协议

使用MIT开源协议

使用须知

  1. 本项目基于 MIT 协议,免费开放全部源代码,可以作为个人学习使用或者商用。

  2. 如需商用必须保留版权信息,请自觉遵守。确保合法合规使用,在运营过程中产生的一切任何后果自负,与作者无关。

三、界面展示

功能截图

PC 端聊天界面

图片

AI 对话界面

图片

MidJourney 专业绘画界面

图片

Stable-Diffusion 专业绘画页面

图片

图片

绘图作品展

图片

AI应用列表

图片

会员充值

图片

自动调用函数插件

图片

图片

管理后台

图片

图片

图片

图片

移动端 Web 页面

图片

图片

图片

图片

四、功能概述

新版本已经实现的功能如下:

  1. 引入用户体系,新增用户注册和登录功能。

  2. 聊天页面改版,实现了跟 ChatGPT 官方版本一致的聊天体验。

  3. 创建会话的时候可以选择聊天角色和模型。

  4. 新增聊天设置功能,用户可以导入自己的 API KEY

  5. 保存聊天记录,支持聊天上下文。

  6. 重构后台管理模块,更友好,扩展性更好的后台管理系统。

  7. 引入 ip2region 组件,记录用户的登录IP和地址。

  8. 支持会话搜索过滤。

  9. 支持微信支付充值

TODOLIST

  • 整合 Midjourney AI 绘画 API

  • 开发移动端聊天页面

  • 接入微信收款功能

  • 支持 ChatGPT 函数功能,通过函数实现插件

  • 开发桌面版应用

  • 开发手机 App 客户端

  • 支付宝支付功能

  • 支持基于知识库的 AI 问答

  • 会员推广功能

  • 微信支付功能

五、技术选型

项目的技术架构

新版的系统前后端都进行大改动的重构,后端还是用的 Gin Web 框架,但是作者整合了 fx 自动注入框架,整个后端应用结构非常简洁,特别适合二次开发。另外,数据存储用 MySQL 替换了 leveldb, 因为要对 C 端,后期会涉及到很多业务数据查询统计,leveldb 已经完全不够用了。

Gin + fx + MySQL

3.0 版本之后会陆续添加其他语言的 API 实现,比如 PHP,Java 等。考虑到作者精力有限,api 目录已经添加了,有兴趣的同学自主去认领各自擅长的语言去实现。

前端的框架还是:

Vue3 + Element-Plus

前后台的页面风格已经全部变了,几乎所有页面样式代码都重写了。逻辑代码还是沿用之前的,毕竟功能没有太大的变化。

此次重构改版主要是为了后面功能的扩展准备了。

详细内容请查看 README.md 文档

六、源码地址

源码下载

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

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

相关文章

Unity UI 完全解决方案

Unity UI 完全解决方案 在我学习开发 unity 游戏尝试进行 UI 的构建的过程中,尝试寻找当前 Unity 最为推荐的 UI 构建方式,或者说最优的框架方案。 在中文网里寻找了半天,总感觉很多文章和教程给了方案,但又说不清楚为啥用这个方…

pytorch文本分类(一):文本预处理

pytorch文本分类(一):文本预处理 本文为自己在鲸训练营答题总结,作业练习都在和鲸社区数据分析协作平台 ModelWhale 上。 🚩学习任务原链接在这里 相关数据链接:https://pan.baidu.com/s/1iwE3LdRv3uAkGGI…

OpenCV遍历图像像素

引言: 为了构建计算机视觉应用程序,需要学会访问图像内容,有时也要修改或创建图像,如何操作图像的像素,就需要遍历一幅图像并处理每一个像素。现在我们就来介绍OpenCV三种图像像素的遍历方法。 一、 用cv::Mat类的at方…

Redis为什么是单线程的?Redis性能为什么很快?

Redis为什么是单线程的?Redis性能为什么很快? 一、Redis的高并发和快速原因 1.redis是基于内存的,内存的读写速度非常快(纯内存)。 2.redis是单线程的,省去了很多上下文切换线程的时间(避免线…

基础课6——开放领域对话系统架构

开放领域对话系统是指针对非特定领域或行业的对话系统,它可以与用户进行自由的对话,不受特定领域或行业的知识和规则的限制。开放领域对话系统需要具备更广泛的语言理解和生成能力,以便与用户进行自然、流畅的对话。 与垂直领域对话系统相比…

需求工程>系统建议方案

根据项目规模的大小,系统方案既可以单独形成文档(系统建议方案报告、系统方案说明书),也可以合并到可行性研究报告中。如果单独形成文档,其内容和格式与可行性研究报告也是类似的。作为一个正式文档,系统建…

Linux安装jdk

目录 一、卸载 1.查看版本 2.检查jdk自带安装包 3.卸载jdk 4.如果有就卸载,卸载的包名通过(rpm -qa | grep java)获取,包名要全部输入 二、安装 1.查看云端目前支持安装的jdk版本,两种查询方式 2.选择想要安装的…

2024年山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题-C卷

2024年山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题-C卷 2024年山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题-C卷A模块基础设施设置/安全加固(200分)A-1:登录安全加固(Windows, Linux)A-2&#…

Flutter笔记:桌面端应用多窗口管理方案

Flutter笔记 桌面端应用多窗口管理方案 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 :291148484163.com 本文地址:https://blog.csdn.net/qq_28550263/article/details/134468587 【简介…

Vue.js 页面加载时触发函数

使用 Vue 的生命周期钩子函数&#xff1a; 在 Vue 组件中&#xff0c;可以使用生命周期钩子函数来执行特定的代码。其中&#xff0c;mounted 钩子函数可以在组件被挂载到 DOM 后触发。 <template><div><!-- 页面内容 --></div> </template>expo…

Windows11怎样投屏到电视上?

电视屏幕通常比电脑显示器更大&#xff0c;能够提供更逼真的图像和更震撼的音效&#xff0c;因此不少人也喜欢将电脑屏幕投屏到电视上&#xff0c;缓解一下低头看电脑屏幕的烦恼。 Windows11如何将屏幕投射到安卓电视&#xff1f; 你需要在电脑和电视分贝安装AirDroid Cast的电…

计算Qt中的QAudioOutput缓冲区未播放的音频字节数对应时长

计算 QAudioOutput 缓冲区中实时播放的数据的时间长度&#xff0c;可以使用 QAudioOutput 提供的方法来确定缓冲区中还未播放的字节数&#xff0c;然后根据当前的音频格式将这些字节转换成时间长度。 这里是如何计算的步骤&#xff1a; 使用 QAudioOutput::bufferSize() 方法…

【MySQL】数据类型

数据类型 前言正式开始数值类型整数类型bit类型浮点数类型floatdecimal 字符串类型charvarcharchar和varchar比较 日期和时间类型enum和setenum和set类型的查找 前言 我在前一篇讲表的操作的时候碰到了一些数据类型&#xff0c;但是没有正式讲这些类型&#xff0c;本篇就重点讲…

WPF中有哪些布局方式和对齐方法

在WPF (Windows Presentation Foundation) 中&#xff0c;你可以使用多种方式来进行元素的对齐&#xff0c;这主要取决于你使用的布局容器类型。以下是一些最常用的对齐方式&#xff1a; HorizontalAlignment 和 VerticalAlignment 在大多数WPF元素上&#xff0c;你可以使用 Ho…

管理分布式计算第一个谬误(网络可靠)的指南

分布式计算是一个复杂的领域&#xff0c;面临着众多挑战&#xff0c;了解与之相关的谬误对于构建健壮且可靠的分布式系统至关重要。以下是分布式计算的八个谬误及其意义&#xff1a; 1. 网络可靠&#xff1a;假设网络连接始终可用且可靠&#xff0c;当网络中断发生时&#xff…

SpringMVC log4j1升级log4j2

整个升级过程耗时5个小时&#xff0c;中间耗时最长的是找合适的包和升级后日志无法打印以及无法控制日志输出位置&#xff0c;完成后感觉其实很简单&#xff0c;如果一开始就能看到我现在写的笔记&#xff0c;可能几分钟就搞定了。 第一步&#xff1a;首先上log4j2所需要的包 …

根据店铺ID/店铺链接/店铺昵称获取京东店铺所有商品数据接口|京东店铺所有商品数据接口|京东API接口

要获取京东店铺的所有商品数据&#xff0c;您需要使用京东开放平台提供的API接口。以下是一些可能有用的API接口&#xff1a; 商品SKU列表接口&#xff1a;该接口可以获取指定店铺下的所有商品SKU列表&#xff0c;包括商品ID、名称、价格等信息。您可以使用该接口来获取店铺中…

一文看分布式锁

为什么会存在分布式锁&#xff1f; 经典场景-扣库存&#xff0c;多人去同时购买一件商品&#xff0c;首先会查询判断是否有剩余&#xff0c;如果有进行购买并扣减库存&#xff0c;没有提示库存不足。假如现在仅存有一件商品&#xff0c;3人同时购买&#xff0c;三个线程同时执…

Go 语言数组基础教程 - 数组的声明、初始化和使用方法

数组用于在单个变量中存储相同类型的多个值&#xff0c;而不是为每个值声明单独的变量。 声明数组 在Go中&#xff0c;有两种声明数组的方式&#xff1a; 使用var关键字&#xff1a; 语法 var array_name [length]datatype{values} // 这里定义了长度 或者 var array_n…