
open source version xtrace sdk
एन्क्रिप्टेड वेक्टर डेटाबेस।
आपका डेटा कभी भी प्लेनटेक्स्ट में आपकी मशीन से बाहर नहीं जाता।
बाजार में हर वेक्टर डेटाबेस आपको अपना डेटा प्लेनटेक्स्ट में तीसरे पक्ष को देने की आवश्यकता होती है। XTrace ऐसा नहीं करता। आपके दस्तावेज़ और एम्बेडिंग वेक्टर कुछ भी प्रेषित होने से पहले आपकी मशीन पर एन्क्रिप्ट किए जाते हैं। सर्वर सिफरटेक्स्ट पर स्टोर और खोज करता है — यह प्लेनटेक्स्ट को कभी न देखते हुए निकटतम-पड़ोसी परिणामों की गणना करता है। आपका डेटा खोज के दौरान भी आपका ही रहता है।
SDK में दो मॉड्यूल हैं:
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 आपकी मशीन पर सब कुछ एन्क्रिप्ट करता है इससे पहले कि कुछ भी नेटवर्क को छूए। आपकी सामग्री आपकी पसंद के मॉडल के साथ स्थानीय रूप से एम्बेडेड होती है, और परिणामी वेक्टर और कच्चा टेक्स्ट दोनों क्रमशः Paillier होमोमोर्फिक एन्क्रिप्शन और AES-256 के साथ एन्क्रिप्ट किए जाते हैं। सर्वर केवल सिफरटेक्स्ट पर ही स्टोर और संचालित करता है। जब आप खोज करते हैं, तो आपकी क्वेरी उसी तरह एन्क्रिप्ट की जाती है। गुप्त कुंजी कभी भी आपके वातावरण से बाहर नहीं जाती है, और सर्वर कभी भी प्लेनटेक्स्ट का एक भी बाइट नहीं देखता है। एन्क्रिप्शन सत्यापित करें
[!TIP] 🚀 API कुंजी और org ID प्राप्त करने के लिए app.xtrace.ai पर एक मुफ्त खाता बनाएं। मुफ्त स्तर दर-सीमित है लेकिन पूरी तरह कार्यात्मक है।
# Base SDK
uv pip install xtrace-ai-sdk
# With local embedding support (Sentence Transformers)
uv pip install "xtrace-ai-sdk[embedding]"
Python 3.11+ की आवश्यकता है।
पूर्ण दस्तावेज़ीकरण docs.xtrace.ai पर, या स्थानीय रूप से बनाएं:
cd docs && make html
शून्य से खोज परिणामों तक पहुंचने का सबसे तेज़ तरीका:
uv pip install "xtrace-ai-sdk[cli]"
xtrace init # set up credentials + encryption keys
xtrace kb create my-first-kb # create a knowledge base (note the KB ID)
xtrace xvec load ./my-docs/ <KB_ID> # encrypt and upload documents
xtrace xvec retrieve <KB_ID> "your query" # search
पूर्ण async उदाहरण:
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())
यह रेपो मौजूद है ताकि आप स्वयं एन्क्रिप्शन सत्यापित कर सकें। परीक्षण पूरी तरह से ऑफलाइन चलते हैं और किसी XTrace खाते की आवश्यकता नहीं होती है:
uv pip install -e ".[dev]"
pytest tests/x_vec/
test_paillier_encryption.py और test_paillier_lookup_encryption.py सिफरटेक्स्ट पर एन्क्रिप्ट/डिक्रिप्ट राउंड-ट्रिप और होमोमोर्फिक जोड़ की पुष्टि करते हैं — वही प्रिमिटिव्स जो SDK XTrace को डेटा भेजते समय उपयोग करता है। गुप्त कुंजी कभी आपकी मशीन नहीं छोड़ती।
हम योगदान का स्वागत करते हैं। दिशानिर्देशों के लिए CONTRIBUTING.md देखें।
Apache 2.0 — LICENSE देखें।