ababio commited on
Commit
63614ef
1 Parent(s): 3a28d5f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -9
app.py CHANGED
@@ -1,12 +1,15 @@
1
  import os
2
- from getpass import getpass
3
  import streamlit as st
4
  from dotenv import load_dotenv
 
5
  from llama_index.embeddings import OpenAIEmbedding
6
  from llama_index.ingestion import IngestionPipeline
7
  from llama_index.query_engine import RetrieverQueryEngine
8
- from llama_index.core.memory import ConversationBufferMemory
 
9
  from llama_index.chains import ConversationalRetrievalChain
 
 
10
  from llama_index.prompts import user_template, bot_template, css
11
 
12
  # Load environment variables
@@ -15,14 +18,15 @@ pinecone_api_key = os.getenv("PINECONE_API_KEY")
15
  openai_api_key = os.getenv("OPENAI_API_KEY")
16
  index_name = os.getenv("INDEX_NAME")
17
 
18
- # Initialize OpenAI and Pinecone clients
19
- openai.api_key = openai_api_key
 
 
20
  pinecone_client = PineconeClient(api_key=pinecone_api_key)
21
  pinecone_index = pinecone_client.Index(index_name)
22
- vector_store = VectorStore(pinecone_index=pinecone_index)
23
 
24
- # Initialize LlamaIndex components
25
- embed_model = OpenAIEmbedding(api_key=openai_api_key)
26
  pipeline = IngestionPipeline(
27
  transformations=[
28
  SemanticSplitterNodeParser(
@@ -33,12 +37,13 @@ pipeline = IngestionPipeline(
33
  embed_model,
34
  ],
35
  )
 
 
36
  vector_index = VectorStoreIndex.from_vector_store(vector_store=vector_store)
37
  retriever = VectorIndexRetriever(index=vector_index, similarity_top_k=5)
38
  query_engine = RetrieverQueryEngine(retriever=retriever)
39
 
40
-
41
-
42
  def handle_userinput(user_question):
43
  response = st.session_state.conversation({'question': user_question})
44
  st.session_state.chat_history = response['chat_history']
@@ -49,6 +54,7 @@ def handle_userinput(user_question):
49
  else:
50
  st.write(bot_template.replace("{{MSG}}", message.content), unsafe_allow_html=True)
51
 
 
52
  def main():
53
  load_dotenv()
54
  st.set_page_config(page_title="Chat with Annual Reports", page_icon=":books:")
 
1
  import os
 
2
  import streamlit as st
3
  from dotenv import load_dotenv
4
+ from pinecone import PineconeClient
5
  from llama_index.embeddings import OpenAIEmbedding
6
  from llama_index.ingestion import IngestionPipeline
7
  from llama_index.query_engine import RetrieverQueryEngine
8
+ from llama_index.vector_stores import PineconeVectorStore
9
+ from llama_index.memory import ConversationBufferMemory
10
  from llama_index.chains import ConversationalRetrievalChain
11
+ from llama_index.node_parser import SemanticSplitterNodeParser
12
+ from llama_index.retrievers import VectorIndexRetriever
13
  from llama_index.prompts import user_template, bot_template, css
14
 
15
  # Load environment variables
 
18
  openai_api_key = os.getenv("OPENAI_API_KEY")
19
  index_name = os.getenv("INDEX_NAME")
20
 
21
+ # Initialize OpenAI embedding model
22
+ embed_model = OpenAIEmbedding(api_key=openai_api_key)
23
+
24
+ # Initialize connection to Pinecone
25
  pinecone_client = PineconeClient(api_key=pinecone_api_key)
26
  pinecone_index = pinecone_client.Index(index_name)
27
+ vector_store = PineconeVectorStore(pinecone_index=pinecone_index)
28
 
29
+ # Define the initial pipeline
 
30
  pipeline = IngestionPipeline(
31
  transformations=[
32
  SemanticSplitterNodeParser(
 
37
  embed_model,
38
  ],
39
  )
40
+
41
+ # Initialize LlamaIndex components
42
  vector_index = VectorStoreIndex.from_vector_store(vector_store=vector_store)
43
  retriever = VectorIndexRetriever(index=vector_index, similarity_top_k=5)
44
  query_engine = RetrieverQueryEngine(retriever=retriever)
45
 
46
+ # Function to handle user input and return the query response
 
47
  def handle_userinput(user_question):
48
  response = st.session_state.conversation({'question': user_question})
49
  st.session_state.chat_history = response['chat_history']
 
54
  else:
55
  st.write(bot_template.replace("{{MSG}}", message.content), unsafe_allow_html=True)
56
 
57
+ # Main function to run the Streamlit app
58
  def main():
59
  load_dotenv()
60
  st.set_page_config(page_title="Chat with Annual Reports", page_icon=":books:")