
Open-Source-Version xtrace SDK
Die verschlüsselte Vektordatenbank.
Ihre Daten verlassen Ihren Rechner niemals im Klartext.
Jede Vektordatenbank auf dem Markt verlangt, dass Sie Ihre Daten im Klartext an einen Dritten übergeben. XTrace nicht. Ihre Dokumente und Embedding-Vektoren werden auf Ihrem Rechner verschlüsselt, bevor irgendetwas übertragen wird. Der Server speichert und durchsucht Chiffretexte – er berechnet Ergebnisse des nächsten Nachbarn, ohne jemals den Klartext zu sehen. Ihre Daten bleiben Ihr Eigentum, selbst während der Suche.
Das SDK hat zwei Module:
Your Machine XTrace Server
┌────────────────────────┐ ┌─────────────────────────┐
│ │ │ │
│ Documents + Queries │ │ Stores only ciphertext │
│ │ │ │ │
│ ▼ │ │ Searches over │
│ Embed + Encrypt │── ciphertext ─▶│ encrypted vectors │
│ (keys stay here) │ │ (never decrypts) │
│ ▲ │ │ │
│ │ │◀─ ciphertext ──│ Returns encrypted │
│ Decrypt results │ │ results │
│ │ │ │
└────────────────────────┘ └─────────────────────────┘
Secret key never leaves Zero knowledge
XTrace verschlüsselt alles auf Ihrem Rechner, bevor irgendetwas das Netzwerk berührt. Ihre Inhalte werden lokal mit einem von Ihnen gewählten Modell embedded, und sowohl die resultierenden Vektoren als auch der Rohtext werden mit Paillier homomorpher Verschlüsselung bzw. AES-256 verschlüsselt. Der Server speichert und verarbeitet ausschließlich Chiffretexte. Wenn Sie suchen, wird Ihre Abfrage auf die gleiche Weise verschlüsselt. Der geheime Schlüssel verlässt niemals Ihre Umgebung, und der Server sieht niemals ein einziges Byte Klartext. Überprüfen Sie die Verschlüsselung
[!TIP] 🚀 Erstellen Sie ein kostenloses Konto unter app.xtrace.ai , um Ihren API-Schlüssel und Ihre Organisations-ID zu erhalten. Der kostenlose Tarif ist ratenbegrenzt, aber voll funktionsfähig.
# Basis-SDK
uv pip install xtrace-ai-sdk
# Mit lokaler Embedding-Unterstützung (Sentence Transformers)
uv pip install "xtrace-ai-sdk[embedding]"
Erfordert Python 3.11+.
Vollständige Dokumentation unter docs.xtrace.ai oder lokal erstellen:
cd docs && make html
Der schnellste Weg von Null zu Suchergebnissen:
uv pip install "xtrace-ai-sdk[cli]"
xtrace init # Anmeldeinformationen + Verschlüsselungsschlüssel einrichten
xtrace kb create my-first-kb # Wissensdatenbank erstellen (KB-Id notieren)
xtrace xvec load ./my-docs/ <KB_ID> # Dokumente verschlüsseln und hochladen
xtrace xvec retrieve <KB_ID> "Ihre Abfrage" # Suchen
Vollständiges asynchrones Beispiel:
import asyncio
from xtrace_sdk.x_vec.utils.execution_context import ExecutionContext
from xtrace_sdk.x_vec.crypto.key_provider import PassphraseKeyProvider
from xtrace_sdk.x_vec.data_loaders.loader import DataLoader
from xtrace_sdk.x_vec.inference.embedding import Embedding
from xtrace_sdk.integrations.xtrace import XTraceIntegration
from xtrace_sdk.x_vec.retrievers.retriever import Retriever
# One-time setup: generate your private cryptographic state and save it
provider = PassphraseKeyProvider("your-secret-passphrase")
ctx = ExecutionContext.create(
key_provider=provider,
homomorphic_client_type="paillier_lookup",
embedding_length=512,
key_len=1024,
path="data/exec_context",
)
embed = Embedding("sentence_transformer", "mixedbread-ai/mxbai-embed-large-v1", 512)
xtrace = XTraceIntegration(org_id="your_org_id", api_key="your_api_key")
async def main():
# Encrypt and store documents — content and vectors never leave in plaintext
loader = DataLoader(ctx, xtrace)
docs = [{"chunk_content": "XTrace encrypts your embeddings.", "meta_data": {}}]
vectors = [await embed.bin_embed(d["chunk_content"]) for d in docs]
index, db = await loader.load_data_from_memory(docs, vectors)
await loader.dump_db(db, index=index, kb_id="your_kb_id")
# Query with an encrypted vector — the server never sees the query in plaintext
retriever = Retriever(ctx, xtrace)
vec = await embed.bin_embed("How does XTrace protect my data?")
ids = await retriever.nn_search_for_ids(vec, k=3, kb_id="your_kb_id")
results = await retriever.retrieve_and_decrypt(ids, kb_id="your_kb_id")
for r in results:
print(r["chunk_content"])
asyncio.run(main())
Dieses Repository existiert, damit Sie die Verschlüsselung selbst überprüfen können. Die Tests laufen vollständig offline und erfordern kein XTrace-Konto:
uv pip install -e ".[dev]"
pytest tests/x_vec/
test_paillier_encryption.py und test_paillier_lookup_encryption.py überprüfen die Verschlüsselungs-/Entschlüsselungs-Roundtrips und die homomorphe Addition von Chiffretexten – dieselben Grundbausteine, die das SDK beim Senden von Daten an XTrace verwendet. Der geheime Schlüssel verlässt niemals Ihren Rechner.
Wir begrüßen Beiträge. Siehe CONTRIBUTING.md für Richtlinien.
Apache 2.0 – siehe LICENSE.