Spaces:
Sleeping
Sleeping
File size: 4,993 Bytes
79ecf54 0234ead ce34c84 0234ead 79ecf54 ce34c84 8ced746 79ecf54 ce34c84 8ced746 79ecf54 a41ffcc ce34c84 8ced746 a41ffcc 79ecf54 ce34c84 8970855 79ecf54 ec02902 8970855 79ecf54 8ced746 79ecf54 8970855 8ced746 8970855 8ced746 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='密钥', 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='汤面', lines=3, max_lines=3).style(
container=False)
with gr.Column(scale=1):
answer = gr.Textbox(label='汤底', 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()
|