fix(media): propagate image timeout to providers

This commit is contained in:
Ayaan Zaidi
2026-04-29 11:08:55 +05:30
parent b62e9e624d
commit 09a64bd77e
2 changed files with 8 additions and 4 deletions

View File

@@ -938,10 +938,12 @@ function resolveOllamaModelHeaders(model: {
function resolveOllamaRequestTimeoutMs(
model: object,
options: { requestTimeoutMs?: unknown } | undefined,
options: { requestTimeoutMs?: unknown; timeoutMs?: unknown } | undefined,
): number | undefined {
const raw =
options?.requestTimeoutMs ?? (model as { requestTimeoutMs?: unknown }).requestTimeoutMs;
options?.requestTimeoutMs ??
options?.timeoutMs ??
(model as { requestTimeoutMs?: unknown }).requestTimeoutMs;
return typeof raw === "number" && Number.isFinite(raw) && raw > 0 ? Math.floor(raw) : undefined;
}
@@ -1004,7 +1006,7 @@ export function createOllamaStreamFn(
policy: ssrfPolicy,
timeoutMs: resolveOllamaRequestTimeoutMs(
model,
options as { requestTimeoutMs?: unknown } | undefined,
options as { requestTimeoutMs?: unknown; timeoutMs?: unknown } | undefined,
),
auditContext: "ollama-stream.chat",
});

View File

@@ -401,13 +401,15 @@ async function describeImagesWithModelInternal(
const maxTokens = resolveImageToolMaxTokens(model.maxTokens, params.maxTokens ?? 512);
const completeImage = async (onPayload?: ProviderStreamOptions["onPayload"]) => {
const payloadHandler = composeImageDescriptionPayloadHandlers(onPayload, options.onPayload);
const timeoutMs = resolveImageDescriptionTimeoutMs(params.timeoutMs, startedAtMs);
return await withImageDescriptionTimeout({
controller,
timeoutMs: resolveImageDescriptionTimeoutMs(params.timeoutMs, startedAtMs),
timeoutMs,
task: complete(model, context, {
apiKey,
maxTokens,
signal: controller.signal,
...(timeoutMs !== undefined ? { timeoutMs } : {}),
...(payloadHandler ? { onPayload: payloadHandler } : {}),
}),
});