Spaces:
Sleeping
Sleeping
File size: 4,980 Bytes
79ecf54 0234ead 79ecf54 a41ffcc 79ecf54 8970855 79ecf54 ec02902 8970855 79ecf54 43a01f6 79ecf54 8970855 79ecf54 43a01f6 a41ffcc 0234ead 43a01f6 8970855 79ecf54 0234ead 43a01f6 0234ead 8970855 79ecf54 |
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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
import gradio as gr
import mdtex2html
import os
import json
import requests
def postprocess(self, y):
if y is None:
return []
for i, (message, response) in enumerate(y):
y[i] = (
None if message is None else mdtex2html.convert((message)),
None if response is None else mdtex2html.convert(response),
)
return y
gr.Chatbot.postprocess = postprocess
def parse_text(text):
"""copy from https://github.com/GaiZhenbiao/ChuanhuChatGPT/"""
lines = text.split("\n")
lines = [line for line in lines if line != ""]
count = 0
for i, line in enumerate(lines):
if "```" in line:
count += 1
items = line.split('`')
if count % 2 == 1:
lines[i] = f'<pre><code class="language-{items[-1]}">'
else:
lines[i] = f'<br></code></pre>'
else:
if i > 0:
if count % 2 == 1:
line = line.replace("`", "\`")
line = line.replace("<", "<")
line = line.replace(">", ">")
line = line.replace(" ", " ")
line = line.replace("*", "*")
line = line.replace("_", "_")
line = line.replace("-", "-")
line = line.replace(".", ".")
line = line.replace("!", "!")
line = line.replace("(", "(")
line = line.replace(")", ")")
line = line.replace("$", "$")
lines[i] = "<br>"+line
text = "".join(lines)
return text
def SubmitKey(chatbot, key):
data = {'AgentStart': True, 'key': key}
response=requests.post(os.environ.get("URL"), data=json.dumps(data, ensure_ascii=False).encode('utf-8'))
msg = str(response.content, encoding="utf-8")
if not response.status_code == 200:
chatbot = [(None, parse_text(msg))]
return chatbot, gr.update(value=msg), gr.update(value=msg)
response = json.loads(msg)
chatbot = response['chatbot']
return chatbot, gr.update(value=response['story']), gr.update(value=response['answer'])
def CheckTrue(chatbot, key):
data = {'AgentCheck': True, 'key': key}
response=requests.post(os.environ.get("URL"), data=json.dumps(data, ensure_ascii=False).encode('utf-8'))
chatbot.append((parse_text("是"), parse_text(str(response.content, encoding="utf-8"))))
return chatbot
def CheckFalse(chatbot, key):
data = {'AgentCheck': False, 'key': key}
response=requests.post(os.environ.get("URL"), data=json.dumps(data, ensure_ascii=False).encode('utf-8'))
chatbot.append((parse_text("否"), parse_text(str(response.content, encoding="utf-8"))))
return chatbot
def CheckIrrelevant(chatbot, key):
data = {'AgentCheck': 'Irrelevant', 'key': key}
response=requests.post(os.environ.get("URL"), data=json.dumps(data, ensure_ascii=False).encode('utf-8'))
chatbot.append((parse_text("无关"), parse_text(str(response.content, encoding="utf-8"))))
return chatbot
def CheckTerm(chatbot, key):
data = {'AgentFinish': True, 'key': key}
response=requests.post(os.environ.get("URL"), data=json.dumps(data, ensure_ascii=False).encode('utf-8'))
msg = str(response.content, encoding="utf-8")
if not response.status_code == 200:
chatbot = [(None, parse_text(msg))]
return chatbot, gr.update(value=msg), gr.update(value=msg)
response = json.loads(msg)
chatbot = [(None, parse_text(response['response']))]
return chatbot, gr.update(value=response['story']), gr.update(value=response['answer'])
with gr.Blocks() as demo:
gr.HTML("""<h1 align="center">Generative Agents测试平台</h1>""")
user_key = gr.Textbox(label='Key', placeholder="Input your key, press enter to apply", lines=1, max_lines=1).style(
container=False)
with gr.Row():
with gr.Column(scale=1):
story = gr.Textbox(label='Story', lines=3, max_lines=3).style(
container=False)
with gr.Column(scale=1):
answer = gr.Textbox(label='Answer', lines=3, max_lines=3).style(
container=False)
chatbot = gr.Chatbot([])
with gr.Row():
with gr.Column(scale=1):
trueBtn = gr.Button('是')
with gr.Column(scale=1):
falseBtn = gr.Button('否')
with gr.Column(scale=1):
irreBtn = gr.Button('无关')
with gr.Column(scale=1):
termBtn = gr.Button('达到终止条件')
user_key.submit(SubmitKey, [chatbot, user_key], [chatbot, story, answer])
trueBtn.click(CheckTrue, [chatbot, user_key], [chatbot])
falseBtn.click(CheckFalse, [chatbot, user_key], [chatbot])
irreBtn.click(CheckIrrelevant, [chatbot, user_key], [chatbot])
termBtn.click(CheckTerm, [chatbot, user_key], [chatbot, story, answer])
demo.queue().launch()
|