Saltar al contenido principal

Ejecutar con el SDK de Node.js

Usa el paquete oficial @fetch-hive/sdk cuando quieras invocar un deployment de prompt desde Node.js o TypeScript. El SDK envuelve el endpoint público POST /v1/prompt/invoke con un cliente tipado, maneja la autenticación y expone el streaming como un AsyncIterable.

Instalación

npm install @fetch-hive/sdk
# or
yarn add @fetch-hive/sdk
# or
pnpm add @fetch-hive/sdk
El SDK está dirigido a Node.js 18+ (usa el fetch global) y viene con tipos TypeScript desde el inicio.

Autenticación

Configura la variable de entorno FETCH_HIVE_API_KEY con tu clave de API del workspace:
export FETCH_HIVE_API_KEY=fhk_...
import { FetchHive } from '@fetch-hive/sdk';

const client = new FetchHive();
O pasa la clave explícitamente:
const client = new FetchHive({ apiKey: 'fhk_...' });
Consulta API Keys para saber cómo crear y rotar claves.

Ejemplo básico

Invoca un deployment de prompt y lee la respuesta final:
import { FetchHive } from '@fetch-hive/sdk';

const client = new FetchHive();

const result = await client.invokePrompt({
  deployment: 'YOUR_DEPLOYMENT_NAME',
  variant: 'YOUR_VARIANT_NAME',
  inputs: { text: 'Fetch Hive helps teams ship AI products faster.' },
});

console.log(result.response);
invokePrompt devuelve una Promise que se resuelve al cuerpo JSON analizado una vez que el prompt se ha completado. Consulta la forma de respuesta sin streaming.

Referencia del método

CampoTipoRequeridoDescripción
deploymentstringEl nombre del deployment de prompt
variantstringNoEl nombre de la variante del deployment
inputsRecord<string, unknown>NoPares clave-valor para las variables del prompt
userstringNoIdentificador opaco de quien llama, expuesto en User Tracking
metadataRecord<string, string | number | boolean | null>NoMetadata plana definida por quien llama, para auditoría y filtrado de registros. Consulta Metadata de invoke
El SDK inyecta streaming: false para invokePrompt. Para transmitir, usa invokePromptStream (a continuación).

Manejo de la respuesta

const result = await client.invokePrompt({
  deployment: 'my-prompt',
  variant: 'default',
});

console.log(result.response);     // final text
console.log(result.model);        // model identifier
console.log(result.usage);        // token usage breakdown
console.log(result.request_id);   // use this to look up the run in Logs

Streaming

Usa invokePromptStream para recibir Server-Sent Events a medida que llegan. El método devuelve un AsyncIterable que puedes consumir con for await:
for await (const chunk of client.invokePromptStream({
  deployment: 'YOUR_DEPLOYMENT_NAME',
  variant: 'YOUR_VARIANT_NAME',
  inputs: { text: 'Fetch Hive helps teams ship AI products faster.' },
})) {
  if (chunk.type === 'response') {
    process.stdout.write(chunk.response ?? '');
  } else if (chunk.type === 'usage') {
    console.log('\n\nUsage:', chunk.usage);
  }
}
La transmisión produce los mismos tipos de evento documentados en Invoke Prompt → Response: reasoning, response, un evento usage final o un evento error si el proveedor falla durante la transmisión.

Configuración

OpciónPredeterminadoDescripción
apiKeyprocess.env.FETCH_HIVE_API_KEYToken bearer del dashboard
baseURLhttps://api.fetchhive.com/v1Sobrescribe la URL base de la API
const client = new FetchHive({
  apiKey: 'fhk_...',
  baseURL: 'https://api.fetchhive.com/v1',
});

Errores

Las respuestas distintas a 2xx lanzan un Error cuyo mensaje incluye el código de estado y el cuerpo de la respuesta:
try {
  const result = await client.invokePrompt({
    deployment: 'my-prompt',
    variant: 'default',
  });
} catch (err) {
  console.error('Fetch Hive error:', err);
}
Consulta Errors and Rate Limits para el significado de los códigos de estado.

Enlaces

Siguientes pasos