Spaces:
Build error
Build error
| from sentence_transformers import SentenceTransformer | |
| from utils_st import load_data,clean_whitespace | |
| import streamlit as st | |
| #embed_model, reranker = load_models() | |
| hybrid_retriever = load_data() | |
| def stream(reranked_nodes,text_size=700): | |
| nodes_dict={} | |
| for nod in reranked_nodes: | |
| file_name = nod.metadata["file_name"] | |
| if file_name not in nodes_dict: nodes_dict[file_name]=[] | |
| if nod not in nodes_dict[file_name]: | |
| nodes_dict[file_name].append(nod) | |
| for rank,i_di in enumerate(nodes_dict): | |
| i_di=nodes_dict[i_di] | |
| title = i_di[0].metadata['title'] | |
| file_name = i_di[0].metadata['file_name'] | |
| summary = i_di[0].metadata['text'] | |
| url = i_di[0].metadata['doc_url'] | |
| st.write(f"**Rank {rank+1}:** {file_name} ") | |
| st.write(f"- Tittle: [{title}](%s)"% url) | |
| #st.write("check out this [link](%s)" % url) | |
| with st.expander(f"Summary"): | |
| st.write(f"{summary}") | |
| with st.expander(f"Extra Text(s) "): | |
| for n_extra,t in enumerate(i_di[:5]): | |
| page_n=t.metadata['page_label'] if "page_label" in t.metadata else 'Unknown' | |
| st.write(f"- **Found in page n°{page_n}** - Extra text **n°{n_extra+1}:**") | |
| st.write(f"\t {clean_whitespace(t.text[:text_size])}...") | |
| st.markdown("""---""") | |
| st.markdown("""---""") | |
| # Function to perform search and return sorted documents | |
| def perform_search(query): | |
| if query: | |
| retrieved_nodes = hybrid_retriever.retrieve(query) | |
| return retrieved_nodes | |
| else: | |
| return [] | |
| # Main Streamlit app | |
| def main(): | |
| #st.sidebar.title("Pagination") | |
| #st.sidebar.write( f"Totale Pages :{total_pages}") | |
| st.title("EIGA Search IMS Business") | |
| query = st.text_input("Enter your question:") | |
| if st.button("Search") : | |
| sorted_docs = perform_search(query) | |
| st.session_state.sorted_docs = sorted_docs | |
| else: | |
| sorted_docs = st.session_state.get("sorted_docs", []) | |
| if sorted_docs: | |
| stream(sorted_docs,700) | |
| query = st.write("Powered By: Arthur SATOUF, Air liquide R&D") | |
| #st.write(f"Current Page Number: {page_number}") | |
| # Run the app | |
| if __name__ == "__main__": | |
| main() |