Skip to main content

Store (store())

Upsert embedded chunks into a vector database. The collection is created automatically if it does not exist.
from ragrails import RagRails

rag = RagRails()

result = rag.store(
    embedded_chunks=embed_result.items,  # list of chunk dicts with "embedding" field
    vector_db="qdrant",
    collection="docs",
    url="http://localhost:6333",
    batch_size=64,
)

result.inputs      # chunks passed in
result.stored      # chunks upserted
result.failed      # failed chunks
result.provider    # vector DB provider
result.collection  # collection name
result.errors      # list of error dicts

Parameters

ParameterDefaultDescription
embedded_chunksrequiredChunk dicts with id, text, metadata, and embedding
vector_db"qdrant""qdrant", "pinecone", or "weaviate"
collectionNoneCollection, index, or class name
urlNoneVector DB URL (Qdrant / Weaviate)
batch_size64Chunks per upsert request
ensure_collectionTrueCreate collection if it does not exist
optionsNoneProvider-specific options dict

Edit (edit())

Re-embed and replace stored chunks by ID. Pass the updated chunk dicts with the same IDs.
edit_result = rag.edit(
    chunks=[
        {
            "id": "chunk-id",
            "text": "Updated chunk text.",
            "source": "files/guide.pdf",
            "metadata": {"title": "Guide"},
        }
    ],
    embedder=rag.embedder(provider="voyage", model="voyage-3"),
    vector_db="qdrant",
    collection="docs",
    url="http://localhost:6333",
)

edit_result.requested  # chunks submitted
edit_result.edited     # chunks updated
edit_result.failed     # failed chunks

Delete (delete())

Delete chunks by ID.
delete_result = rag.delete(
    ids=["chunk-id-1", "chunk-id-2"],
    vector_db="qdrant",
    collection="docs",
    url="http://localhost:6333",
)

delete_result.requested  # IDs submitted
delete_result.deleted    # IDs deleted
delete_result.failed     # failed IDs

Supported databases

DatabaseExtraNotes
Qdrantragrails[qdrant]Local or cloud. Requires url
Pineconeragrails[pinecone]Cloud. Uses PINECONE_API_KEY
Weaviateragrails[weaviate]Local or cloud. Requires url