You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Microsoft.Extensions.AI为ChatMessage正确添加图片输入

使用Microsoft.Extensions.AI调用Azure OpenAI gpt-4o-mini实现图片描述

可行性确认

该需求完全可行,gpt-4o-mini支持多模态输入(包含图片),问题出在你当前的消息内容构造方式不符合多模态消息的规范。

正确实现方式

本地图片文件场景

需直接构造包含文本指令和图片内容的多模态ChatMessage,而非先创建单文本消息再追加图片内容:

using Microsoft.Extensions.AI;
using System.IO;

// 读取本地图片字节数据
var imageBytes = File.ReadAllBytes(@"C:\temp\example.jpg");

// 创建包含文本指令与图片的用户消息
var message = new ChatMessage(
    ChatRole.User,
    new TextContent("Please describe this image in one sentence"),
    new ImageContent(imageBytes, "image/jpeg")
);

chatHistory.Add(message);

// 流式获取模型响应
await foreach (var item in chatClient.CompleteStreamingAsync(chatHistory))
{
    Console.Write(item.Text);
}

远程图片URL场景

同样需在ChatMessage构造阶段同时传入文本指令和图片URL内容:

using Microsoft.Extensions.AI;

// 创建包含文本指令与远程图片的用户消息
var message = new ChatMessage(
    ChatRole.User,
    new TextContent("Please describe this image in one sentence"),
    new ImageContent(new Uri("https://example.net/example.jpg"))
);

chatHistory.Add(message);

// 流式获取模型响应
await foreach (var item in chatClient.CompleteStreamingAsync(chatHistory))
{
    Console.Write(item.Text);
}

注意事项

  • 确保Azure OpenAI资源已正确部署gpt-4o-mini模型,且API密钥、端点地址配置无误
  • 图片格式需为模型支持的类型(如JPG、PNG),单张图片大小需符合Azure OpenAI的限制要求
  • 流式调用时需保证异步逻辑正确,避免因同步阻塞导致的响应卡顿

内容的提问来源于stack exchange,提问作者Mark Heath

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 06:15:01