dsRAG#
dsRAG - механизм поиска для неструктурированных данных. Он особенно хорош при обработке сложных запросов по плотному тексту, такому как финансовые отчеты, юридические документы и академические статьи. dsRAG демонстрирует существенно более высокую точность по сравнению со стандартными базовыми линиями RAG при выполнении задач сложного открытого тестирования вопросов и ответов.
Можно использовать Vector DB коннектор в dsRAG для добавления документов из коллекций и семантического их извлечения.
Пример использования#
from dsrag.database.vector import QdrantVectorDB
import numpy as np
from qdrant_clien import models
db = QdrantVectorDB(kb_id=self.kb_id, url="http://localhost:6334", prefer_grpc=True)
vectors = [np.array([1, 0]), np.array([0, 1])]
# You can use any document loaders available with dsRAG
# We'll use literals for demonstration
documents = [
{
"doc_id": "1",
"chunk_index": 0,
"chunk_header": "Header1",
"chunk_text": "Text1",
},
{
"doc_id": "2",
"chunk_index": 1,
"chunk_header": "Header2",
"chunk_text": "Text2",
},
]
db.add_vectors(vectors, documents)
metadata_filter = models.Filter(
must=[models.FieldCondition(key="doc_id", match=models.MatchValue(value="1"))]
)
db.search(query_vector, top_k=4, metadata_filter=metadata_filter)