Primeras llamadas
Los ejemplos siguientes envían un mensaje al mismo endpoint público. Utiliza credenciales ficticias durante el desarrollo de tu código y carga los valores reales desde un gestor de secretos.
TypeScript
import { Inceptiva } from "@inceptiva/sdk";
const apiKey = process.env.INCEPTIVA_API_KEY;
const agentId = process.env.INCEPTIVA_AGENT_ID;
if (!apiKey || !agentId) {
throw new Error("Faltan las credenciales de Inceptiva");
}
const client = new Inceptiva({ apiKey, agentId });
const result = await client.responses.create({
message: "Analiza esta oportunidad comercial",
externalReference: "opportunity-123",
idempotencyKey: crypto.randomUUID(),
});
console.log(result.response);
console.log(result.conversationId);
console.log(result.citations);JavaScript
Guarda este ejemplo como example.mjs y ejecútalo con node example.mjs.
import { Inceptiva } from "@inceptiva/sdk";
const client = new Inceptiva({
apiKey: process.env.INCEPTIVA_API_KEY,
agentId: process.env.INCEPTIVA_AGENT_ID,
});
const result = await client.responses.create({
message: "Resume las necesidades de este cliente",
});
console.log(result);curl
curl --request POST \\
"$INCEPTIVA_API_BASE_URL/v1/agents/$INCEPTIVA_AGENT_ID/responses" \\
--header "Authorization: Bearer $INCEPTIVA_API_KEY" \\
--header "Content-Type: application/json" \\
--data '{"message":"Analiza esta oportunidad comercial"}'La respuesta HTTP utiliza nombres snake_case:
{
"conversation_id": "00000000-0000-0000-0000-000000000000",
"response": "He analizado la oportunidad...",
"citations": []
}El SDK transforma los nombres snake_case del contrato HTTP a nombres idiomáticos camelCase y expone las citas públicas autorizadas.
Continuar la conversación
const first = await client.responses.create({ message: "Analiza esta oportunidad" });
const followUp = await client.responses.create({
message: "¿Cuál sería el siguiente paso?",
conversationId: first.conversationId,
});
const history = await client.conversations.getMessages(followUp.conversationId);
console.log(followUp.response);
console.log(history.items);Conserva conversationId en tu propia sesión o modelo de datos. Si no lo envías, la API inicia una conversación nueva.
result.responseMetadata conserva rate limit, cuota e información de replay. No reintentes una generación incierta con una clave nueva: reutiliza la misma idempotencyKey.
Continúa con Conversaciones o consulta el manejo de errores.
· SDKv0.4.0