Spaces:
Sleeping
Sleeping
Update src/rag_engine.py
Browse files- 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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
|