File size: 1,684 Bytes
55f12a0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from vllm import LLM, SamplingParams
import gradio as gr

llm = LLM(model="EQUES/JPharmatron-7B")
sampling_params = SamplingParams(temperature=0.0, max_tokens=512)

def compare_documents(doc_a, doc_b):
    prompt = f"""
以下の2つの文書の間にある齟齬点(食い違い)を抽出してください。
内容の差異、言い回しの変更、意味が変わる部分に注目して簡潔にリスト化してください。

文書A:
{doc_a}

文書B:
{doc_b}

齟齬点:
"""

    outputs = llm.generate(prompt, sampling_params)
    res = outputs[0].outputs[0].text
    res = res.split("\n\n")[0]
    return res.strip()


# サンプル文挿入用の関数
def load_sample():
    sample_text_a = "有効成分は37℃で30分間加熱処理した後、ろ過を行うこと。"
    sample_text_b = "加熱処理後、ろ過を行う。加熱温度は35℃とする。"
    return sample_text_a, sample_text_b

with gr.Blocks() as demo:
    gr.Markdown("## 📝 文書齟齬チェックAI(Gradioデモ)")

    with gr.Row():
        sample_button = gr.Button("サンプル1を利用")

    with gr.Row():
        input_a = gr.Textbox(label="文書A(元文書)", lines=10, placeholder="ここに原文を入力")
        input_b = gr.Textbox(label="文書B(比較対象)", lines=10, placeholder="ここに修正版を入力")

    output = gr.Textbox(label="🔍 抽出された齟齬点", lines=10)

    with gr.Row():
        run_button = gr.Button("差分を確認する")

    run_button.click(fn=compare_documents, inputs=[input_a, input_b], outputs=output)
    sample_button.click(fn=load_sample, inputs=[], outputs=[input_a, input_b])

demo.launch()