Inicio Rápido con los SDKs de Gen.IA.L CAPA
Aprende a integrar el Policy Enforcement Point (PEP) de Gen.IA.L CAPA en tus microservicios de Python o aplicaciones de Node.js / TypeScript en menos de 5 minutos.
1. Instalación
- Python (uv / pip)
- Node.js (pnpm / npm)
# Recomendado con uv
uv add genial-capa
# O con pip estándar
pip install genial-capa
# Con pnpm
pnpm add @genial/capa-sdk
# O con npm
npm install @genial/capa-sdk
2. Variables de Entorno
Configura las credenciales de tu tenant en el archivo .env:
# API Key generada en el Dashboard de CAPA (http://localhost:3000/api-keys)
CAPA_API_KEY=capa_live_tu_clave_secreta_aqui
# Endpoint del Gateway PDP
CAPA_ENDPOINT=http://localhost:8000
# Modo Estricto de Producción (Fail-Closed: true | Fail-Open: false)
CAPA_FAIL_CLOSED=true
3. Blindaje de Funciones con el Decorador @enforce
- Python (FastAPI / LangChain / OpenAI)
- Node.js (NestJS / Express / TypeScript)
import os
from openai import AsyncOpenAI
from genial_capa import CapaClient
# Inicializar cliente PEP de CAPA
capa = CapaClient(
api_key=os.environ.get("CAPA_API_KEY"),
endpoint=os.environ.get("CAPA_ENDPOINT", "http://localhost:8000"),
fail_closed=True,
system_name="CRM_ProposalAgent",
)
openai_client = AsyncOpenAI()
@capa.enforce(
operation="GENERATE_PROPOSAL",
purpose="COMMERCIAL_PROPOSAL",
destination="ExternalLLM",
auto_mask_strings=True,
)
async def generar_propuesta_segura(prompt_vendedor: str):
"""
El SDK de CAPA intercepta 'prompt_vendedor', evalúa las políticas OPA,
y sustituye automáticamente RUTs, correos y nombres por etiquetas seguras
antes de que el texto llegue a la API de OpenAI.
"""
response = await openai_client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": prompt_vendedor}],
)
return response.choices[0].message.content
import { CapaClient } from '@genial/capa-sdk';
import OpenAI from 'openai';
const capa = new CapaClient({
apiKey: process.env.CAPA_API_KEY!,
endpoint: process.env.CAPA_ENDPOINT || 'http://localhost:8000',
failClosed: true,
systemName: 'CRM_ProposalAgent',
});
const openai = new OpenAI();
// Wrapper Universal de Seguridad para LLMs (100% Agnóstico a Frameworks)
export const generarPropuestaSegura = capa.wrap(
async (promptVendedor: string) => {
const completion = await openai.chat.completions.create({
model: 'gpt-4o',
messages: [{ role: 'user', content: promptVendedor }],
});
return completion.choices[0].message.content;
},
{
operation: 'GENERATE_PROPOSAL',
purpose: 'COMMERCIAL_PROPOSAL',
destination: 'ExternalLLM',
autoMask: true,
}
);