|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import streamlit as st |
|
from transformers import pipeline |
|
|
|
|
|
st.title('Question Answering') |
|
model_checkpoint = 'Diezu/Viedumodel' |
|
question_answerer = pipeline("question-answering", model=model_checkpoint) |
|
|
|
|
|
st.sidebar.title("Cài đặt") |
|
theme_color = st.sidebar.color_picker("Chọn màu chủ đạo", "#4CAF50") |
|
font_size = st.sidebar.slider("Cỡ chữ câu trả lời", 14, 50, 20) |
|
|
|
|
|
context = st.sidebar.text_area('Nhập Nội Dung (CONTEXT)', height=200) |
|
|
|
|
|
|
|
question = st.text_input("Nhập câu hỏi ") |
|
|
|
|
|
st.markdown( |
|
f""" |
|
<style> |
|
.stTitle {{ |
|
font-size: 32px; |
|
font-weight: bold; |
|
color: {theme_color}; |
|
}} |
|
textarea {{ |
|
border: 2px solid {theme_color}; |
|
border-radius: 10px; |
|
padding: 10px; |
|
font-size: 16px; |
|
}} |
|
input[type="text"] {{ |
|
border: 2px solid {theme_color}; |
|
border-radius: 10px; |
|
padding: 10px; |
|
font-size: 16px; |
|
}} |
|
.stButton > button {{ |
|
background-color: {theme_color}; |
|
color: white; |
|
border-radius: 10px; |
|
padding: 10px 20px; |
|
font-size: 16px; |
|
border: none; |
|
transition: 0.3s; |
|
}} |
|
.stButton > button:hover {{ |
|
background-color: #45a049; |
|
}} |
|
.stMarkdown {{ |
|
font-size: {font_size}px; |
|
font-weight: bold; |
|
color: #333333; |
|
}} |
|
</style> |
|
""", |
|
unsafe_allow_html=True |
|
) |
|
|
|
|
|
if st.button('ANSWER'): |
|
if context and question: |
|
with st.spinner('Đang xử lý...'): |
|
result = question_answerer(question=question, context=context) |
|
st.success(f"Trả lời: {result['answer']}") |
|
else: |
|
st.warning("Vui lòng nhập CONTEXT và chọn câu hỏi.") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|