commit
c05232d0df
3 changed files with 86 additions and 1 deletions
|
@ -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
|
||||
------------
|
||||
|
||||
|
@ -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
gui/pywebio-gui/README.md
Normal file
24
gui/pywebio-gui/README.md
Normal file
|
@ -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
gui/pywebio-gui/pywebio-usesless.py
Normal file
59
gui/pywebio-gui/pywebio-usesless.py
Normal file
|
@ -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)
|
Loading…
Reference in a new issue