C# .net ai Agent AI视觉应用 写代码 改作业 识别屏幕 标注等

C# net deepseek RAG AI开发 全流程 介绍_c# 向量处理 deepseek-CSDN博客

视觉多模态大模型 通义千问2.5-VL-72B

AI大模型能看懂图 看懂了后能干啥呢

如看懂图 让Agent 写代码 ,改作业,识别屏幕 标注等等。。。

据说是目前最好的免费图片识别框架 通义千文 免费开源大模型

GitHub - QwenLM/Qwen2.5-VL: Qwen2.5-VL is the multimodal large language model series developed by Qwen team, Alibaba Cloud.

食谱

食谱 描述 打开
普遍认可 不仅可以识别动物、植物、人和景点,还可以识别汽车和商品等各种物体。
强大的文档解析能力 文档的解析已经达到了更高的水平,不仅包括文本,还包括布局位置信息和我们的 Qwen HTML 格式。
跨格式的精确对象接地 它使用绝对位置坐标,同时支持方框和点,允许定位和标记任务的多样化组合。
通用 OCR 和关键信息提取 在自然场景和多种语言下提供更强的文本识别能力,支持多样化的关键信息提取需求。
视频理解 更好的视频 OCR、长视频理解和视频接地。
移动代理 定位并思考手机控制。
计算机使用代理 定位和思考控制计算机和 Web。

文本+视图 理解

cs 复制代码
public async Task<IEnumerable<FaceItem>?> GetAnnotationAsync(string imagePath)
{
    var bytes = await File.ReadAllBytesAsync(imagePath);
    
    var chatHistory = new ChatHistory();
    chatHistory.AddSystemMessage("作为一名图像检测专家,你擅长精确的图像对象检测,以纯文本格式'x1,y1,x2,y2'提供坐标。");
    chatHistory.AddUserMessage([
            new TextContent("框出每一个人脸的位置(不包括身体),以json格式输出所有的坐标,只输出纯json字符,不要夹杂其它字符,并且标注性别(男/女)。"),
            new ImageContent(bytes, "image/jpeg")
        ]
    );
    var reply = await chatCompletionService.GetChatMessageContentAsync(chatHistory);
    if (reply.Content is null) return [];
    var jsonStr = Regex.Replace(reply.Content, @"^\s*```json|```\s*$", "", RegexOptions.Multiline).Trim();
    Console.WriteLine(jsonStr);
    return reply.Content is null ? [] : JsonSerializer.Deserialize<IEnumerable<FaceItem>>(jsonStr);
}

结果

cs 复制代码
[
    {"bbox_2d": [608, 79, 654, 130], "label": "女"},
    {"bbox_2d": [700, 74, 748, 130], "label": "女"},
    {"bbox_2d": [837, 74, 876, 128], "label": "女"},
    {"bbox_2d": [916, 68, 956, 128], "label": "男"},
    {"bbox_2d": [1110, 162, 1174, 224], "label": "女"},
    {"bbox_2d": [707, 338, 813, 438], "label": "女"},
    {"bbox_2d": [918, 424, 988, 512], "label": "男"},
    {"bbox_2d": [1002, 398, 1072, 512], "label": "女"},
    {"bbox_2d": [1080, 382, 1140, 464], "label": "女"},
    {"bbox_2d": [1116, 362, 1205, 512], "label": "女"},
    {"bbox_2d": [590, 578, 678, 672], "label": "女"},
    {"bbox_2d": [721, 584, 774, 646], "label": "女"},
    {"bbox_2d": [797, 622, 874, 672], "label": "女"}
]

代码

