Skip to content

Commit

Permalink
Merge pull request #329 from taiyi747/main
Browse files Browse the repository at this point in the history
GUI with PyWebIO
  • Loading branch information
xtekky committed May 1, 2023
2 parents 8b0cb0c + 31298b0 commit c05232d
Show file tree
Hide file tree
Showing 3 changed files with 86 additions and 1 deletion.
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)

0 comments on commit c05232d

Please sign in to comment.