Git Product home page Git Product logo

liangyang666 / chatgpt-web Goto Github PK

View Code? Open in Web Editor NEW
479.0 12.0 303.0 366 KB

使用GPT-3.5 API创建的ChatGPT聊天页面,支持云部署,多用户使用,多对话管理,公式显示,流式动态显示,windows和linux均可极简部署,网页版 html python flask

License: MIT License

Python 39.97% HTML 16.91% CSS 7.57% JavaScript 35.55%
chatgpt chatgpt-web flask html python railway

chatgpt-web's Issues

服务器部署问题

您好,请问一下如果我在我自己的AWS ec2或者在香港的阿里云服务器部署(香港阿里云服务器可以直接访问chatgpt api并返回结果)
应该需要在那里进行修改?实在抱歉我对于服务器的一些概念不是很清楚

代码展示前端样式问题

大佬,首先十分感谢技术分享,真的很好用,给大佬点赞👍🏻👍🏻👍🏻

使用时在代码互动上会有以下几个问题:

  1. 代码回答持续输出时,前端框不断伸缩出现类似闪屏的效果,有点费眼睛[😂]
  2. 问和答时,代码经常头部是纯文本,后面部分才在代码框里

大佬有空看看能否优化下

用了一个月但是现在Railyway好像把我ban了?似乎要验证

显示如下
Verify your identity

Railway is a platform for good actors to build great products. We're sorry for this safety-check inconvenience; we aim to keep things cool for everybody. Thank you.

Due to unusual activity on your account, your GitHub account cannot be used for verification.
不知道啥问题

TypeError: 'dict' object is not callable

Seen below error sometime, not found the way to fix...

[2023-04-11 16:57:05,799] ERROR in app: Exception on /loadHistory [GET]
Traceback (most recent call last):
File "/home/user/.local/lib/python3.8/site-packages/flask/app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "/home/user/.local/lib/python3.8/site-packages/flask/app.py", line 1615, in full_dispatch_request
return self.finalize_request(rv)
File "/home/user/.local/lib/python3.8/site-packages/flask/app.py", line 1630, in finalize_request
response = self.make_response(rv)
File "/home/user/.local/lib/python3.8/site-packages/flask/app.py", line 1740, in make_response
rv = self.response_class.force_type(rv, request.environ)
File "/home/user/.local/lib/python3.8/site-packages/werkzeug/wrappers/base_response.py", line 269, in force_type
response = BaseResponse(*_run_wsgi_app(response, environ))
File "/home/user/.local/lib/python3.8/site-packages/werkzeug/test.py", line 1119, in run_wsgi_app
app_rv = app(environ, start_response)
TypeError: 'dict' object is not callable

Internal Server Error

Internal Server Error
The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.
您好,这样报错是什么情况

已开启流,但请求超时

开启流了,但回复内容较长时,会出现请示超时提示,如果不点确定,一段时间后刷新页面会出现完整的内容,如果点击确定就停止生成内容了。
请问这个问题如果修复?
微信图片_20230607171728

web页面窗口大小设置

首先感谢作者共享此项目,在非docker环境是最方便的部署方式了
另外请教下

  1. 如何设置web页面窗口大小呢,默认100%的话还有很多空白的地方,但是浏览器放大的话字体又很大不舒服,哪里能改这个大小呢?
  2. 如何禁用此功能呢?“支持实时流获取,即逐字获取动态加载显示”

谢谢

能否设置每个用户id独立的访问密码?

Hi Leo,

我发现可以通过在聊天框输入任意一个已知的用户id而登录到该用户的聊天界面,且无需访问密码,请问这个流程是否考虑单独给每个用户id设置一个访问密码呢?

谢谢!

缺失文件

404: ENOENT: no such file or directory, stat 'c:\Users\19798\Desktop\houduan\ChatGPT-Web\returnMessage'
微信图片_20240110141644
改咋解决大佬

可否增加停止输出按钮?

  • 如题,有时候问题输错了,不小心点了发送,就只能等它回复完,有时候回复的内容一看就不是想要的,添加stop功能可以节省时间和一点点token。
  • 本来想说可否适应手机页面,仔细一看是适应了的,大佬厉害。
  • 感谢分享,好人一生平安!
    添加stop功能,以及前端自适应

