Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GUI with PyWebIO #329

Merged
merged 7 commits into from
May 1, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion gui/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

This code provides a Graphical User Interface (GUI) for gpt4free. Users can ask questions and get answers from GPT-4 API's, utilizing multiple API implementations. The project contains two different Streamlit applications: `streamlit_app.py` and `streamlit_chat_app.py`.

In addition, a new GUI script specifically implemented using PyWebIO has been added and can be found in the pywebio-gui folder. If there are errors with the Streamlit version, you can try using the PyWebIO version instead

Installation
------------

Expand Down Expand Up @@ -69,4 +71,4 @@ There is a bug in `streamlit_chat_app.py` right now that I haven't pinpointed ye
License
-------

This project is licensed under the MIT License.
This project is licensed under the MIT License.
24 changes: 24 additions & 0 deletions gui/pywebio-gui/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# GUI with PyWebIO
Simple, fast, and with fewer errors
Only requires
```bash
pip install gpt4free
pip install pywebio
```
clicking on 'pywebio-usesless.py' will run it

PS: Currently, only 'usesless' is implemented, and the GUI is expected to be updated infrequently, with a focus on stability.

↓ Here is the introduction in zh-Hans-CN below.

# 使用pywebio实现的极简GUI
简单,快捷,报错少
只需要
```bash
pip install gpt4free
pip install pywebio
```

双击pywebio-usesless.py即可运行

ps:目前仅实现usesless,这个gui更新频率应该会比较少,目的是追求稳定
59 changes: 59 additions & 0 deletions gui/pywebio-gui/pywebio-usesless.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
from gpt4free import usesless
import time
from pywebio import start_server,config
from pywebio.input import *
from pywebio.output import *
from pywebio.session import local
message_id = ""
def status():
try:
req = usesless.Completion.create(prompt="hello", parentMessageId=message_id)
print(f"Answer: {req['text']}")
put_success(f"Answer: {req['text']}",scope="body")
except:
put_error("Program Error",scope="body")

def ask(prompt):
req = usesless.Completion.create(prompt=prompt, parentMessageId=local.message_id)
rp=req['text']
local.message_id=req["id"]
print("AI:\n"+rp)
local.conversation.extend([
{"role": "user", "content": prompt},
{"role": "assistant", "content": rp}
])
print(local.conversation)
return rp

def msg():
while True:
text= input_group("You:",[textarea('You:',name='text',rows=3, placeholder='请输入问题')])
if not(bool(text)):
break
if not(bool(text["text"])):
continue
time.sleep(0.5)
put_code("You:"+text["text"],scope="body")
print("Question:"+text["text"])
with use_scope('foot'):
put_loading(color="info")
rp= ask(text["text"])
clear(scope="foot")
time.sleep(0.5)
put_markdown("Bot:\n"+rp,scope="body")
time.sleep(0.7)

@config(title="AIchat",theme="dark")
def main():
put_scope("heads")
with use_scope('heads'):
put_html("<h1><center>AI Chat</center></h1>")
put_scope("body")
put_scope("foot")
status()
local.conversation=[]
local.message_id=""
msg()

print("Click link to chat page")
start_server(main, port=8099,allowed_origins="*",auto_open_webbrowser=True,debug=True)