第四篇:识别图片

首先我们用GPT来读,理解。

1、从文件里读配置

azure_key.txt
├─ 第 1 行:deploymentName
├─ 第 2 行:endpoint
├─ 第 3 行:api key
2、创建 Azure OpenAI 客户端

这里用的是 Azure.AI.OpenAI + OpenAI.Chat 这一套新的 SDK 组合。

重点在这句:

new AzureOpenAIClient(new Uri(endpoint), credential)
它相当于告诉程序:“我要连的是 Azure 上你自己部署的 OpenAI 服务,不是官方公共 API。”

3、把 ChatClient 变成一个 AI Agent

这一句是灵魂所在

.AsAIAgent(
name: “VisionAgent”,
instructions: “You are a helpful agent that can analyze images”);
这一步做了几件事:

给 AI 起了个名字:VisionAgent
给它一个长期有效的人设 / 系统指令
告诉它:你主要负责看图、分析
这比每次手写 system prompt 要干净很多。

4、构造一个“文字 + ”的用户消息

这里用的是 Microsoft.Extensions.AI.ChatMessage,

而且一条消息里可以塞多个内容块:

TextContent:文字(中文提问)
DataContent:的二进制数据
也就是说,AI 一次就能同时“看到你说了什么 + 给了什么图”。

5、用 Session 跑一个可持续对话

var session = await agent.CreateSessionAsync();
这一步的意思是:“我们不是一次性问答,而是开启一个会话上下文。”

6、用流式方式拿结果,边生成边输出

await foreach (var update in agent.RunStreamingAsync(message, session))
{
Console.Write(update);
}
整体代码:

using Azure.AI.OpenAI;
using Microsoft.Extensions.AI;
using OpenAI.Chat;
using System.ClientModel;
using ChatMessage = Microsoft.Extensions.AI.ChatMessage;

var arr = File.ReadAllLines(“C:/gpt/azure_key.txt”);
var endpoint = arr[1];
var deploymentName = arr[0];
var credential = new ApiKeyCredential(arr[2]);
var agent = new AzureOpenAIClient(new Uri(endpoint), credential)
.GetChatClient(deploymentName)
.AsAIAgent(
name: “VisionAgent”,
instructions: “You are a helpful agent that can analyze images”);
ChatMessage message = new(ChatRole.User, new TextContent(“解释一下这个”), new DataContent(File.ReadAllBytes(“test.png”),”image/jpeg”) );
var session = await agent.CreateSessionAsync();
await foreach (var update in agent.RunStreamingAsync(message, session))
{
Console.Write(update);
}
为:

运行结果:

下面用Ollama+deepseek-ocr模型来通过识别文字。

整体代码:

using Azure.AI.OpenAI;
using Microsoft.Extensions.AI;
using OllamaSharp;
using OpenAI.Chat;
using System.ClientModel;
using ChatMessage = Microsoft.Extensions.AI.ChatMessage;

var ollamaEndpoint = “http://localhost:11434”;
var ollamaModel = “deepseek-ocr:latest”;
var agent = new OllamaApiClient(ollamaEndpoint, ollamaModel)
.AsAIAgent(name: “VisionAgent”,
instructions: “You are a helpful agent that can analyze images”);
ChatMessage message = new(ChatRole.User, [
new TextContent(“中的文字内容是什么?”),
new DataContent(File.ReadAllBytes(“shufa.jpg”),”image/jpeg”)
);
var session = await agent.CreateSessionAsync();
await foreach (var update in agent.RunStreamingAsync(message, session))
{
Console.Write(update);
}
为:

运行结果:

声明:来自硅基-桂迹,仅代表创作者观点。链接:https://eyangzhen.com/6231.html

硅基-桂迹的头像硅基-桂迹

相关推荐

添加微信
添加微信
Ai学习群
返回顶部