打包成单独exe后,报错。

您好,打包成单独exe后,报错。
Traceback (most recent call last):
File "main.py", line 681, in
File "flask\app.py", line 884, in run
File "flask\cli.py", line 723, in show_server_banner
File "click\utils.py", line 299, in echo
AttributeError: 'NoneType' object has no attribute 'write'

equest error

request error: ('Connection aborted.', OSError(0, 'Error'))

无法切换成其他模型比如 gpt-4

你好LiangYang,
首先非常感谢你的这个作品,部署简易且很好用,谢谢!

我最近碰到了一个问题,我想试着把你默认用的gpt-3-turbo切换成gpt-4的模型,但是我试着在代码里直接改发现没有效果,他还是会显示用的是gpt-3-turbo。

我测试我用的模型的方法:
因为我现在的账号的rate limit是每分钟只能发3条消息,我通过超过这个限制让openai返回一个报错信息,里面会显示我正在使用的模型,也就是gpt-3.5-turbo。

想问下切换模型该如何操作呢?谢谢!

你好

image
改完80出现
以一种访问权限不允许的方式做了一个访问套接字的尝试。
持久化存储文件路径为: D:\同步空间\demo笔记\style_transfer\ChatGPT-Web-main\all_user_dict_v2.pkl
已加载上次存储的用户上下文,共有1用户, 分别是
0 用户id:2462366256 对话统计: 默认对话[13]

  • Serving Flask app 'main' (lazy loading)
  • Environment: production
    WARNING: This is a development server. Do not use it in a production deployment.
    Use a production WSGI server instead.
  • Debug mode: off

改别的端口还是报
image

我这边想在代码基础上加入个逻辑

我这边想在代码基础上加入个逻辑,用户id得来自于数据库,
尝试加了个user_exist方法,并给new_user_dict添加了个逻辑,但达不到需求
`def user_exists(user_id):
# 连接数据库,查询用户id是否存在
conn = pymysql.connect(host=host, user=user, password=password, database=database)
sql_select_wechatnumber = f"SELECT *FROM table WHERE wechatnumber = '{user_id}'"
with conn.cursor() as cursor:
cursor.execute(sql_select_wechatnumber)
sql_select_number_result = cursor.fetchall()
return bool(sql_select_number_result)

def new_user_dict(user_id, send_time):
if not user_exists(user_id):
return "用户 ID 不存在于数据库,请重新输入或选择已有用户 ID"

chat_id = str(uuid.uuid1())
user_dict = {"chats": {chat_id: new_chat_dict(user_id, "默认对话", send_time)},
             "selected_chat_id": chat_id,
             "default_chat_id": chat_id}

user_dict['chats'][chat_id]['messages_history'].insert(1, {"role": "assistant",
                                                           "content": "- 创建新的用户id成功,请牢记该id  \n"
                                                           })
return user_dict`

能提供下修改思路吗,比如涉及哪些函数等

request error

