Sivabalan Thirunavukkarasu commited on
Commit
ea918a1
·
unverified ·
1 Parent(s): 163701b

W4D1 Midterm - Allow context in responses

Browse files
Files changed (1) hide show
  1. app.py +8 -5
app.py CHANGED
@@ -24,6 +24,7 @@ We will load our environment variables here.
24
  """
25
  HF_LLM_ENDPOINT = os.environ["HF_LLM_ENDPOINT"]
26
  HF_TOKEN = os.environ["HF_TOKEN"]
 
27
 
28
  # ---- GLOBAL DECLARATIONS ---- #
29
 
@@ -40,23 +41,24 @@ documents = document_loader.load()
40
  text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=30)
41
  split_documents = text_splitter.split_documents(documents)
42
 
 
43
  openai_embeddings = OpenAIEmbeddings(model="text-embedding-3-small")
44
 
45
- if os.path.exists("./data/vectorstore"):
46
  vectorstore = Qdrant.from_existing_collection(
47
  embeddings=openai_embeddings,
48
  collection_name="airbnb_financials",
49
- path="./data/vectorstore",
50
  batch_size=32,
51
  )
52
  print("Loaded Vectorstore")
53
  else:
54
  print("Indexing Files")
55
- os.makedirs("./data/vectorstore", exist_ok=True)
56
  vectorstore = Qdrant.from_documents(
57
  documents=split_documents,
58
  embedding=openai_embeddings,
59
- path="./data/vectorstore",
60
  collection_name="airbnb_financials",
61
  batch_size=32,
62
  )
@@ -70,7 +72,7 @@ retriever = vectorstore.as_retriever()
70
  """
71
  RAG_PROMPT_TEMPLATE = """\
72
  <|start_header_id|>system<|end_header_id|>
73
- You are a helpful assistant. You answer user questions based on provided context. If you can't answer the question with the provided context, say you don't know. Do not provide relevant context in response unless explicitly asked.<|eot_id|>
74
 
75
  <|start_header_id|>user<|end_header_id|>
76
  User Query:
@@ -144,6 +146,7 @@ async def main(message: cl.Message):
144
  {"query": message.content},
145
  config=RunnableConfig(callbacks=[cl.LangchainCallbackHandler()]),
146
  ):
 
147
  if chunk != "<|eot_id|>":
148
  await msg.stream_token(chunk)
149
 
 
24
  """
25
  HF_LLM_ENDPOINT = os.environ["HF_LLM_ENDPOINT"]
26
  HF_TOKEN = os.environ["HF_TOKEN"]
27
+ VECTOR_STORE_PATH = "./data/vectorstore"
28
 
29
  # ---- GLOBAL DECLARATIONS ---- #
30
 
 
41
  text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=30)
42
  split_documents = text_splitter.split_documents(documents)
43
 
44
+ # Note: Uses OPENAI_API_KEY env variable to make api calls
45
  openai_embeddings = OpenAIEmbeddings(model="text-embedding-3-small")
46
 
47
+ if os.path.exists(VECTOR_STORE_PATH):
48
  vectorstore = Qdrant.from_existing_collection(
49
  embeddings=openai_embeddings,
50
  collection_name="airbnb_financials",
51
+ path=VECTOR_STORE_PATH,
52
  batch_size=32,
53
  )
54
  print("Loaded Vectorstore")
55
  else:
56
  print("Indexing Files")
57
+ os.makedirs(VECTOR_STORE_PATH, exist_ok=True)
58
  vectorstore = Qdrant.from_documents(
59
  documents=split_documents,
60
  embedding=openai_embeddings,
61
+ path=VECTOR_STORE_PATH,
62
  collection_name="airbnb_financials",
63
  batch_size=32,
64
  )
 
72
  """
73
  RAG_PROMPT_TEMPLATE = """\
74
  <|start_header_id|>system<|end_header_id|>
75
+ You are a helpful assistant. You answer user questions based on provided context. If you can't answer the question with the provided context, say you don't know.<|eot_id|>
76
 
77
  <|start_header_id|>user<|end_header_id|>
78
  User Query:
 
146
  {"query": message.content},
147
  config=RunnableConfig(callbacks=[cl.LangchainCallbackHandler()]),
148
  ):
149
+ # Note: Skip printing eot_id token at the end of response. A more elegant solution would be to fix the model's generator config.
150
  if chunk != "<|eot_id|>":
151
  await msg.stream_token(chunk)
152