Spaces:
Sleeping
Sleeping
File size: 2,284 Bytes
0d2e704 417cd16 a0b2f3c 4991a9b a0b2f3c 33c1a1e a0b2f3c 2036883 33c1a1e 417cd16 a0b2f3c fada29a 78d5f9d b61760d 4991a9b 88e5e9b 4991a9b 930de57 4991a9b aec0035 4991a9b fada29a 0d2e704 417cd16 f7ce0ea 4991a9b fada29a b3fb86f c317c89 b61760d 2acf559 fada29a 33c1a1e de2dd13 |
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 |
import os
import json
import requests
import re
import gradio as gr
from spiralfilm import FilmCore, FilmConfig
def greet(name):
return "こんにちは " + name + "さん!! \n僕はパスカルくんだよ。よろしくね"
def extract_texts(input_str):
pattern = r"msg='([^']*)'"
matches = re.findall(pattern, input_str)
return matches
async def summarize(input_text: str, input_url: str):
if input_text:
_prompt = f"""
以下の文章を要約してください。
{input_text}
"""
elif input_url:
url_content = "URLのコンテンツを取得したものを代入します"
_prompt = f"""
以下の文章を要約してください。
{url_content}
"""
else:
_prompt = "文章が入力するように促してください。"
config = FilmConfig(
"gpt-3.5-turbo-16k",
api_type="azure",
azure_deployment_id="gpt-35-turbo",
azure_api_version="2023-05-15",
timeout=60.0, # これを入れないとtimeoutが頻繁に発生する
)
config.get_apikey()
film = FilmCore(
prompt=_prompt,
system_prompt="あなたは優秀なライターです。",
config=config
)
return await film.run_async()
async def chat(input_text, input_url):
summary = await summarize(input_text, input_url)
endpoint = os.environ.get("TWINROOM_API_BASE")
payload = {
"content": summary
}
headers = {'API-Key': os.environ.get("TWINROOM_API_KEY")}
json_payload = json.dumps(payload)
response = requests.post(endpoint, headers=headers, data=json_payload)
response_msgs = extract_texts(response.text)
''.join(response_msgs)
return response_msgs
with gr.Blocks() as iface:
# UI
with gr.Row():
with gr.Column():
input_text = gr.Textbox(label="テキスト")
input_url = gr.Textbox(label="URL")
chat_btn = gr.Button("Chat")
with gr.Column():
output_text = gr.Textbox(label="回答")
# Event handler
chat_btn.click(fn=chat, inputs=[input_text, input_url], outputs=output_text)
if __name__ == "__main__":
iface.launch(auth=("spiralai", "spiralai"), share=True)
|