request error:
HTTPSConnectionPool(host='api.openai.com', port=443): Max retries exceeded with url: /v1/chat/completions (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fc23c23f1c0>: Failed to establish a new connection: [Errno 111] Connection refused')))

填了自己的API-key。科学上网使用PAC连线,不管发什么,都是报这个错误。

NameError: name 'all_user_dict' is not defined

首次运行时,输入new: user后,一直报错:NameError: name 'all_user_dict' is not defined

我详细查看了源代码,愣是没发现all_user_dict在哪里定义的,帮忙给些指导,多谢

作者大好人哇

大哥你这code里都不写你的地址,找了半天才发现才找到了你的地址。😆666

希望开发具有保存历史记录到本地😄

推荐使用pandora项目实现0消耗的gpt调用

在zhile-io大佬的pandora项目中,提供了一种免消耗免翻墙调用的方法,可以参考这个科普帖子. 我主页的项目都是用它实现的,认为不错,所以推荐给大家

各位可以先尝试一下这个程序, 但是请勿过多使用我的api, 毕竟不能同时服务2个客户端

import openai 
import time 
  
def fake_api(query,max,a,tem):     #用户输入,最大token,是否流式输出,温度
     openai.api_key = "fk-yU3UOSY13E9WsAkKBTrkq1KiiqIsAXBs_J6OTh_yvJM"  # 使用假的 API 密钥 
     openai.api_base = "https://ai.fakeopen.com/v1/" 
     start_time = time.time()  # 记录开始时间 
  
     response = openai.ChatCompletion.create( 
         model='gpt-3.5-turbo', 
         messages=[ 
             {'role': 'user', 'content': query} 
         ], 
         temperature=tem, 
         max_tokens=max, 
         stream=True  # 开启流式输出 
     ) 
  
     result = ""  # 创建一个空字符串来保存流式输出的结果 
  
     for chunk in response: 
         # 确保字段存在 
         if 'choices' in chunk and 'delta' in chunk['choices'][0]: 
             chunk_msg = chunk['choices'][0]['delta'].get('content', '') 
             result += chunk_msg  # 将输出内容附加到结果字符串上 
  
             if a: 
                 print(chunk_msg, end='', flush=True) 
                 time.sleep(0.05) 
  
     return result  # 返回流式输出的完整结果 
  
if __name__ == '__main__':
     while True:
         query = input("You: ") 
         full_result = fake_api(query,1500,True,1)  # 将结果保存到 full_result 变量中

望采纳!

錯誤request error: SOCKSHTTPSConnectionPool(host='api.openai.com', port=443): Max retries exceeded with url: /v1/chat/completions (Caused by NewConnectionError('<urllib3.contrib.socks.SOCKSHTTPSConnection object at 0x7f1008623df0>: Failed to establish a new connection: [Errno 111] Connection refused'))

Image 53
高手您好 請問您
1.出現以圖片上的錯誤 .請問我需要做什麼
request error: SOCKSHTTPSConnectionPool(host='api.openai.com', port=443): Max retries exceeded with url: /v1/chat/completions (Caused by NewConnectionError('<urllib3.contrib.socks.SOCKSHTTPSConnection object at 0x7f1008623df0>: Failed to establish a new connection: [Errno 111] Connection refused'))
2.關於http://192.168.66.243:5000/ 5000我可以從哪裡修改80
3.請問您.本LiangYang666版本 只能用ChatGPT Plus USD $20/mo.免費的一般版本Free Plan也可以用嗎?
4.請問您 關於 flask_main.py 設定
os.environ['HTTP_PROXY'] = 'socks5://127.0.0.1:7890' # 請問您此處需要設定嗎? 目前這樣在我區網可以開啟LiangYang666服務網頁.但會出現圖上錯誤
os.environ['HTTPS_PROXY'] = 'socks5://127.0.0.1:7890' # 同理
API_KEY = "sk-fiet05cS6Kyc1o0jCs1ET3BlbkFJg0edU8crvcHpoXXXXXX" #此處是我KEY設定

如果id是中文,则一直是未授权,当前浏览器未绑定用户或访问密码错误,但数字的id和字母的没有问题

zeabur部署一直是未授权,当前浏览器未绑定用户或访问密码错误,但没有设置密码,正常创建了id,其他设置正常着
image
这可能是因为系统或应用程序只支持数字和字母字符作为ID,而不支持中文字符作为ID。因此,当使用中文字符作为ID时,系统无法验证其身份,导致未授权或访问密码错误的问题。建议您更改ID并使用数字或字母字符。

教程:是设置OPENAI_API_KEY为 apikey,能具体写一下是哪个地方的吗?

app = Flask(name)
app.config['SECRET_KEY'] = os.urandom(24)

os.environ['HTTP_PROXY'] = 'socks5://127.0.0.1:7890'
os.environ['HTTPS_PROXY'] = 'socks5://127.0.0.1:7890'
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY") # 从环境变量中获取api_key,或直接设置api_key

openai.api_key = OPENAI_API_KEY
STREAM_FLAG = True # 是否开启流式推送
USER_SAVE_MAX = 12 # 设置最多存储12个用户,当用户过多时可适当调大
chat_context_number_max = 5 # 连续对话模式下的上下文最大数量
lock = threading.Lock() # 用于线程锁

关于message_history的存储

通过railway部署项目,每次重新部署会导致之前的聊天记录消失,想问下有办法做聊天记录的备份迁移吗

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.