Python SDK
Cliente oficial de Claix en Python
Endpoint
pip install claix-aiclaix-ai es el SDK Python tipado de la API de inteligencia documental de Claix (OpenAPI 1.8.2). El import sigue siendo from claix import ClaixClient. Sirve para extracción, Modo agente, documentos persistidos y espacios de conocimiento — o para enchufar el mismo cliente en LangChain, LangGraph, CrewAI y LlamaIndex.
Requiere Python ≥ 3.10. La autenticación es la misma API key que REST, MCP y A2A: cabecera x-api-key, o variable de entorno CLAIX_API_KEY.
1. Código, paquete y docs relacionadas
- GitHub · Gaelproodoos/claix-python — código, issues y ejemplos
- PyPI · claix-ai — paquete instalable (nombre de import: claix)
- Especificación OpenAPI — contrato HTTP que envuelve el SDK
- Protocolo A2A — superficie JSON-RPC si no usas Python
- Servidor MCP — IDEs y automatizaciones sin un proceso Python
2. Instalación
pip install claix-ai pip install 'claix-ai[langchain]' pip install 'claix-ai[crewai]' pip install 'claix-ai[llamaindex]' pip install 'claix-ai[all]'
El extra base trae httpx y Pydantic v2. Los extras de framework añaden los adapters documentados en esta sección.
3. Autenticación
Recomendado — variable de entorno:
export CLAIX_API_KEY=ck_...
O pasa api_key= a ClaixClient / AsyncClaixClient. El cliente envía x-api-key en cada petición (la API también acepta Bearer). Timeout por defecto 120s, con reintentos en 429, 502, 503, 504 y errores de transporte.
4. Inicio rápido
from claix import ClaixClient
client = ClaixClient() # lee CLAIX_API_KEY
result = client.extract.pdf("invoice.pdf", schema_id="3c7a9f21-4b8e-4d1a-9c6f-2e0d8a5b7c4f")
print(result.data)Cliente asíncrono:
from claix import AsyncClaixClient
async with AsyncClaixClient() as client:
doc = await client.extract.pdf("invoice.pdf", schema_id="...")
answers = await client.context.ask(doc.document_id, ["¿Cuál es el total?"])5. Mapa de métodos (OpenAPI 1.8.2)
| Método SDK | HTTP |
|---|---|
| client.extract.pdf(..., is_agent_mode=False) | POST /api/pdf-json o POST /agent/pdf-json |
| client.extract.excel(...) | POST /api/excel-json o POST /agent/excel-json |
| client.extract.document(...) | POST /api/doc-json o POST /agent/doc-json |
| client.extract.image(...) | POST /api/img-json o POST /agent/img-json |
| client.extract.text(content, schema_id, ...) | POST /api/txt-json o POST /agent/txt-json |
| client.extract.json_to_excel(schema_id=..., data=...) | POST /api/json-excel |
| client.context.get(document_id) | GET /get-document/{id} |
| client.context.ask(document_id, questions) | POST /document-context/{id} (máx. 5 × 400 caracteres) |
| client.context.delete(document_id) | DELETE /delete-document/{id} |
| client.spaces.create(name) | POST /create-space |
| client.spaces.ask(space_id, questions) | POST /space-context/{id} |
| client.spaces.delete(space_id) | DELETE /delete-space/{id} |
| client.schemas.list() | GET /api/schemas |
| client.schemas.create(...) | POST /api/create-schema |
| client.schemas.delete(schema_id) | POST /api/delete-schema |
ia_response en las consultas a documento y espacio es list[str | None] para que el orquestador ramifique con null determinista cuando falta evidencia.
6. Errores
Todos heredan de ClaixError y exponen status_code más el payload {error, detalle}: ClaixAuthenticationError (401), ClaixNotFoundError (404), ClaixValidationError (400/413/422), ClaixRateLimitError (429), ClaixTimeoutError, ClaixConnectionError, ClaixAPIError (5xx).