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
- 创建名为
wgpt
的数据库,并在init_sql.py
中配置数据库用户名和密码。
数据库初始化
python init_sql.py
pip install -r requirements.txt
在openai_flask.py同目录下创建一个名字为.env的文件,内容如下
OPEN_API_KEY=
openai_base_url=https://openai.api.com/v1/chat/completions
如果你在国内有openai的apikey但是没有梯子
- 可以使用我的反向代理网址https://w-l-h.xyz
- openai_base_url = https://w-l-h.xyz/v1/chat/completions
- key就是你在官网的key即可
如果你没有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的费用相对较低,为0.1/1k token。
- 长文本支持:支持128k上下文的长文本处理。
- API文件传输限制:目前仅支持JSON文件传输。
- 并发数量限制:每时每刻最多5个并发请求。
- 数据库内容陈旧:截至2021年,数据库内容相对陈旧。
- 成本效益:GLM4为性价比较高的选择,特别是在处理非文档链接相关的任务时。
- 响应速度:更快的响应时间,使得用户体验更为流畅。
- 稳定性: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用国内的可实现分辨用户需求功能的模型就可以。