mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-31 08:29:07 +08:00
feat(AiSdkToChunkAdapter): fix mcp response image (#10262)
This commit is contained in:
parent
1e615d69e1
commit
a8cd2e2eac
@ -13,16 +13,6 @@ import { ToolCallChunkHandler } from './handleToolCallChunk'
|
|||||||
|
|
||||||
const logger = loggerService.withContext('AiSdkToChunkAdapter')
|
const logger = loggerService.withContext('AiSdkToChunkAdapter')
|
||||||
|
|
||||||
export interface CherryStudioChunk {
|
|
||||||
type: 'text-delta' | 'text-complete' | 'tool-call' | 'tool-result' | 'finish' | 'error'
|
|
||||||
text?: string
|
|
||||||
toolCall?: any
|
|
||||||
toolResult?: any
|
|
||||||
finishReason?: string
|
|
||||||
usage?: any
|
|
||||||
error?: any
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AI SDK 到 Cherry Studio Chunk 适配器类
|
* AI SDK 到 Cherry Studio Chunk 适配器类
|
||||||
* 处理 fullStream 到 Cherry Studio chunk 的转换
|
* 处理 fullStream 到 Cherry Studio chunk 的转换
|
||||||
|
|||||||
@ -298,8 +298,29 @@ export class ToolCallChunkHandler {
|
|||||||
type: ChunkType.MCP_TOOL_COMPLETE,
|
type: ChunkType.MCP_TOOL_COMPLETE,
|
||||||
responses: [toolResponse]
|
responses: [toolResponse]
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const images: string[] = []
|
||||||
|
for (const content of toolResponse.response?.content || []) {
|
||||||
|
if (content.type === 'image' && content.data) {
|
||||||
|
images.push(`data:${content.mimeType};base64,${content.data}`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (images.length) {
|
||||||
|
this.onChunk({
|
||||||
|
type: ChunkType.IMAGE_CREATED
|
||||||
|
})
|
||||||
|
this.onChunk({
|
||||||
|
type: ChunkType.IMAGE_COMPLETE,
|
||||||
|
image: {
|
||||||
|
type: 'base64',
|
||||||
|
images: images
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
handleToolError(
|
handleToolError(
|
||||||
chunk: {
|
chunk: {
|
||||||
type: 'tool-error'
|
type: 'tool-error'
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user