Truong-Phuc Nguyen commited on
Commit
19b9973
1 Parent(s): 9c408a6

Update Chat with PViLQA

Browse files
Files changed (1) hide show
  1. app.py +19 -11
app.py CHANGED
@@ -2,26 +2,34 @@ import streamlit as st
2
  import torch
3
  from transformers import pipeline
4
 
5
- st.set_page_config(page_title="Vietnamese Legal Question Answering", page_icon="🧊", layout="centered", initial_sidebar_state="collapsed")
 
6
 
 
7
 
8
  device = 0 if torch.cuda.is_available() else -1
9
  if 'model' not in st.session_state:
10
  print('Some errors occured!')
11
- st.session_state.model = pipeline("question-answering", model='Truong-Phuc/ViL-MRC-large', device=device)
12
 
13
  def get_answer(context, question):
14
  return st.session_state.model(context=context, question=question, max_answer_len=512)
15
 
16
- st.markdown("<h1 style='text-align: center;'>Hệ thống hỏi đáp trực tuyến cho văn bản pháp luật Việt Nam</h1>", unsafe_allow_html=True)
 
 
 
 
 
17
 
18
- context = st.text_area(label='Nội dung văn bản pháp luật Việt Nam:', placeholder='Vui lòng nhập nội dung văn bản pháp luật Việt Nam tại đây...', height=400)
19
- question = st.text_area(label='Câu hỏi liên quan đến nội dung văn bản pháp luật Việt Nam ở trên:', placeholder='Vui lòng nhập câu hỏi liên quan đến nội dung văn bản pháp luật Việt Nam ở trên:...', height=100)
 
 
 
 
20
 
21
- col_1, col_2, col_3, col_4, col_5 = st.columns([1, 1, 1.3, 1, 1])
22
- btn_answer = col_3.button(label='Giải đáp thắc mắc', use_container_width=True)
23
 
24
- if btn_answer:
25
- with st.spinner("Vui lòng chờ..."):
26
- answer = get_answer(context=context, question=question)
27
- st.success(f"Câu trả lời: {answer['answer']}")
 
2
  import torch
3
  from transformers import pipeline
4
 
5
+ st.set_page_config(page_title="Vietnamese Legal Question Answering", page_icon="🧊", layout="centered", initial_sidebar_state="expanded")
6
+ st.markdown("<h1 style='text-align: center;'>Hệ thống hỏi đáp trực tuyến cho văn bản pháp luật Việt Nam</h1>", unsafe_allow_html=True)
7
 
8
+ context = st.sidebar.text_area(label='Nội dung văn bản pháp luật Việt Nam:', placeholder='Vui lòng nhập nội dung văn bản pháp luật Việt Nam tại đây...', height=925)
9
 
10
  device = 0 if torch.cuda.is_available() else -1
11
  if 'model' not in st.session_state:
12
  print('Some errors occured!')
13
+ st.session_state.model = pipeline("question-answering", model='./models/vi-mrc-large/archive/model', device=device)
14
 
15
  def get_answer(context, question):
16
  return st.session_state.model(context=context, question=question, max_answer_len=512)
17
 
18
+ if 'messages' not in st.session_state:
19
+ st.session_state.messages = []
20
+
21
+ for message in st.session_state.messages:
22
+ with st.chat_message(name=message['role']):
23
+ st.markdown(message['content'])
24
 
25
+ if prompt := st.chat_input(placeholder='Xin chào, tôi thể giúp được cho bạn?'):
26
+ with st.chat_message(name='user'):
27
+ st.markdown(prompt)
28
+ st.session_state.messages.append({'role': 'user', 'content': prompt})
29
+
30
+ respond = get_answer(context=context, question=prompt)['answer']
31
 
32
+ with st.chat_message(name='assitant'):
33
+ st.markdown(respond)
34
 
35
+ st.session_state.messages.append({'role': 'assitant', 'content': respond})