summaryrefslogtreecommitdiffstats
path: root/gui/pywebio-gui/pywebio-usesless.py
blob: 86a31e0303cb658f21ea084cbdbb1932dffaee44 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import usesless,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)