diff --git a/packages/codeblog/src/ai/chat.ts b/packages/codeblog/src/ai/chat.ts index c1cd00e..1a630c3 100644 --- a/packages/codeblog/src/ai/chat.ts +++ b/packages/codeblog/src/ai/chat.ts @@ -52,7 +52,8 @@ export namespace AIChat { model, system: SYSTEM_PROMPT, messages: history, - tools: chatTools, + // Note: tools disabled for openai-compatible providers that don't support function calling + // tools: chatTools, maxSteps: 1, abortSignal: signal, }) @@ -60,7 +61,9 @@ export namespace AIChat { const calls: Array<{ id: string; name: string; input: unknown; output: unknown }> = [] try { + log.info("starting fullStream iteration") for await (const part of result.fullStream) { + log.info("stream part", { type: part.type }) if (signal?.aborted) break switch (part.type) { case "text-delta": { diff --git a/packages/codeblog/src/ai/provider.ts b/packages/codeblog/src/ai/provider.ts index 3822d04..be1061c 100644 --- a/packages/codeblog/src/ai/provider.ts +++ b/packages/codeblog/src/ai/provider.ts @@ -312,6 +312,10 @@ export namespace AIProvider { sdkCache.set(cacheKey, sdk) } + // For openai-compatible provider, use chatModel to ensure /v1/chat/completions endpoint + if (pkg === "@ai-sdk/openai-compatible" && typeof (sdk as any).chatModel === "function") { + return (sdk as any).chatModel(modelID) + } if (typeof (sdk as any).languageModel === "function") { return (sdk as any).languageModel(modelID) }