/wlh_gpt

用户登录||用户识别反爬||传输多个文件||流式输出||图片生成||GPTs||自动登录||实时计费||markdown输出||公式识别||api assistant||Code interpreter 可一次性传输多个文档内容,并对文档进行分析和可视化(需要部署在服务器中才可使用)

Primary LanguageJavaScriptMulan Permissive Software License, Version 2MulanPSL-2.0

WGPT项目介绍

项目概述

WGPT(Web-based GPT)是一个综合性的网页应用,旨在通过集成多种GPT模型,为用户提供全面的办公、学习和数据分析解决方案。该项目不仅包括多样化的GPT模型应用,还计划纳入GLM4模型,以提高语言处理的效率和准确性。

网站效果演示

github.mp4

数据库关系图和部分字段解释

数据库关系图

后端与前端工作流程图

前后端工作流程图

已完成的功能

  • 登录系统:提供安全且方便的用户登录功能。
  • 流式输出:sse的模式进行端口监听(openai好像就是用的sse,但是我也有写好socket的方式)
  • 页面背景颜色调节:允许用户根据个人喜好自定义页面背景颜色。
  • 上下文管理:有效处理和存储用户交互上下文。
  • 文档传输:支持在用户和系统间安全地传输文档。
  • GPTs API调用:集成了多种第三方GPT模型API。
  • 模型选择功能:用户可根据需求选择不同的AI模型。
  • 自动登录:利用cookie实现便捷的自动登录功能。
  • 后端安全控制:实现用户权限和IP白名单管理。
  • 实时更新用户余额:动态显示用户的账户余额。
  • markdown:markdown输出更加规范和美观。
  • 公式化:公式识别并美化。
  • 内置代码运行:代码黑盒运行。
  • 图片显示:支持画图。

部署指南

获取源代码

git clone https://github.com/wlhtea/wlh_gpt.git

创建数据库

  1. 创建名为wgpt的数据库,并在init_sql.py中配置数据库用户名和密码。

初始化

数据库初始化

python init_sql.py

安装依赖

pip install -r requirements.txt

创建.env环境文件

在openai_flask.py同目录下创建一个名字为.env的文件,内容如下

OPEN_API_KEY=
openai_base_url=https://openai.api.com/v1/chat/completions

解决各种国内无梯无key的方法:

如果你在国内有openai的apikey但是没有梯子

如果你没有apikey也没有梯子

  • 可以到我的apikey池中获取,新用户默认10美金,倍率与openai一致,支持所有openai模型。
  • 获取到apikey,填入.env文件中
  • openai_base_url = https//opeani.w-l-h.xyz/v1/chat/completions

文件传输出现问题 需要服务器才可使用,详见openai_flask.py中send_file_to_get_ID()

启动后台

python openai_flask.py

本地运行

访问web.html即可在本地运行项目。

服务器部署

  • 修改index 1.3.4.js中的URL地址,并确保服务器的5000端口已开放。
  • 如js中url_base = 127.0.0.1:5000->你的ip地址:5000,有域名直接改为域名即可不需要加端口号

GLM4的优劣分析

GLM4的优势

  • 响应速度:GLM4提供更快的响应速度。
  • 成本效益:GLM4的费用相对较低,为0.1/1k token。
  • 长文本支持:支持128k上下文的长文本处理。

GLM4的劣势

  • API文件传输限制:目前仅支持JSON文件传输。
  • 并发数量限制:每时每刻最多5个并发请求。
  • 数据库内容陈旧:截至2021年,数据库内容相对陈旧。

使用GLM4的原因

  • 成本效益:GLM4为性价比较高的选择,特别是在处理非文档链接相关的任务时。
  • 响应速度:更快的响应时间,使得用户体验更为流畅。

GPT4不可替代性

  • 稳定性:GPT4在处理文档链接和其他复杂内容方面表现更为稳定。
  • 功能多样性:适合处理多种类型的请求,包括链接内容获取和文档分析。
  • 定制模型:现在官方还没有GPTs的api接口文档,只能借助第三接口,通过在GPTs训练一个特殊情景的GPTs模型可提供给用户更加舒适和便利的体验,每次只要选择不同的场景后端调用对应场景的模型,即可满足用户的部分需求。
  • :比GLM4贵两倍以上(现在99块钱1.8亿的token可以说贵百倍了,虽然有效期只有6个月)

未来规划

  • 优化模型请求方式:见下面的论述。
  • 纳入GLM4模型:提高语言处理的效率,同时降低运行成本。
  • 增加用户注册和历史对话记录功能:提升用户体验和功能完善性,还没完成记录对话内容到数据库和通过前端对历史记录进行查看可以继续对话内容。
  • 扩展页面功能:如支持更丰富的文件上传的方式,当用户提供了较多文件可分批次进行上传,提高系统的灵活性和用户的便利性。
  • 优化后端以支持OpenAI API:为了更好地适应市场变化和技术进步,计划优化后端支持OpenAI的API(现在仍然使用第三方接口,测试起来费用较低)。

优化模型请求方式

  • 由于用户无法分辨自己需要哪个模型而导致资源的浪费和影响用户体验

解决方法

  • 通过两次请求:
  • 第一次次请:求用GPT3.5(暂时免费修复bug后就不行了)或者GLM4(响应更快比GPT3.5快0.2秒左右,稳定)获取到用户输入内容更加符合哪个模型,并输出改模型的名字(model)
  • 第二次请求:将这个模型名字(model)作为参数传递给对应的模型进行请求

可操作性

  • 首先我们可以设置系统的默认提示词,在将用户的输入作为问题给到GLM4或者GPT3.5,就可以实现只输出模型名字(已实操过)
  • GLM4会比GPT3.5平均响应快0.2秒,而且是一个更加稳定的方式,费用也极低,或者我们不一定需要用GLM4用国内的可实现分辨用户需求功能的模型就可以。