Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -15,20 +15,20 @@ from langchain_community.llms import HuggingFaceHub
|
|
| 15 |
|
| 16 |
# define constants
|
| 17 |
# Embedding models
|
| 18 |
-
EMB_MODEL_bge_base = 'BAAI/bge-base-en-v1.5'
|
| 19 |
EMB_MODEL_bge_large = 'BAAI/bge-large-en-v1.5'
|
| 20 |
-
EMB_MODEL_gtr_t5_base = 'sentence-transformers/gtr-t5-base'
|
| 21 |
EMB_MODEL_gtr_t5_large = 'sentence-transformers/gtr-t5-large'
|
| 22 |
-
EMB_MODEL_e5_base = 'intfloat/e5-large-v2'
|
| 23 |
# Chat app model
|
| 24 |
MISTRAL_MODEL1 = 'mistralai/Mixtral-8x7B-Instruct-v0.1'
|
| 25 |
HF_MODEL1 = 'HuggingFaceH4/zephyr-7b-beta'
|
| 26 |
# define paths
|
| 27 |
-
vector_path_bge_base = 'vectorDB/faiss_index_bge_base'
|
| 28 |
vector_path_bge_large = 'vectorDB/faiss_index_bge_large'
|
| 29 |
-
vector_path_gtr_t5_base = 'vectorDB/faiss_index_gtr_t5_base'
|
| 30 |
vector_path_gtr_t5_large = 'vectorDB/faiss_index_gtr_t5_large'
|
| 31 |
-
vector_path_e5_base = 'vectorDB/faiss_index_e5_base'
|
| 32 |
|
| 33 |
hf_token = os.environ["HUGGINGFACEHUB_API_TOKEN"]
|
| 34 |
|
|
@@ -37,17 +37,17 @@ def respond(message, history):
|
|
| 37 |
# Initialize your embedding model
|
| 38 |
embedding_model_bge = HuggingFaceEmbeddings(model_name=EMB_MODEL_bge_large)
|
| 39 |
embedding_model_gtr_t5 = HuggingFaceEmbeddings(model_name=EMB_MODEL_gtr_t5_large)
|
| 40 |
-
embedding_model_e5 = HuggingFaceEmbeddings(model_name=EMB_MODEL_e5_base)
|
| 41 |
|
| 42 |
# Load FAISS from relative path
|
| 43 |
vectordb_bge = FAISS.load_local(vector_path_bge_large, embedding_model_bge, allow_dangerous_deserialization=True)
|
| 44 |
vectordb_gtr_t5 = FAISS.load_local(vector_path_gtr_t5_large, embedding_model_gtr_t5, allow_dangerous_deserialization=True)
|
| 45 |
-
vectordb_e5 = FAISS.load_local(vector_path_e5_base, embedding_model_e5, allow_dangerous_deserialization=True)
|
| 46 |
|
| 47 |
# define retriever object
|
| 48 |
retriever_bge = vectordb_bge.as_retriever(search_type="similarity", search_kwargs={"k": 5})
|
| 49 |
retriever_gtr_t5 = vectordb_gtr_t5.as_retriever(search_type="similarity", search_kwargs={"k": 5})
|
| 50 |
-
retriever_e5 = vectordb_e5.as_retriever(search_type="similarity", search_kwargs={"k": 5})
|
| 51 |
|
| 52 |
# initialse chatbot llm
|
| 53 |
llm = HuggingFaceHub(
|
|
@@ -59,12 +59,12 @@ def respond(message, history):
|
|
| 59 |
# create a RAG pipeline
|
| 60 |
qa_chain_bge = RetrievalQA.from_chain_type(llm=llm, retriever=retriever_bge)
|
| 61 |
qa_chain_gtr_t5 = RetrievalQA.from_chain_type(llm=llm, retriever=retriever_gtr_t5)
|
| 62 |
-
qa_chain_e5 = RetrievalQA.from_chain_type(llm=llm, retriever=retriever_e5)
|
| 63 |
|
| 64 |
#generate results
|
| 65 |
responce_bge = qa_chain_bge.invoke(message)['result']
|
| 66 |
responce_gtr_t5 = qa_chain_gtr_t5.invoke(message)['result']
|
| 67 |
-
responce_e5 = qa_chain_e5.invoke(message)['result']
|
| 68 |
|
| 69 |
# remove the top instructions
|
| 70 |
#instruction_prefix = (
|
|
@@ -98,27 +98,37 @@ def respond(message, history):
|
|
| 98 |
# answer_e5 = match_e5.group(3).strip()
|
| 99 |
#
|
| 100 |
#formatted_responce = f'Question:{question_bge}\nHelpful Answer Type 1:\n{answer_bge}\nHelpful Answer Type 2:\n{answer_gtr_t5}\nHelpful Answer Type 3:\n{answer_e5}'
|
| 101 |
-
formatted_responce = f'\n************* BAAI/bge-large-en-v1.5 ****************\n{responce_bge}\n************** sentence-transformers/gtr-t5-large ***************\n{responce_gtr_t5}\n************ intfloat/e5-large-v2 **************\n{responce_e5}'
|
|
|
|
| 102 |
yield formatted_responce
|
| 103 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 104 |
|
| 105 |
-
|
| 106 |
-
|
| 107 |
-
|
| 108 |
-
|
| 109 |
-
|
| 110 |
-
|
| 111 |
-
|
| 112 |
-
|
| 113 |
-
|
| 114 |
-
|
| 115 |
-
|
| 116 |
-
|
| 117 |
-
|
| 118 |
-
|
| 119 |
-
|
| 120 |
-
|
| 121 |
-
)
|
|
|
|
|
|
|
|
|
|
| 122 |
|
| 123 |
|
| 124 |
if __name__ == "__main__":
|
|
|
|
| 15 |
|
| 16 |
# define constants
|
| 17 |
# Embedding models
|
| 18 |
+
#EMB_MODEL_bge_base = 'BAAI/bge-base-en-v1.5'
|
| 19 |
EMB_MODEL_bge_large = 'BAAI/bge-large-en-v1.5'
|
| 20 |
+
#EMB_MODEL_gtr_t5_base = 'sentence-transformers/gtr-t5-base'
|
| 21 |
EMB_MODEL_gtr_t5_large = 'sentence-transformers/gtr-t5-large'
|
| 22 |
+
#EMB_MODEL_e5_base = 'intfloat/e5-large-v2'
|
| 23 |
# Chat app model
|
| 24 |
MISTRAL_MODEL1 = 'mistralai/Mixtral-8x7B-Instruct-v0.1'
|
| 25 |
HF_MODEL1 = 'HuggingFaceH4/zephyr-7b-beta'
|
| 26 |
# define paths
|
| 27 |
+
#vector_path_bge_base = 'vectorDB/faiss_index_bge_base'
|
| 28 |
vector_path_bge_large = 'vectorDB/faiss_index_bge_large'
|
| 29 |
+
#vector_path_gtr_t5_base = 'vectorDB/faiss_index_gtr_t5_base'
|
| 30 |
vector_path_gtr_t5_large = 'vectorDB/faiss_index_gtr_t5_large'
|
| 31 |
+
#vector_path_e5_base = 'vectorDB/faiss_index_e5_base'
|
| 32 |
|
| 33 |
hf_token = os.environ["HUGGINGFACEHUB_API_TOKEN"]
|
| 34 |
|
|
|
|
| 37 |
# Initialize your embedding model
|
| 38 |
embedding_model_bge = HuggingFaceEmbeddings(model_name=EMB_MODEL_bge_large)
|
| 39 |
embedding_model_gtr_t5 = HuggingFaceEmbeddings(model_name=EMB_MODEL_gtr_t5_large)
|
| 40 |
+
#embedding_model_e5 = HuggingFaceEmbeddings(model_name=EMB_MODEL_e5_base)
|
| 41 |
|
| 42 |
# Load FAISS from relative path
|
| 43 |
vectordb_bge = FAISS.load_local(vector_path_bge_large, embedding_model_bge, allow_dangerous_deserialization=True)
|
| 44 |
vectordb_gtr_t5 = FAISS.load_local(vector_path_gtr_t5_large, embedding_model_gtr_t5, allow_dangerous_deserialization=True)
|
| 45 |
+
#vectordb_e5 = FAISS.load_local(vector_path_e5_base, embedding_model_e5, allow_dangerous_deserialization=True)
|
| 46 |
|
| 47 |
# define retriever object
|
| 48 |
retriever_bge = vectordb_bge.as_retriever(search_type="similarity", search_kwargs={"k": 5})
|
| 49 |
retriever_gtr_t5 = vectordb_gtr_t5.as_retriever(search_type="similarity", search_kwargs={"k": 5})
|
| 50 |
+
#retriever_e5 = vectordb_e5.as_retriever(search_type="similarity", search_kwargs={"k": 5})
|
| 51 |
|
| 52 |
# initialse chatbot llm
|
| 53 |
llm = HuggingFaceHub(
|
|
|
|
| 59 |
# create a RAG pipeline
|
| 60 |
qa_chain_bge = RetrievalQA.from_chain_type(llm=llm, retriever=retriever_bge)
|
| 61 |
qa_chain_gtr_t5 = RetrievalQA.from_chain_type(llm=llm, retriever=retriever_gtr_t5)
|
| 62 |
+
#qa_chain_e5 = RetrievalQA.from_chain_type(llm=llm, retriever=retriever_e5)
|
| 63 |
|
| 64 |
#generate results
|
| 65 |
responce_bge = qa_chain_bge.invoke(message)['result']
|
| 66 |
responce_gtr_t5 = qa_chain_gtr_t5.invoke(message)['result']
|
| 67 |
+
#responce_e5 = qa_chain_e5.invoke(message)['result']
|
| 68 |
|
| 69 |
# remove the top instructions
|
| 70 |
#instruction_prefix = (
|
|
|
|
| 98 |
# answer_e5 = match_e5.group(3).strip()
|
| 99 |
#
|
| 100 |
#formatted_responce = f'Question:{question_bge}\nHelpful Answer Type 1:\n{answer_bge}\nHelpful Answer Type 2:\n{answer_gtr_t5}\nHelpful Answer Type 3:\n{answer_e5}'
|
| 101 |
+
#formatted_responce = f'\n************* BAAI/bge-large-en-v1.5 ****************\n{responce_bge}\n************** sentence-transformers/gtr-t5-large ***************\n{responce_gtr_t5}\n************ intfloat/e5-large-v2 **************\n{responce_e5}'
|
| 102 |
+
formatted_responce = f'\n************* BAAI/bge-large-en-v1.5 ****************\n{responce_bge}\n************** sentence-transformers/gtr-t5-large ***************\n{responce_gtr_t5}'
|
| 103 |
yield formatted_responce
|
| 104 |
|
| 105 |
+
with gr.Blocks() as demo:
|
| 106 |
+
gr.Markdown("# Intelligent Financial Document Q&A App")
|
| 107 |
+
|
| 108 |
+
# About the App
|
| 109 |
+
with gr.Tab("About the App"):
|
| 110 |
+
gr.Markdown(about_lines)
|
| 111 |
|
| 112 |
+
# Document Chatbot
|
| 113 |
+
with gr.Tab("Market Prediction"):
|
| 114 |
+
#demo = gr.ChatInterface(
|
| 115 |
+
gr.ChatInterface(
|
| 116 |
+
respond,
|
| 117 |
+
type="messages",
|
| 118 |
+
autofocus=False #,
|
| 119 |
+
#additional_inputs=[
|
| 120 |
+
# gr.Textbox(value="You are a friendly Chatbot.", label="System message"),
|
| 121 |
+
# gr.Slider(minimum=128, maximum=1024, value=512, step=128, label="Max new tokens"),
|
| 122 |
+
# gr.Slider(minimum=0.1, maximum=1.0, value=0.7, step=0.1, label="Temperature"),
|
| 123 |
+
# gr.Slider(
|
| 124 |
+
# minimum=0.1,
|
| 125 |
+
# maximum=1.0,
|
| 126 |
+
# value=0.95,
|
| 127 |
+
# step=0.05,
|
| 128 |
+
# label="Top-p (nucleus sampling)",
|
| 129 |
+
# ),
|
| 130 |
+
#],
|
| 131 |
+
)
|
| 132 |
|
| 133 |
|
| 134 |
if __name__ == "__main__":
|