File size: 1,722 Bytes
a0b2f3c
4991a9b
a0b2f3c
33c1a1e
a0b2f3c
2036883
33c1a1e
a0b2f3c
fada29a
78d5f9d
 
 
 
 
 
 
 
 
 
 
 
b61760d
4991a9b
 
8bfc25a
4991a9b
 
 
 
 
930de57
4991a9b
 
 
 
 
 
 
aec0035
4991a9b
 
fada29a
 
4e98579
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
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):
    return await summarize(input_text, input_url)
        

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)