mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-26 20:12:38 +08:00
* feat: update Google and OpenAI SDKs with new features and fixes - Updated Google SDK to ensure model paths are correctly formatted. - Enhanced OpenAI SDK to include support for image URLs in chat responses. - Added reasoning content handling in OpenAI chat responses and chunks. - Introduced Azure Anthropic provider configuration for Claude integration. * fix: azure error * fix: lint * fix: test * fix: test * fix type * fix comment * fix: redundant * chore resolution * fix: test * fix: comment * fix: comment * fix * feat: 添加 OpenRouter 推理中间件以支持内容过滤
75 lines
3.0 KiB
Diff
Vendored
75 lines
3.0 KiB
Diff
Vendored
diff --git a/dist/index.js b/dist/index.js
|
|
index 7481f3b3511078068d87d03855b568b20bb86971..8ac5ec28d2f7ad1b3b0d3f8da945c75674e59637 100644
|
|
--- a/dist/index.js
|
|
+++ b/dist/index.js
|
|
@@ -274,6 +274,7 @@ var openaiChatResponseSchema = (0, import_provider_utils3.lazyValidator)(
|
|
message: import_v42.z.object({
|
|
role: import_v42.z.literal("assistant").nullish(),
|
|
content: import_v42.z.string().nullish(),
|
|
+ reasoning_content: import_v42.z.string().nullish(),
|
|
tool_calls: import_v42.z.array(
|
|
import_v42.z.object({
|
|
id: import_v42.z.string().nullish(),
|
|
@@ -340,6 +341,7 @@ var openaiChatChunkSchema = (0, import_provider_utils3.lazyValidator)(
|
|
delta: import_v42.z.object({
|
|
role: import_v42.z.enum(["assistant"]).nullish(),
|
|
content: import_v42.z.string().nullish(),
|
|
+ reasoning_content: import_v42.z.string().nullish(),
|
|
tool_calls: import_v42.z.array(
|
|
import_v42.z.object({
|
|
index: import_v42.z.number(),
|
|
@@ -795,6 +797,13 @@ var OpenAIChatLanguageModel = class {
|
|
if (text != null && text.length > 0) {
|
|
content.push({ type: "text", text });
|
|
}
|
|
+ const reasoning = choice.message.reasoning_content;
|
|
+ if (reasoning != null && reasoning.length > 0) {
|
|
+ content.push({
|
|
+ type: 'reasoning',
|
|
+ text: reasoning
|
|
+ });
|
|
+ }
|
|
for (const toolCall of (_a = choice.message.tool_calls) != null ? _a : []) {
|
|
content.push({
|
|
type: "tool-call",
|
|
@@ -876,6 +885,7 @@ var OpenAIChatLanguageModel = class {
|
|
};
|
|
let metadataExtracted = false;
|
|
let isActiveText = false;
|
|
+ let isActiveReasoning = false;
|
|
const providerMetadata = { openai: {} };
|
|
return {
|
|
stream: response.pipeThrough(
|
|
@@ -933,6 +943,21 @@ var OpenAIChatLanguageModel = class {
|
|
return;
|
|
}
|
|
const delta = choice.delta;
|
|
+ const reasoningContent = delta.reasoning_content;
|
|
+ if (reasoningContent) {
|
|
+ if (!isActiveReasoning) {
|
|
+ controller.enqueue({
|
|
+ type: 'reasoning-start',
|
|
+ id: 'reasoning-0',
|
|
+ });
|
|
+ isActiveReasoning = true;
|
|
+ }
|
|
+ controller.enqueue({
|
|
+ type: 'reasoning-delta',
|
|
+ id: 'reasoning-0',
|
|
+ delta: reasoningContent,
|
|
+ });
|
|
+ }
|
|
if (delta.content != null) {
|
|
if (!isActiveText) {
|
|
controller.enqueue({ type: "text-start", id: "0" });
|
|
@@ -1045,6 +1070,9 @@ var OpenAIChatLanguageModel = class {
|
|
}
|
|
},
|
|
flush(controller) {
|
|
+ if (isActiveReasoning) {
|
|
+ controller.enqueue({ type: 'reasoning-end', id: 'reasoning-0' });
|
|
+ }
|
|
if (isActiveText) {
|
|
controller.enqueue({ type: "text-end", id: "0" });
|
|
}
|