shubhendu-ghosh commited on
Commit
ab0ba8e
·
verified ·
1 Parent(s): 83e37fa

Update vector_handler.py

Browse files
Files changed (1) hide show
  1. vector_handler.py +16 -10
vector_handler.py CHANGED
@@ -1,37 +1,43 @@
1
- import pinecone
2
- import os
3
  import time
4
  import threading
 
5
  from langchain_google_genai import GoogleGenerativeAIEmbeddings
6
  from langchain.vectorstores.pinecone import Pinecone as LangchainPinecone
7
 
8
- pinecone.init(api_key=os.getenv("PINECONE_API_KEY"), environment=os.getenv("PINECONE_ENV"))
 
9
 
 
10
  embedding_model = GoogleGenerativeAIEmbeddings(model="models/embedding-001")
11
 
 
12
  def create_vector_store(session_id, texts):
13
  index_name = session_id
14
- if index_name not in pinecone.list_indexes():
15
- pinecone.create_index(index_name, dimension=768)
16
- index = pinecone.Index(index_name)
 
 
 
 
17
  vectorstore = LangchainPinecone.from_texts(texts, embedding_model, index_name=index_name)
18
 
19
-
20
  def query_vector_store(session_id, question):
21
  index_name = session_id
22
  vectorstore = LangchainPinecone.from_existing_index(index_name, embedding_model)
23
- chain = get_chain()
24
  docs = vectorstore.similarity_search(question)
25
  result = chain({"input_documents": docs, "question": question}, return_only_outputs=True)
26
  return result["output_text"]
27
 
28
-
29
  def delete_vector_store(index_name, delay=0):
30
  def delayed_delete():
31
  if delay:
32
  time.sleep(delay)
33
  try:
34
- pinecone.delete_index(index_name)
35
  print(f"Deleted index {index_name}")
36
  except Exception as e:
37
  print(f"Error deleting index {index_name}: {e}")
 
 
 
1
  import time
2
  import threading
3
+ from pinecone import Pinecone, ServerlessSpec
4
  from langchain_google_genai import GoogleGenerativeAIEmbeddings
5
  from langchain.vectorstores.pinecone import Pinecone as LangchainPinecone
6
 
7
+ # Initialize Pinecone client with API key
8
+ pc = Pinecone(api_key="YOUR_API_KEY") # Replace with your actual key or use os.getenv if needed
9
 
10
+ # Initialize embedding model
11
  embedding_model = GoogleGenerativeAIEmbeddings(model="models/embedding-001")
12
 
13
+ # Create vector store (index) using session_id
14
  def create_vector_store(session_id, texts):
15
  index_name = session_id
16
+ if not pc.list_indexes().names or index_name not in pc.list_indexes().names:
17
+ pc.create_index(
18
+ name=index_name,
19
+ dimension=768, # Match your embedding model dimension
20
+ spec=ServerlessSpec(cloud="aws", region="us-east-1")
21
+ )
22
+ time.sleep(5) # Wait for index to be ready
23
  vectorstore = LangchainPinecone.from_texts(texts, embedding_model, index_name=index_name)
24
 
25
+ # Query vector store
26
  def query_vector_store(session_id, question):
27
  index_name = session_id
28
  vectorstore = LangchainPinecone.from_existing_index(index_name, embedding_model)
29
+ chain = get_chain() # Make sure `get_chain` is defined elsewhere
30
  docs = vectorstore.similarity_search(question)
31
  result = chain({"input_documents": docs, "question": question}, return_only_outputs=True)
32
  return result["output_text"]
33
 
34
+ # Delete vector store with optional delay
35
  def delete_vector_store(index_name, delay=0):
36
  def delayed_delete():
37
  if delay:
38
  time.sleep(delay)
39
  try:
40
+ pc.delete_index(index_name)
41
  print(f"Deleted index {index_name}")
42
  except Exception as e:
43
  print(f"Error deleting index {index_name}: {e}")