Spaces:
Sleeping
Sleeping
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) | |