Runtime Python
para AI-Protocol.
Cliente AI asíncrono orientado a protocolo (v1.0.0). Ruta: manifiesto → Pipeline → httpx. Tipos Pydantic v2, 13 códigos V2, extras pip y resiliencia opt-in. Python 3.10+.
pip install ai-lib-python Características clave
Códigos de error V2 y extras de capacidad
13 códigos de error estándar V2. Extras por capacidad: 8 opcionales más un extra full.
Diseño async-first
async/await nativo de extremo a extremo. Transporte httpx con pool de conexiones. CancellableStream para terminar streams con gracia.
Tipos Pydantic v2
Tipado completo con validación Pydantic v2. ProtocolManifest, Message, ContentBlock y StreamingEvent son type-safe con validación en runtime.
Ejecutor resiliente
ResilientExecutor combina backpressure, límite de tasa, circuit breaker y reintentos con backoff exponencial. PreflightChecker filtra peticiones antes de ejecutar.
Enrutamiento de modelos
ModelManager + ModelArray para selección inteligente. Estrategias: round-robin, ponderada, por coste y por calidad.
Telemetría de producción
MetricsCollector con exportación Prometheus. Trazas OpenTelemetry. Logging estructurado, salud y feedback de usuario.
Salida estructurada
Modo JSON, generación de schema desde modelos Pydantic y validación de salida. Guardrails con filtros de contenido y detección de PII.
Pythonic e intuitivo
Una API limpia y pythonic. Crea un cliente desde un identificador de modelo, construye peticiones con un builder fluido e itera eventos de streaming unificados.
El mismo código funciona con todos los proveedores. Cambia de OpenAI a Anthropic o DeepSeek con un solo string: el manifiesto gestiona el resto.
from ai_lib_python import AiClient
# Works with ANY provider
client = await AiClient.create(
"anthropic/claude-3-5-sonnet"
)
# Streaming chat
async for event in client.chat() \
.user("Explain AI-Protocol") \
.temperature(0.7) \
.max_tokens(1000) \
.stream():
if event.is_content_delta:
print(event.as_content_delta.text,
end="")
# Non-streaming with stats
response, stats = await client.chat() \
.user("Summarize this") \
.execute_with_stats()
print(f"Tokens: {stats.total_tokens}")
print(f"Latency: {stats.latency_ms}ms") Arquitectura interna
Misma arquitectura por capas que el runtime Rust: orientada a protocolo, por operadores y con resiliencia opt-in.
Resumen de módulos
client/ + errors/standard_codes/
AiClient, AiClientBuilder, ChatRequestBuilder, ChatResponse, CallStats, CancelToken, CancellableStream.
protocol/
ProtocolLoader (local/env/GitHub), modelos Pydantic de manifiesto, validador JSON Schema y hot-reload.
pipeline/
Decoder (SSE, JSON Lines, Anthropic SSE), Selector (JSONPath), Accumulator, FanOut, EventMapper (protocolo / default / Anthropic).
resilience/
ResilientExecutor, RetryPolicy, RateLimiter, CircuitBreaker, Backpressure, FallbackChain, SignalsSnapshot, PreflightChecker.
routing/
ModelManager, ModelArray y estrategias (round-robin, ponderada, coste, calidad). Catálogos preconfigurados para proveedores principales.
telemetry/
MetricsCollector (Prometheus), Tracer (OpenTelemetry), Logger estructurado, HealthChecker y recogida de feedback.
embeddings/ + tokens/
EmbeddingClient con operaciones vectoriales. TokenCounter (tiktoken) y estimación de coste.
plugins/ + structured/
Clase base Plugin, PluginRegistry, HookManager y middleware. Config JSON mode, SchemaGenerator, OutputValidator.