cs 复制代码
public class FaceCheckAgentWorker(FaceCheckAgent faceCheckAgent) : BackgroundService
{
    protected override async Task ExecuteAsync(CancellationToken stoppingToken)
    {
        var imagePath = "Images/human1.jpg";
        var faceItems = await faceCheckAgent.GetAnnotationAsync(imagePath);
        if (faceItems == null) return;

        using var image = Image.FromFile(imagePath);
        using var bitmap = new Bitmap(image);
        foreach (var faceItem in faceItems)
        {
            var color = faceItem.Label == "女" ? Color.Red : Color.Blue;
            MyDraw.DrawAnnotationBox(bitmap, faceItem.Box, faceItem.Label, color, 3);
        }
        
        var sampleDir = Path.Combine(Directory.GetCurrentDirectory(), "Output");
        var outputPath = Path.Combine(sampleDir, Path.GetFileName(imagePath));
        bitmap.Save(outputPath, ImageFormat.Jpeg);
        Console.WriteLine($"标注完成,已保存到: {outputPath}");
    }
}

效果

AI 改作业 并标注

cs 复制代码
 public async Task<IEnumerable<HomeworkItem>?> GetAnnotationAsync(string imagePath)
 {
     var bytes = await File.ReadAllBytesAsync(imagePath);
     
     var chatHistory = new ChatHistory();
     chatHistory.AddSystemMessage(
         """
         你是一个作业批改助手,请你标注出图片中的所有题(包括回答),并通过JSON返回批改结果。
         
         JSON格式的批改结果需要包含以下内容:
         - "q_box": 题目的bbox_2d边界框
         - "qc": 题目内容
         - "a_box": 回答的bbox_2d边界框
         - "ac": 回答内容
         - "is": 回答是否正确(布尔值,true或false)
         - 如果回答错误 在 "er"中详细说明错误情况
           
         示例如下:
         [
           {
             "q_box": [0, 0, 0, 0],
             "qc": "题目内容",
             "a_box": [0, 0, 0, 0],
             "ac": "回答内容",
             "is": false,
             "er": "如果回答错误,这里详细说明错误情况,没有错误可以不要该字段"
           }
         ]
         """);
     chatHistory.AddUserMessage([
             new TextContent("批改作业"),
             new ImageContent(bytes, "image/png")
         ]
     );
     var reply = await chatCompletionService.GetChatMessageContentAsync(chatHistory);
     if (reply.Content is null) return [];
     var jsonStr = Regex.Replace(reply.Content, @"^\s*```json|```\s*$", "", RegexOptions.Multiline).Trim();
     Console.WriteLine(jsonStr);
     return reply.Content is null ? [] : JsonSerializer.Deserialize<IEnumerable<HomeworkItem>>(jsonStr);
 }

小老板们都表示 功能很牛逼。。。

C# net deepseek RAG AI开发 全流程 介绍_c# 向量处理 deepseek-CSDN博客

相关推荐
张人玉1 小时前
C# TCP 服务器和客户端
服务器·tcp/ip·c#
睡前要喝豆奶粉1 小时前
.NET Core Web API中数据库相关配置
数据库·c#·.netcore
周杰伦fans2 小时前
C# 中 Entity Framework (EF) 和 EF Core 里的 `AsNoTracking` 方法
开发语言·c#
王中阳Go2 小时前
4 - RAG 知识库进阶 - AI 超级智能体项目教程
人工智能·agent
她说彩礼65万2 小时前
C#设计模式 单例模式实现方式
单例模式·设计模式·c#
武子康4 小时前
AI研究-120 DeepSeek-OCR 从 0 到 1:上手路线、实战要点
人工智能·深度学习·机器学习·ai·ocr·deepseek·deepseek-ocr
王中阳Go4 小时前
3 - RAG 知识库基础 - AI 超级智能体项目教程
人工智能·agent
安思派Anspire5 小时前
构建一个自主深度思考的RAG管道以解决复杂查询--通过网络搜索扩充知识(6)
aigc·openai·agent
ApacheSeaTunnel5 小时前
LLM 时代,DataAgent × WhaleTunnel 如何将数据库变更瞬时 “转译” 为洞察?
大数据·ai·开源·llm·数据同步·白鲸开源·whaletunnel
Juchecar5 小时前
翻译:构建高效智能体 - Anthropic
agent