0.3.3 外网下载修复

This commit is contained in:
liaibo
2026-01-21 18:21:10 +08:00
parent f13de35321
commit 71de56850b
45 changed files with 2499 additions and 476 deletions
@@ -1,3 +1,11 @@
import {
MIN_API_TIMEOUT_MS,
MAX_API_TIMEOUT_MS,
DEFAULT_API_TIMEOUT_MS,
MIN_COMPLETION_TOKENS,
MAX_COMPLETION_TOKENS,
} from "@/lib/constants";
export type OpenAiCompatibleChatMessage = {
role: "system" | "user" | "assistant";
content: string;
@@ -34,18 +42,18 @@ export const openAiCompatibleChat = async (
messages: OpenAiCompatibleChatMessage[],
opts: OpenAiCompatibleChatOptions,
): Promise<{ text: string; raw: unknown }> => {
const timeoutMs = Math.max(500, Math.min(120_000, opts.timeoutMs ?? 20_000));
const timeoutMs = Math.max(MIN_API_TIMEOUT_MS, Math.min(MAX_API_TIMEOUT_MS, opts.timeoutMs ?? DEFAULT_API_TIMEOUT_MS));
const controller = new AbortController();
const t = setTimeout(() => controller.abort(), timeoutMs);
try {
const url = `${opts.baseUrl.replace(/\/+$/, "")}/chat/completions`;
const maxCompletionTokens =
typeof opts.maxCompletionTokens === "number" && Number.isFinite(opts.maxCompletionTokens)
? Math.max(64, Math.min(16_000, Math.floor(opts.maxCompletionTokens)))
? Math.max(MIN_COMPLETION_TOKENS, Math.min(MAX_COMPLETION_TOKENS, Math.floor(opts.maxCompletionTokens)))
: undefined;
const maxTokens =
typeof opts.maxTokens === "number" && Number.isFinite(opts.maxTokens)
? Math.max(64, Math.min(16_000, Math.floor(opts.maxTokens)))
? Math.max(MIN_COMPLETION_TOKENS, Math.min(MAX_COMPLETION_TOKENS, Math.floor(opts.maxTokens)))
: undefined;
const res = await fetch(url, {
method: "POST",