Spaces:
Sleeping
Sleeping
Commit
·
df5eb6f
1
Parent(s):
55067b7
FIX: Add missing search_documents method to LanceDBService - resolves enhanced search errors
Browse files- lancedb_service.py +31 -0
lancedb_service.py
CHANGED
|
@@ -409,6 +409,37 @@ class LanceDBService:
|
|
| 409 |
logger.error(f"❌ Error deleting document: {e}")
|
| 410 |
return False
|
| 411 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 412 |
async def search_all_knowledge_bases(self, query: str, k: int = 4):
|
| 413 |
"""Search across all knowledge bases"""
|
| 414 |
try:
|
|
|
|
| 409 |
logger.error(f"❌ Error deleting document: {e}")
|
| 410 |
return False
|
| 411 |
|
| 412 |
+
async def search_documents(self, query: str, limit: int = 5, knowledge_base: str = None):
|
| 413 |
+
"""Search for documents with specific query and limit"""
|
| 414 |
+
try:
|
| 415 |
+
query_embedding = self.embedding_model.embed_query(query)
|
| 416 |
+
|
| 417 |
+
tbl = self.db.open_table("documents")
|
| 418 |
+
|
| 419 |
+
# Build search query
|
| 420 |
+
search_query = tbl.search(query_embedding).limit(limit)
|
| 421 |
+
|
| 422 |
+
# Add knowledge base filter if specified
|
| 423 |
+
if knowledge_base:
|
| 424 |
+
search_query = search_query.where(f"knowledge_base = '{knowledge_base}'")
|
| 425 |
+
|
| 426 |
+
results = search_query.to_list()
|
| 427 |
+
|
| 428 |
+
docs = []
|
| 429 |
+
for result in results:
|
| 430 |
+
docs.append({
|
| 431 |
+
'content': result['content'],
|
| 432 |
+
'metadata': json.loads(result['metadata']) if result['metadata'] else {},
|
| 433 |
+
'score': result.get('_distance', 0.0),
|
| 434 |
+
'knowledge_base': result.get('knowledge_base', 'unknown')
|
| 435 |
+
})
|
| 436 |
+
|
| 437 |
+
return docs
|
| 438 |
+
|
| 439 |
+
except Exception as e:
|
| 440 |
+
logger.error(f"❌ Error searching documents: {e}")
|
| 441 |
+
return []
|
| 442 |
+
|
| 443 |
async def search_all_knowledge_bases(self, query: str, k: int = 4):
|
| 444 |
"""Search across all knowledge bases"""
|
| 445 |
try:
|