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)

Дополнительная документация#