한글 질문, 답변 구현하기
필요한 모듈 설치하기
!pip install transformers --quiet
!pip install torch --quiet
Gradio 설치하기
트랜스포머 모델 사이트
https://huggingface.co/dontgive99/deberta-v3-base-korean-squad_kor_v1 (한글 질문/답변)
from transformers import pipeline
question_answerer = pipeline(model="dontgive99/deberta-v3-base-korean-squad_kor_v1")
question_answerer(
question="홍길동은 어디에서 근무해?",
context="나는 한국에서 근무하는 홍길동입니다.",
)
Gradio에서 한글 질문/답변 구현하기 (과정1: 템플릿 준비하기)
import gradio as gr
with gr.Blocks() as demo:
n1 = gr.Textbox(label="전공지식")
n2 = gr.Textbox(label="질문")
r = gr.Textbox(label="답변")
bmi_btn = gr.Button("질문하기")
#bmi_btn.click(fn=bmi, inputs=[n1, n2], outputs=r)
demo.launch()
Gradio에서 한글 질문/답변 구현하기 (과정2: 텍스트박스의 크기 조절)
import gradio as gr
with gr.Blocks() as demo:
n1 = gr.Textbox(label="전공지식", lines=5)
n2 = gr.Textbox(label="질문")
r = gr.Textbox(label="답변", lines=3)
bmi_btn = gr.Button("질문하기")
#bmi_btn.click(fn=bmi, inputs=[n1, n2], outputs=r)
demo.launch()
Gradio에서 한글 질문/답변 구현하기 (과정3: 제목 추가하기)
import gradio as gr
with gr.Blocks() as demo:
gr.Markdown(
"""
# 홍길동이 만든 GPT 서비스
생성할 시작 문구를 입력해 주세요.
""")
n1 = gr.Textbox(label="전공지식", lines=5)
n2 = gr.Textbox(label="질문")
r = gr.Textbox(label="답변", lines=3)
bmi_btn = gr.Button("질문하기")
#bmi_btn.click(fn=bmi, inputs=[n1, n2], outputs=r)
demo.launch()
Gradio에서 한글 질문/답변 구현하기 (과정4: 함수 연동하기)
import gradio as gr
from transformers import pipeline
question_answerer = pipeline(model="dontgive99/deberta-v3-base-korean-squad_kor_v1")
def predict(cnt, qt):
res = question_answerer(
question="홍길동은 어디에서 근무해?",
context="나는 한국에서 근무하는 홍길동입니다.",
)
return res
#return pipe(text)[0]["generated_text"]
with gr.Blocks() as demo:
gr.Markdown(
"""
# 전공지식 답변 AI
""")
n1 = gr.Textbox(label="전공지식", lines=5)
n2 = gr.Textbox(label="질문")
r = gr.Textbox(label="답변", lines=3)
qna_btn = gr.Button("질문하기")
qna_btn.click(fn=predict, inputs=[n1, n2], outputs=r)
demo.launch()
Gradio에서 한글 질문/답변 구현하기 (과정5: 함수에서 응답값 처리하기)
import gradio as gr
from transformers import pipeline
question_answerer = pipeline(model="dontgive99/deberta-v3-base-korean-squad_kor_v1")
def predict(cnt, qt):
res = question_answerer(
question="홍길동은 어디에서 근무해?",
context="나는 한국에서 근무하는 홍길동입니다.",
)
return res["answer"]
with gr.Blocks() as demo:
gr.Markdown(
"""
# 전공지식 답변 AI
""")
n1 = gr.Textbox(label="전공지식", lines=5)
n2 = gr.Textbox(label="질문")
r = gr.Textbox(label="답변", lines=3)
qna_btn = gr.Button("질문하기")
qna_btn.click(fn=predict, inputs=[n1, n2], outputs=r)
demo.launch()
Gradio에서 한글 질문/답변 구현하기 (과정6: 기능 완성하기)
import gradio as gr
from transformers import pipeline
question_answerer = pipeline(model="dontgive99/deberta-v3-base-korean-squad_kor_v1")
def predict(cnt, qt):
res = question_answerer(
question=qt,
context=cnt,
)
return res["answer"]
with gr.Blocks() as demo:
gr.Markdown(
"""
# 전공지식 답변 AI
""")
n1 = gr.Textbox(label="전공지식", lines=5)
n2 = gr.Textbox(label="질문")
r = gr.Textbox(label="답변", lines=3)
qna_btn = gr.Button("질문하기")
qna_btn.click(fn=predict, inputs=[n1, n2], outputs=r)
demo.launch()