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__":
|