NavyDevilDoc commited on
Commit
73ee2f4
·
verified ·
1 Parent(s): c23afd4

Update src/rag_engine.py

Browse files
Files changed (1) hide show
  1. src/rag_engine.py +14 -4
src/rag_engine.py CHANGED
@@ -123,8 +123,12 @@ def search_knowledge_base(query: str, username: str, index_name: str, embed_mode
123
  logger.error(f"Search failed: {e}")
124
  return []
125
 
126
- def process_and_add_text(text: str, source_name: str, username: str, index_name: str) -> Tuple[bool, str]:
 
 
 
127
  if not PINECONE_KEY or not index_name: return False, "Pinecone Configuration Missing."
 
128
  try:
129
  pm = PineconeManager(PINECONE_KEY)
130
 
@@ -135,12 +139,18 @@ def process_and_add_text(text: str, source_name: str, username: str, index_name:
135
  user_docs_dir = os.path.join(UPLOAD_DIR, username)
136
  os.makedirs(user_docs_dir, exist_ok=True)
137
  backup_path = os.path.join(user_docs_dir, source_name)
 
138
  with open(backup_path, "w", encoding='utf-8') as f:
139
  f.write(text)
140
 
141
- # 3. UPLOAD
142
- emb_fn = get_embedding_func()
143
- doc = Document(page_content=text, metadata={"source": source_name, "strategy": "flattened", "file_type": "generated"})
 
 
 
 
 
144
  vstore = pm.get_vectorstore(index_name, emb_fn, namespace=username)
145
  vstore.add_documents([doc], ids=[f"{source_name}_0"])
146
 
 
123
  logger.error(f"Search failed: {e}")
124
  return []
125
 
126
+ def process_and_add_text(text: str, source_name: str, username: str, index_name: str, embed_model_name: str = None) -> Tuple[bool, str]:
127
+ """
128
+ Ingests raw text with a specific embedding model.
129
+ """
130
  if not PINECONE_KEY or not index_name: return False, "Pinecone Configuration Missing."
131
+
132
  try:
133
  pm = PineconeManager(PINECONE_KEY)
134
 
 
139
  user_docs_dir = os.path.join(UPLOAD_DIR, username)
140
  os.makedirs(user_docs_dir, exist_ok=True)
141
  backup_path = os.path.join(user_docs_dir, source_name)
142
+
143
  with open(backup_path, "w", encoding='utf-8') as f:
144
  f.write(text)
145
 
146
+ # 3. UPLOAD (The Fix: Use the passed model name)
147
+ emb_fn = get_embedding_func(embed_model_name)
148
+
149
+ doc = Document(
150
+ page_content=text,
151
+ metadata={"source": source_name, "strategy": "flattened", "file_type": "generated"}
152
+ )
153
+
154
  vstore = pm.get_vectorstore(index_name, emb_fn, namespace=username)
155
  vstore.add_documents([doc], ids=[f"{source_name}_0"])
156