mirror of
https://github.com/langgenius/dify.git
synced 2026-04-29 20:48:01 +08:00
improved: handling TextResourceContents result
This commit is contained in:
parent
d9373dc957
commit
6570f52b5a
@ -13,6 +13,7 @@ from core.mcp.types import (
|
|||||||
EmbeddedResource,
|
EmbeddedResource,
|
||||||
ImageContent,
|
ImageContent,
|
||||||
TextContent,
|
TextContent,
|
||||||
|
TextResourceContents,
|
||||||
)
|
)
|
||||||
from core.tools.__base.tool import Tool
|
from core.tools.__base.tool import Tool
|
||||||
from core.tools.__base.tool_runtime import ToolRuntime
|
from core.tools.__base.tool_runtime import ToolRuntime
|
||||||
@ -64,10 +65,15 @@ class MCPTool(Tool):
|
|||||||
yield self.create_blob_message(
|
yield self.create_blob_message(
|
||||||
blob=base64.b64decode(content.data), meta={"mime_type": content.mimeType}
|
blob=base64.b64decode(content.data), meta={"mime_type": content.mimeType}
|
||||||
)
|
)
|
||||||
elif isinstance(content, EmbeddedResource) and isinstance(content.resource, BlobResourceContents):
|
elif isinstance(content, EmbeddedResource):
|
||||||
yield self.create_blob_message(
|
resource = content.resource
|
||||||
blob=base64.b64decode(content.resource.blob), meta={"mime_type": content.resource.mimeType}
|
if isinstance(resource, TextResourceContents):
|
||||||
)
|
yield self.create_text_message(resource.text)
|
||||||
|
elif isinstance(resource, BlobResourceContents):
|
||||||
|
mime_type = resource.mimeType or "application/octet-stream"
|
||||||
|
yield self.create_blob_message(blob=base64.b64decode(resource.blob), meta={"mime_type": mime_type})
|
||||||
|
else:
|
||||||
|
raise ToolInvokeError(f"Unsupported embedded resource type: {type(resource)}")
|
||||||
else:
|
else:
|
||||||
logger.warning("Unsupported content type=%s", type(content))
|
logger.warning("Unsupported content type=%s", type(content))
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user