Saltar al contenido principal

Ejecutar con el SDK de PHP

Usa el paquete oficial de Composer fetch-hive/sdk cuando quieras invocar un deployment de prompt desde PHP. El SDK envuelve el endpoint público POST /v1/prompt/invoke con una fachada idiomática, maneja la autenticación y expone las respuestas en streaming como un generador de arreglos de eventos analizados.

Instalación

composer require fetch-hive/sdk
El SDK requiere PHP 8.1+ y usa Guzzle como su cliente HTTP.

Autenticación

Configura la variable de entorno FETCH_HIVE_API_KEY con tu clave de API del workspace (el cliente la lee automáticamente):
export FETCH_HIVE_API_KEY=fhk_...
<?php
require_once 'vendor/autoload.php';

use FetchHive\Sdk\FetchHive;

$client = new FetchHive();
O pasa la clave explícitamente:
$client = new FetchHive(['api_key' => '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:
<?php
require_once 'vendor/autoload.php';

use FetchHive\Sdk\FetchHive;

$client = new FetchHive();

$result = $client->invokePrompt([
    'deployment' => 'YOUR_DEPLOYMENT_NAME',
    'variant'    => 'YOUR_VARIANT_NAME',
    'inputs'     => ['text' => 'Fetch Hive helps teams ship AI products faster.'],
]);

echo $result['response'];
invokePrompt se bloquea hasta que el prompt se completa y devuelve el cuerpo JSON analizado como un arreglo asociativo. Consulta la forma de respuesta sin streaming.

Referencia del método

ClaveTipoRequeridoDescripción
deploymentstringEl nombre del deployment de prompt
variantstringNoEl nombre de la variante del deployment
inputsarrayNoPares clave-valor para las variables del prompt
userstringNoIdentificador opaco de quien llama, expuesto en User Tracking
metadataarrayNoMetadata 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

$result = $client->invokePrompt([
    'deployment' => 'my-prompt',
    'variant'    => 'default',
]);

echo $result['response'];      // final text
echo $result['model'];         // model identifier
print_r($result['usage']);     // token usage breakdown
echo $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 Generator que puedes iterar con foreach:
foreach ($client->invokePromptStream([
    'deployment' => 'YOUR_DEPLOYMENT_NAME',
    'variant'    => 'YOUR_VARIANT_NAME',
    'inputs'     => ['text' => 'Fetch Hive helps teams ship AI products faster.'],
]) as $chunk) {
    match ($chunk['type']) {
        'response' => print($chunk['response'] ?? ''),
        'usage'    => print("\n\nUsage: " . json_encode($chunk['usage'])),
        default    => null,
    };
}
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
api_keyvariable de entorno FETCH_HIVE_API_KEYToken bearer del dashboard
base_urlhttps://api.fetchhive.com/v1Sobrescribe la URL base de la API
timeout120Timeout de la solicitud en segundos
$client = new FetchHive([
    'api_key'  => 'fhk_...',
    'base_url' => 'https://api.fetchhive.com/v1',
    'timeout'  => 60.0,
]);

Errores

Las respuestas distintas a 2xx lanzan FetchHive\Sdk\Exception\ApiException con el código de estado y el cuerpo de la respuesta. Captúralas si necesitas manejar fallos:
use FetchHive\Sdk\Exception\ApiException;

try {
    $result = $client->invokePrompt([
        'deployment' => 'my-prompt',
        'variant'    => 'default',
    ]);
} catch (ApiException $e) {
    error_log('Fetch Hive error: ' . $e->getMessage());
}
Consulta Errors and Rate Limits para el significado de los códigos de estado.

Enlaces

Siguientes pasos