This commit is contained in:
youhuanghe
2026-03-16 06:39:29 +00:00
parent 4355f0fa78
commit 254a13bba3
6 changed files with 45 additions and 39 deletions
+1 -3
View File
@@ -562,9 +562,7 @@ class RuntimeConnectionHandler(handler.Handler):
limit = data.get('limit', 20) limit = data.get('limit', 20)
offset = data.get('offset', 0) offset = data.get('offset', 0)
try: try:
items, total = await self.ap.rag_runtime_service.vector_list( items, total = await self.ap.rag_runtime_service.vector_list(collection_id, filters, limit, offset)
collection_id, filters, limit, offset
)
return handler.ActionResponse.success(data={'items': items, 'total': total}) return handler.ActionResponse.success(data={'items': items, 'total': total})
except Exception as e: except Exception as e:
return _make_rag_error_response(e, 'VectorStoreError', collection_id=collection_id) return _make_rag_error_response(e, 'VectorStoreError', collection_id=collection_id)
+7 -5
View File
@@ -244,11 +244,13 @@ class ChromaVectorDatabase(VectorDatabase):
items = [] items = []
for i, vid in enumerate(ids): for i, vid in enumerate(ids):
items.append({ items.append(
'id': vid, {
'document': documents[i] if i < len(documents) else None, 'id': vid,
'metadata': metadatas[i] if i < len(metadatas) else {}, 'document': documents[i] if i < len(documents) else None,
}) 'metadata': metadatas[i] if i < len(metadatas) else {},
}
)
# Chroma col.count() gives total in collection; filtered count not available # Chroma col.count() gives total in collection; filtered count not available
total = await asyncio.to_thread(col.count) if not filter else -1 total = await asyncio.to_thread(col.count) if not filter else -1
+11 -9
View File
@@ -368,15 +368,17 @@ class MilvusVectorDatabase(VectorDatabase):
items = [] items = []
for row in results: for row in results:
items.append({ items.append(
'id': row.get('id', ''), {
'document': row.get('text'), 'id': row.get('id', ''),
'metadata': { 'document': row.get('text'),
'text': row.get('text', ''), 'metadata': {
'file_id': row.get('file_id', ''), 'text': row.get('text', ''),
'uuid': row.get('chunk_uuid', ''), 'file_id': row.get('file_id', ''),
}, 'uuid': row.get('chunk_uuid', ''),
}) },
}
)
# Milvus query with count(*) # Milvus query with count(*)
total = -1 total = -1
+12 -12
View File
@@ -338,9 +338,7 @@ class PgVectorDatabase(VectorDatabase):
) )
count_stmt = ( count_stmt = (
select(func.count()) select(func.count()).select_from(PgVectorEntry).filter(PgVectorEntry.collection == collection)
.select_from(PgVectorEntry)
.filter(PgVectorEntry.collection == collection)
) )
if filter: if filter:
@@ -356,15 +354,17 @@ class PgVectorDatabase(VectorDatabase):
items = [] items = []
for row in rows: for row in rows:
items.append({ items.append(
'id': row.id, {
'document': row.text or '', 'id': row.id,
'metadata': { 'document': row.text or '',
'text': row.text or '', 'metadata': {
'file_id': row.file_id or '', 'text': row.text or '',
'uuid': row.chunk_uuid or '', 'file_id': row.file_id or '',
}, 'uuid': row.chunk_uuid or '',
}) },
}
)
return items, total return items, total
except Exception as e: except Exception as e:
+7 -5
View File
@@ -196,11 +196,13 @@ class QdrantVectorDatabase(VectorDatabase):
break break
# Re-fetch payload if we skipped it during the skip phase # Re-fetch payload if we skipped it during the skip phase
payload = point.payload or {} payload = point.payload or {}
collected.append({ collected.append(
'id': str(point.id), {
'document': payload.get('text') or payload.get('document'), 'id': str(point.id),
'metadata': payload, 'document': payload.get('text') or payload.get('document'),
}) 'metadata': payload,
}
)
remaining_to_collect -= 1 remaining_to_collect -= 1
if next_cursor is None: if next_cursor is None:
+7 -5
View File
@@ -373,11 +373,13 @@ class SeekDBVectorDatabase(VectorDatabase):
items = [] items = []
for i, vid in enumerate(ids): for i, vid in enumerate(ids):
items.append({ items.append(
'id': vid, {
'document': documents[i] if i < len(documents) else None, 'id': vid,
'metadata': metadatas[i] if i < len(metadatas) else {}, 'document': documents[i] if i < len(documents) else None,
}) 'metadata': metadatas[i] if i < len(metadatas) else {},
}
)
total = await asyncio.to_thread(coll.count) if not filter else -1 total = await asyncio.to_thread(coll.count) if not filter else -1
return items, total return items, total