Spaces:
Sleeping
Sleeping
File size: 2,055 Bytes
0d2e704 a0b2f3c 4991a9b a0b2f3c 33c1a1e a0b2f3c 2036883 33c1a1e a0b2f3c fada29a 78d5f9d b61760d 4991a9b 8bfc25a 4991a9b 930de57 4991a9b aec0035 4991a9b fada29a 0d2e704 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 |
import os
import json
import requests
import gradio as gr
from spiralfilm import FilmCore, FilmConfig
def greet(name):
return "こんにちは " + name + "さん!! \n僕はパスカルくんだよ。よろしくね"
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",
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)
return response.text
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)
|