singhankur01 commited on
Commit
3b2d26f
·
verified ·
1 Parent(s): 4967cd0

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -10
app.py CHANGED
@@ -82,33 +82,38 @@ def verify_api_key(authorization: str = Header(...)):
82
  raise HTTPException(status_code=403, detail="Invalid or missing API key")
83
 
84
  def create_serverless_index(pc, index_name):
85
- """Create a serverless index for hybrid search"""
86
  existing_indexes = [index.name for index in pc.list_indexes()]
87
 
88
  if index_name not in existing_indexes:
89
  pc.create_index(
90
  name=index_name,
91
- dimension=1024, # multilingual-e5-large dimension
92
- metric="cosine"
 
 
 
 
 
 
93
  )
94
  print(f"✅ Created serverless index: {index_name}")
95
- else:
96
- print(f"📋 Index {index_name} already exists")
97
 
 
98
  return pc.Index(index_name)
99
 
100
  async def embed_with_pinecone_inference(pc, texts, model="multilingual-e5-large"):
101
- """Use Pinecone's hosted multilingual-e5-large model for embeddings"""
102
  try:
103
- # Use Pinecone Inference for embeddings
104
- embeddings = pc.inference.embed(
105
  model=model,
106
  inputs=texts,
107
  parameters={"input_type": "passage"}
108
  )
109
- return [embedding['values'] for embedding in embeddings]
110
  except Exception as e:
111
- print(f"❌ Embedding error: {e}")
112
  raise
113
 
114
  def generate_sparse_vectors(texts):
 
82
  raise HTTPException(status_code=403, detail="Invalid or missing API key")
83
 
84
  def create_serverless_index(pc, index_name):
85
+ """Create a Pinecone serverless index using managed model dimensions."""
86
  existing_indexes = [index.name for index in pc.list_indexes()]
87
 
88
  if index_name not in existing_indexes:
89
  pc.create_index(
90
  name=index_name,
91
+ dimension=1024, # multilingual-e5-large output dimension
92
+ metric="cosine",
93
+ spec={
94
+ "serverless": {
95
+ "cloud": "aws", # or gcp
96
+ "region": "us-west-2"
97
+ }
98
+ }
99
  )
100
  print(f"✅ Created serverless index: {index_name}")
 
 
101
 
102
+ # Return index object
103
  return pc.Index(index_name)
104
 
105
  async def embed_with_pinecone_inference(pc, texts, model="multilingual-e5-large"):
106
+ """Use Pinecone's hosted inference model for embeddings."""
107
  try:
108
+ inference_client = pc.inference
109
+ embeddings = inference_client.embed(
110
  model=model,
111
  inputs=texts,
112
  parameters={"input_type": "passage"}
113
  )
114
+ return [item["values"] for item in embeddings["results"]]
115
  except Exception as e:
116
+ print(f"❌ Pinecone Inference Error: {e}")
117
  raise
118
 
119
  def generate_sparse_vectors(texts):