UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

67 lines (66 loc) 2.31 kB
import { c as normalizeOptionalString } from "./string-coerce-mnp54Vah.js"; import { r as assertOkOrThrowHttpError } from "./provider-http-errors-DqaqQLLZ.js"; import { d as requireTranscriptionText, p as resolveProviderHttpRequestConfig, t as buildAudioTranscriptionFormData, u as postTranscriptionRequest } from "./shared-IuCmx8oC.js"; import "./string-coerce-runtime-CEGJWkQ_.js"; import "./provider-http-BXCBCi4E.js"; import { t as XAI_BASE_URL } from "./model-definitions-whru6Ebx.js"; //#region extensions/xai/stt.ts const XAI_DEFAULT_STT_MODEL = "grok-stt"; function resolveXaiSttBaseUrl(value) { return normalizeOptionalString(value ?? process.env.XAI_BASE_URL) ?? "https://api.x.ai/v1"; } async function transcribeXaiAudio(params) { const fetchFn = params.fetchFn ?? fetch; const { baseUrl, allowPrivateNetwork, headers, dispatcherPolicy } = resolveProviderHttpRequestConfig({ baseUrl: resolveXaiSttBaseUrl(params.baseUrl), defaultBaseUrl: XAI_BASE_URL, headers: params.headers, request: params.request, defaultHeaders: { Authorization: `Bearer ${params.apiKey}` }, provider: "xai", api: "xai-stt", capability: "audio", transport: "media-understanding" }); const model = normalizeOptionalString(params.model); const language = normalizeOptionalString(params.language); const form = buildAudioTranscriptionFormData({ buffer: params.buffer, fileName: params.fileName, mime: params.mime, fields: { model, language } }); const { response, release } = await postTranscriptionRequest({ url: `${baseUrl}/stt`, headers, body: form, timeoutMs: params.timeoutMs, fetchFn, allowPrivateNetwork, dispatcherPolicy, auditContext: "xai stt" }); try { await assertOkOrThrowHttpError(response, "xAI audio transcription failed"); return { text: requireTranscriptionText((await response.json()).text, "xAI transcription response missing text"), ...model ? { model } : {} }; } finally { await release(); } } function buildXaiMediaUnderstandingProvider() { return { id: "xai", capabilities: ["audio"], defaultModels: { audio: XAI_DEFAULT_STT_MODEL }, autoPriority: { audio: 25 }, transcribeAudio: transcribeXaiAudio }; } //#endregion export { buildXaiMediaUnderstandingProvider as n, transcribeXaiAudio as r, XAI_DEFAULT_STT_MODEL as t };