Gradio.Net 开发指南 -- Flag功能
目录Flag功能基本使用自定义标记目录标记选项图像示例标记模式总结上一篇Gradio.Net (https://github.com/feiyun0112/Gradio.Net)是一个开源的 .NET 库它是 Gradio 的 .NET 移植版本允许你为机器学习模型、API 或任何 C# 函数快速构建演示或 Web 应用程序无需任何 JavaScript、CSS 或 Web 开发经验Flag功能你可能已经注意到在Gradio.Net界面中默认会显示一个Flag标记按钮。当使用你的演示的用户看到有趣的输出例如错误或意外的模型行为时他们可以标记这个输入供你查看。在通过flaggingDir参数指定的目录中会生成一个CSV文件来记录标记的输入。如果界面涉及文件数据例如Image和Audio组件还会创建文件夹来存储这些标记的数据。基本使用让我们来看一个简单的计算器示例展示标记功能的基本使用using Gradio.Net; decimal Calculator(decimal num1, string operation, decimal num2) { if (operation 加) { return num1 num2; } else if (operation 减) { return num1 - num2; } else if (operation 乘) { return num1 * num2; } else if (operation 除) { if (num2 0) { throw new Exception(不能除以零); } return num1 / num2; } return 0; } var demo gr.Interface( fn: Calculator, inputs: new object[] { number, gr.Radio(choices: new[] { 加, 减, 乘, 除 }), number }, outputs: number, title: 简易计算器, description: 这是一个示例计算器展示标记功能。, flaggingMode: manual // 设置为手动标记模式 ); await demo.Launch();运行这个示例后当你在界面上点击Flag按钮时Gradio.Net会在当前目录下创建一个flagged文件夹并在其中生成一个logs.csv文件记录标记的输入和输出。自定义标记目录你可以通过flaggingDir参数自定义标记数据的存储目录var demo gr.Interface( fn: Calculator, inputs: new object[] { number, gr.Radio(choices: new[] { 加, 减, 乘, 除 }), number }, outputs: number, title: 简易计算器, description: 这是一个示例计算器展示标记功能。, flaggingMode: manual, flaggingDir: my_flagged_data // 自定义标记目录 );这样标记的数据会存储在my_flagged_data文件夹中而不是默认的flagged文件夹。标记选项如果你希望用户在标记时提供原因你可以通过flaggingOptions参数传递一个字符串列表。用户在标记时必须选择其中一个字符串这将作为额外的列保存到CSV文件中。var demo gr.Interface( fn: Calculator, inputs: new object[] { number, gr.Radio(choices: new[] { 加, 减, 乘, 除 }), number }, outputs: number, title: 简易计算器, description: 这是一个示例计算器展示标记功能。, flaggingMode: manual, flaggingOptions: new Liststring { 结果错误, 输入异常, 其他原因 } // 标记选项 );图像示例对于涉及图像等文件类型的界面Gradio.Net会自动创建文件夹来存储标记的图像文件。让我们来看一个图像示例using Gradio.Net; using SixLabors.ImageSharp; using SixLabors.ImageSharp.PixelFormats; string Sepia(string inputImg) { // 加载图像 using var image SixLabors.ImageSharp.Image.LoadRgb24(inputImg); // 应用 sepia 滤镜 for (int y 0; y image.Height; y) { for (int x 0; x image.Width; x) { var pixel image[x, y]; // Sepia 滤镜矩阵 int tr (int)(0.393 * pixel.R 0.769 * pixel.G 0.189 * pixel.B); int tg (int)(0.349 * pixel.R 0.686 * pixel.G 0.168 * pixel.B); int tb (int)(0.272 * pixel.R 0.534 * pixel.G 0.131 * pixel.B); // 确保值在有效范围内 pixel.R (byte)Math.Min(255, tr); pixel.G (byte)Math.Min(255, tg); pixel.B (byte)Math.Min(255, tb); image[x, y] pixel; } } // 保存处理后的图像 string outputPath Path.Combine(Path.GetTempPath(), $sepia_{Guid.NewGuid()}.png); image.Save(outputPath); return outputPath; } var demo gr.Interface( fn: Sepia, inputs: gr.Image(), outputs: image, title: Sepia 滤镜演示, description: 上传图像应用 Sepia 滤镜并可标记结果。, flaggingMode: manual ); await demo.Launch();在这个示例中当用户标记一个结果时Gradio.Net会在‎flagged目录下创建一个‎logs.csv文件创建‎inputImg文件夹存储输入图像创建‎output文件夹存储输出图像在CSV文件中记录图像路径标记模式Gradio.Net支持三种标记模式通过flaggingMode参数设置‎manual手动标记模式用户需要点击Flag按钮来标记输入‎auto自动标记模式每次提交都会自动标记‎never禁用标记功能不显示Flag按钮总结标记功能是Gradio.Net中一个非常有用的特性它允许你收集和分析用户反馈以便改进你的模型或应用。你可以自定义标记目录、添加标记选项并根据需要选择不同的标记模式。引入地址

相关新闻

AI量化中医诊断:从多模态数据到可解释模型

AI量化中医诊断:从多模态数据到可解释模型

1. 项目背景与核心思路三年前我在北京同仁堂跟诊时,发现老中医把脉问诊的每个动作都暗含量化标准。比如"脉弦数"对应着每分钟90次以上的脉搏,"舌苔厚腻"意味着舌面覆盖物超过0.5mm。这个发现让我萌生了用AI建模中医诊断过程的想法。…

2026/10/12 11:01:30 阅读更多 →
视觉Transformer寄存器机制解析与工程实践

视觉Transformer寄存器机制解析与工程实践

1. 视觉Transformer中的寄存器现象解析在2023年9月发布的ICLR论文《Vision Transformers Need Registers》中,Meta AI研究团队揭示了一个被长期忽视的视觉Transformer(ViT)特性:模型会自发地将某些背景区域的token转化为"寄存…

2026/10/8 5:51:39 阅读更多 →
DP83816以太网控制器:集成MAC/PHY、PCI总线主控DMA与硬件设计解析

DP83816以太网控制器:集成MAC/PHY、PCI总线主控DMA与硬件设计解析

1. 项目概述:深入解析DP83816 MacPhyter-II™ 以太网控制器 在嵌入式系统和传统PC主板的设计中,网络连接功能的实现往往依赖于一颗核心的通信芯片——以太网控制器。今天要聊的这颗DP83816,来自德州仪器(TI)&#xff0…

2026/9/27 2:21:49 阅读更多 →

最新新闻

Multi-Agent系统Tracing实战:从线上事故到执行链记录体系

Multi-Agent系统Tracing实战:从线上事故到执行链记录体系

1. 从一次线上事故说起:为什么Multi-Agent系统必须做Tracing去年冬天,我们团队上线了一套基于多智能体协作的自动化内容处理系统,四个Agent分别负责信息抽取、逻辑校验、格式转换和最终输出。上线第三天,运营同学反馈说有一批文档…

2026/10/15 5:38:22 阅读更多 →
Java批量生成资产标签PDF:itextpdf配ZXing二维码实战指南

Java批量生成资产标签PDF:itextpdf配ZXing二维码实战指南

上周有位朋友微信找我,说单位三百多台仪器,每年盘点都要两个人蹲在地上逐个抄标签,标签还是买设备时经销商送的,掉了三年没人补。他问我:网上说的“用itextpdf 配合 google.zxing 批量生成资产标签PDF”,到…

2026/10/15 5:38:22 阅读更多 →
Java面试八股文核心真题:并发、JVM、MySQL与Redis深度解析

Java面试八股文核心真题:并发、JVM、MySQL与Redis深度解析

每次面试前,总有人问我Java“八股文”到底要不要背。我的态度很明确:不仅要背,还得背出深度。你光知道synchronized是锁,面试官下一句就是“锁升级过程讲一下”;你光知道HashMap底层是数组加链表,紧接着就是…

2026/10/15 5:38:22 阅读更多 →
Agent Harness工程实战:从循环、上下文到沙箱与验证的稳定运行设计

Agent Harness工程实战:从循环、上下文到沙箱与验证的稳定运行设计

1. 从"能跑"到"跑得住":Harness 工程到底在解决什么很多人第一次接触 Agent 开发,注意力几乎全放在模型本身——提示词怎么写、工具怎么调、输出怎么解析。等真正把 Agent 丢进一个需要连续跑几十分钟甚至几小时的任务里&#xff0c…

2026/10/15 5:38:22 阅读更多 →
用华为云码道 CodeArts 代码智能体,三天从零做出一个全栈 AI 求职平台(附源码)

用华为云码道 CodeArts 代码智能体,三天从零做出一个全栈 AI 求职平台(附源码)

一键开通华为云码道 CodeArts 代码智能体 项目仓库:https://atomgit.com/gcw_93rlw6ed/careerpilot (公开,MIT 协议) 演示账号:打开登录页自动进入(演示账号 candidatedemo.com 自动登录) 一、…

2026/10/15 5:38:22 阅读更多 →
Vue项目实现Office文档在线预览:DOCX、XLSX、PPT一次搞定

Vue项目实现Office文档在线预览:DOCX、XLSX、PPT一次搞定

做前端这几年,被文档预览折磨的次数真不算少。之前接一个合同管理需求,用户提了个特别朴素的要求:附件里的Word合同不要下载到本地再打开,在网页里直接能看就行。我一开始也心想,这有什么难的?不就是嵌一个…

2026/10/15 5:37:22 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →