
versão open source do xtrace sdk
O banco de dados vetorial criptografado.
Seus dados nunca saem da sua máquina em texto simples.
Todo banco de dados vetorial no mercado exige que você entregue seus dados a terceiros em texto simples. O XTrace não. Seus documentos e vetores de embedding são criptografados na sua máquina antes de qualquer coisa ser transmitida. O servidor armazena e pesquisa sobre textos cifrados — ele calcula resultados de vizinhos mais próximos sem nunca ver o texto simples. Seus dados permanecem seus, mesmo durante a pesquisa.
O SDK possui dois módulos:
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
O XTrace criptografa tudo na sua máquina antes que qualquer coisa toque a rede. Seu conteúdo é embedado localmente com um modelo de sua escolha, e tanto os vetores resultantes quanto o texto bruto são criptografados com criptografia homomórfica Paillier e AES-256, respectivamente. O servidor armazena e opera apenas sobre textos cifrados. Quando você pesquisa, sua consulta é criptografada da mesma forma. A chave secreta nunca sai do seu ambiente, e o servidor nunca vê um único byte de texto simples. Verifique a criptografia
[!TIP] 🚀 Crie uma conta gratuita em app.xtrace.ai para obter sua chave de API e ID de organização. O nível gratuito tem limite de taxa, mas é totalmente funcional.
# Base SDK
uv pip install xtrace-ai-sdk
# Com suporte a embedding local (Sentence Transformers)
uv pip install "xtrace-ai-sdk[embedding]"
Requer Python 3.11+.
Documentação completa em docs.xtrace.ai, ou construa localmente:
cd docs && make html
A maneira mais rápida de ir do zero aos resultados de pesquisa:
uv pip install "xtrace-ai-sdk[cli]"
xtrace init # configurar credenciais + chaves de criptografia
xtrace kb create my-first-kb # criar uma base de conhecimento (anote o ID da KB)
xtrace xvec load ./my-docs/ <KB_ID> # criptografar e enviar documentos
xtrace xvec retrieve <KB_ID> "sua consulta" # pesquisar
Exemplo completo assíncrono:
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())
Este repositório existe para que você mesmo possa verificar a criptografia. Os testes rodam totalmente offline e não requerem conta XTrace:
uv pip install -e ".[dev]"
pytest tests/x_vec/
test_paillier_encryption.py e test_paillier_lookup_encryption.py verificam a ida e volta de criptografia/descriptografia e a adição homomórfica em textos cifrados — as mesmas primitivas que o SDK usa ao enviar dados para o XTrace. A chave secreta nunca sai da sua máquina.
Aceitamos contribuições. Consulte CONTRIBUTING.md para diretrizes.
Apache 2.0 — veja LICENSE.