dmibor's picture
some batch doc optimization, added S1000D bike example usage
31211be
import streamlit as st
from search_core import make_search_index, make_search_index_qa, search_query_all, answer_question
import pandas as pd
import json
# Setting page layout
st.set_page_config(
page_title="Поиск по публикации/вопросы-ответы",
page_icon="🤖",
layout="wide",
initial_sidebar_state="expanded"
)
# Main page heading
#st.title("Поиск изображений Google Open Images по текстовому запросу")
searchStarted= False
qaStarted= False
LANGUAGE= 'language'
if LANGUAGE not in st.session_state:
st.session_state[LANGUAGE]= 'Русский'
if "visibility" not in st.session_state:
st.session_state.visibility = "visible"
st.session_state.disabled = False
st.session_state.horizontal = True
with st.sidebar:
st.session_state[LANGUAGE]= st.sidebar.radio(
"Язык/Language",
["Русский", "English"],
key="Русский",
label_visibility=st.session_state.visibility,
disabled=st.session_state.disabled,
horizontal=st.session_state.horizontal,
)
if st.session_state[LANGUAGE]== 'Русский':
st.sidebar.subheader('Демо-публикация: "Урал 44202-80М", 74 модуля данных, русский язык')
tab1, tab2 = st.sidebar.tabs(["Поиск по публикации", "Вопросы-ответы"])
else:
st.sidebar.subheader('Publication asset: "S1000D release 5.0 bike example", 101 data module, english language')
tab1, tab2 = st.sidebar.tabs(["Indexed search", "Question answering"])
with tab1:
if st.session_state[LANGUAGE]== 'Русский':
st.header("Поиск по публикации")
search_input = st.text_input(label='Введите запрос:', value='аккумуляторная батарея')
searchStarted = st.button('Искать')
else:
st.header("Publication content search")
search_input = st.text_input(label='Enter query:', value='bicycle wheel')
searchStarted = st.button('Search')
with tab2:
if st.session_state[LANGUAGE]== 'Русский':
st.header("Вопросы-ответы")
qa_input = st.text_input(label='Введите вопрос:', value='Какой ресурс до первого ремонта?')
#qa_input = st.text_input(label='Введите вопрос:', value='Что входит в состав системы предпускового подогрева?')
#qa_input = st.text_input(label='Введите вопрос:', value='Для чего нужен нагреватель с нагнетателем воздуха?')
qaStarted = st.button('Узнать ответ')
else:
st.header("Question answering")
qa_input = st.text_input(label='Enter question:', value='How many brake pads on the bicycle?')
qaStarted = st.button('Find out')
if searchStarted==True:
if st.session_state[LANGUAGE]== 'Русский':
st.header("Результаты поиска")
search_result= search_query_all(search_input, language="ru")
df = pd.DataFrame(pd.json_normalize(search_result))
df.columns=['Параграф модуля данных', 'Код МД']
st.table(df)
else:
st.header("Search results")
search_result= search_query_all(search_input, language="en")
df = pd.DataFrame(pd.json_normalize(search_result))
df.columns=['Data module paragraph', 'Data module code']
st.table(df)
if qaStarted==True:
if st.session_state[LANGUAGE]== 'Русский':
st.header("Ответ")
mode_string = 'strict'
model_string = '1'
answer= answer_question(qa_input, mode_string, model_string, language="ru")
df = pd.DataFrame(pd.json_normalize(answer))
df.columns=['Уверенность', 'Ответ', 'Код МД']
st.table(df)
else:
st.header("Answer")
mode_string = 'strict'
model_string = '1'
answer= answer_question(qa_input, mode_string, model_string, language="en")
df = pd.DataFrame(pd.json_normalize(answer))
df.columns=['Score', 'Answer', 'Data module code']
st.table(df)