No description
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jairodaniel-17 ee43dd1210 add test
2025-12-15 00:32:14 -05:00
.github/workflows add test 2025-12-15 00:32:14 -05:00
examples add test 2025-12-15 00:32:14 -05:00
src/rustkissvdb add test 2025-12-15 00:32:14 -05:00
tests add test 2025-12-15 00:32:14 -05:00
.env.example SDK RustKissVDB 2025-12-14 22:07:10 -05:00
.gitignore SDK RustKissVDB 2025-12-14 22:07:10 -05:00
.python-version SDK RustKissVDB 2025-12-14 22:07:10 -05:00
pyproject.toml SDK RustKissVDB 2025-12-14 22:07:10 -05:00
README.md add test 2025-12-15 00:32:14 -05:00
uv.lock SDK RustKissVDB 2025-12-14 22:07:10 -05:00

RAG-client-py

SDK Python oficial para RustKissVDB + ejemplos de referencia (chat RAG + ingestión de PDF).

Instalación

uv pip install -e .
# o
pip install -e .

Extras para las demos (PyMuPDF):

pip install -e .[rag]

Configuración

Copia .env.example.env y ajusta:

RUSTKISS_URL=http://127.0.0.1:9917
RUSTKISS_API_KEY=dev
VDB_COLLECTION=docs_demo
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_EMBED_MODEL=embeddinggemma:300m
OLLAMA_CHAT_MODEL=gemma3:4b

El SDK también expone Config.from_env() para cargar estas variables automáticamente.

Variables soportadas:

Variable Descripción
RUSTKISS_URL / VDB_BASE_URL Base URL del API (http://127.0.0.1:9917).
RUSTKISS_API_KEY / API_KEY Token Authorization: Bearer.
RUSTKISS_TIMEOUT Timeout en segundos (default 30).
PORT_RUST_KISS_VDB Puerto fallback si no defines URL.
VDB_COLLECTION Colección por defecto para los ejemplos.

Uso básico

from rustkissvdb import Client, Config

cfg = Config.from_env()
with Client(cfg.base_url, api_key=cfg.api_key, timeout=cfg.timeout) as client:
    client.state.put("foo", {"value": 1})
    hits = client.vector.search("docs", [0.1, 0.2], k=3, include_meta=True)
    collections = client.vector.list()
    info = client.vector.info(collections[0]["collection"])
    client.doc.put("tickets", "tk_1", {"title": "Bug"})
    client.sql.execute("CREATE TABLE IF NOT EXISTS notes(id INTEGER PRIMARY KEY, body TEXT)")

Ejemplos

  • examples/chat_rag_pdf.py: CLI de chat que almacena memoria en RustKissVDB y usa Ollama para embeddings/chat.
  • examples/ingest_pdf_to_vdb.py: chunk + embed de un PDF y lo sube a la colección vectorial.
  • examples/vector_list_info.py: script corto para listar colecciones y mostrar GET /v1/vector/{collection}.

Ambos se apoyan en el SDK (rustkissvdb.Client) y usan las variables .env.

Scripts legacy

Los scripts originales fueron migrados a examples/. El paquete exporta:

  • Client (client.state, client.vector, client.doc, client.sql, client.stream)
  • Config (Config.from_env())
  • RustKissVDBError

Consulta docs/SDK_PYTHON.md para más detalles.