El SDKDocumentation Index
Fetch the complete documentation index at: https://docs.sf-voice.sh/llms.txt
Use this file to discover all available pages before exploring further.
@sf-voice/media envuelve la API de sf-voice media para aplicaciones TypeScript.
Úsalo para enviar recursos multimedia, esperar a la indexación y buscar en superficies de vídeo, audio
y transcripción con tus propios ID de recursos orientados al cliente.
Ingerir recursos
Envía contenido multimedia desde una URL, una clave de S3 o un buffer de archivo/navegador.
Conserva tus IDs
Pasa tu propio
asset_id para que los resultados se vinculen a tu sistema.Acotar la búsqueda
Usa
asset_class o asset_ids para mantener la búsqueda vinculada al cliente o grupo correcto.El SDK solo expone términos de sf-voice. El mapeo específico del proveedor ocurre en el backend.
¿Nuevo en sf-voice media?
Empieza con la visión general del producto antes de usar la referencia del SDK.
Instalación
Crear un cliente
| Opción | Obligatorio | Descripción |
|---|---|---|
baseUrl | Sí | URL base de la API de sf-voice media. |
apiKey | Sí | Clave de API enviada como cabecera X-API-Key. |
timeoutMs | No | Tiempo de espera por solicitud en milisegundos. Por defecto 30_000. |
Campos principales
| Campo | Descripción |
|---|---|
asset_id | Tu ID único para el recurso multimedia. Obligatorio al ingerir. |
asset_class | Grupo lógico opcional, como un cliente, workspace, proyecto o repositorio. Úsalo para acotar la búsqueda. |
types | Superficies multimedia opcionales a indexar o buscar: "video", "audio", "transcript". |
metadata | Metadatos planos opcionales de clave/valor. Los valores deben ser cadenas, números o booleanos. |
threshold | Puntuación mínima de búsqueda opcional de 0.0 a 1.0. Valores más altos devuelven menos resultados, pero más fiables. |
Cómo elegir asset_class
Usa asset_class para el límite dentro del cual tu producto debe buscar por defecto.
Para la mayoría de productos orientados al cliente, ese es el cliente final, workspace, proyecto,
repositorio o colección.
Buenos ejemplos de asset_class:
customer_acmeworkspace_123project_onboardingrepo_mobile_app
Flujo de extremo a extremo
Uso en navegador y servidor
El SDK funciona en cualquier entorno donde el runtime proporcionefetch, FormData y Blob.
| Runtime | Fuente de ingestión recomendada |
|---|---|
| App de navegador | source: "file" para subidas directas desde inputs de archivo. |
| Servicio backend | source: "url" o source: "s3" cuando el contenido ya esté almacenado. |
| Runtime worker | source: "url" o source: "file" según las API de cuerpo de solicitud disponibles. |
Para archivos grandes, prefiere subir el contenido primero a tu capa de almacenamiento e ingerirlo por URL o clave de S3.
Ingestión
ingest(request) envía contenido multimedia para indexación y devuelve inmediatamente un ID de tarea.
Entrada
Campos comunes:| Campo | Obligatorio | Descripción |
|---|---|---|
asset_id | Sí | Tu ID único para el recurso. |
asset_class | No | Grupo lógico para el recurso. La búsqueda puede usarlo más adelante como ámbito. |
media_type | No | "video" o "audio". |
types | No | Superficies a indexar: "video", "audio", "transcript". |
metadata | No | Metadatos planos de clave/valor para tu propia correlación. |
| Fuente | Campos obligatorios | Descripción |
|---|---|---|
url | url | Ingerir desde una URL pública o accesible desde el backend. |
s3 | s3_key | Ingerir desde una clave de S3 ya conectada a sf-voice. |
file | file, filename | Subir un Blob, ArrayBuffer o Uint8Array directamente. |
Ejemplos
Salida
Tareas y sondeo
UsagetTask(taskId) para obtener el estado de la tarea una vez. Usa pollTask(taskId, options) para
esperar hasta que la tarea alcance "ready" o "failed".
Búsqueda
search(request) busca en el contenido indexado con lenguaje natural.
La búsqueda tiene tres modos de acotación:
| Modo | Ejemplo | Úsalo cuando |
|---|---|---|
asset_class | { asset_class: "customer_acme" } | Buscas en un cliente, workspace, proyecto o colección. |
asset_ids | { asset_ids: ["video_123"] } | Buscas en un conjunto conocido de recursos. |
scope: "all" | { scope: "all" } | Buscas intencionadamente en todos los recursos indexados. |
Entrada
| Campo | Obligatorio | Descripción |
|---|---|---|
query | Sí | Consulta de búsqueda en lenguaje natural. |
types | No | Qué superficies buscar: "video", "audio", "transcript". |
asset_ids | No | Restringe la búsqueda a IDs de recursos de cliente específicos. |
asset_class | No | Restringe la búsqueda a un grupo lógico. Recomendado para búsqueda acotada al cliente. |
scope | No | Establece en "all" solo cuando busques intencionadamente en todos los recursos. |
threshold | No | Puntuación mínima de coincidencia de 0.0 a 1.0. Por defecto el valor predeterminado de la API. |
page | No | Número de página. |
limit | No | Máximo de resultados por página. |
Ejemplos
Salida
start_ms y end_ms son desplazamientos en milisegundos dentro del contenido de origen. Úsalos
para saltar el reproductor directamente al momento coincidente.
Recursos
Errores
Cada respuesta de API no 2xx lanzaSfVoiceMediaError.
SfVoiceMediaRequestTimeoutError se lanza cuando una solicitud HTTP individual supera
el tiempo de espera del cliente.
SfVoiceMediaPollTimeoutError se lanza cuando pollTask supera su tiempo de espera de sondeo
antes de que la tarea alcance "ready" o "failed".