.NET
El paquete oficial Inceptiva tiene como objetivo .NET 8 o posterior.
Instalación
shell
dotnet add package InceptivaCliente y agente
csharp
using Inceptiva;
var client = new InceptivaClient(
apiKey: Environment.GetEnvironmentVariable("INCEPTIVA_API_KEY")!,
agentId: Environment.GetEnvironmentVariable("INCEPTIVA_AGENT_ID")!
);
var agent = await client.GetAgentAsync();
Console.WriteLine(agent.Capabilities);Respuestas y continuidad
csharp
var first = await client.Responses.CreateAsync(new InvokeRequest(
Message: "Analiza esta oportunidad",
Metadata: new Dictionary<string, object?> { ["source"] = "crm" }
));
var followUp = await client.Responses.CreateAsync(new InvokeRequest(
Message: "¿Cuál es el siguiente paso?",
ConversationId: first.ConversationId
));
Console.WriteLine(followUp.Response);
Console.WriteLine(followUp.Citations.Count);client.InvokeAsync(...) permanece disponible como alias compatible.
Streaming SSE
csharp
await foreach (var streamEvent in client.Responses.StreamAsync(
new InvokeRequest("Resume la oportunidad", followUp.ConversationId),
cancellationToken
))
{
if (streamEvent is ResponseOutputTextDeltaEvent delta)
Console.Write(delta.Delta);
}InceptivaStreaming.CollectAsync(...) acumula los deltas y devuelve un InvokeResponse final. La enumeración libera la conexión al completarse, cancelarse o abandonarse. Un stream iniciado nunca se reintenta automáticamente.
Historial y eliminación
csharp
var history = await client.Conversations.GetMessagesAsync(followUp.ConversationId);
foreach (var message in history.Items)
Console.WriteLine($"{message.Role}: {message.Content}");
await client.Conversations.DeleteAsync(followUp.ConversationId);Errores y cancelación
csharp
try
{
await client.GetAgentAsync(cancellationToken);
}
catch (InceptivaRateLimitException error)
{
Console.WriteLine(error.RetryAfter);
}
catch (InceptivaApiException error)
{
Console.WriteLine($"{error.Status}: {error.Detail}");
}También se exportan excepciones específicas para 401, 403, 404 y 422. Todas las operaciones aceptan CancellationToken. El SDK solo expone citas públicas y nunca retrieval_sources.
Contrato robusto 0.4.0
csharp
var result = await client.Responses.CreateAsync(new InvokeRequest(
Message: "Actualiza el resumen",
ExternalReference: "ticket-4821",
IdempotencyKey: "request-unique-id"
));
var history = await client.Conversations.GetMessagesAsync(result.ConversationId, page: 1, pageSize: 50);
Console.WriteLine(result.ResponseMetadata?.IdempotencyReplayed);
Console.WriteLine(history.Total);
· SDKv0.4.0