Gradio.Net 开发指南 -- 批处理函数

发布时间:2026/8/12 12:23:31
Gradio.Net 开发指南 -- 批处理函数 目录批处理函数批处理函数示例使用 gr.Interface使用 gr.Blocks工作原理上一篇Gradio.Net (https://github.com/feiyun0112/Gradio.Net)是一个开源的 .NET 库它是 Gradio 的 .NET 移植版本允许你为机器学习模型、API 或任何 C# 函数快速构建演示或 Web 应用程序无需任何 JavaScript、CSS 或 Web 开发经验批处理函数Gradio.Net 支持批处理函数。批处理函数接收列表形式的输入并返回列表形式的预测结果。批处理函数示例下面是一个批处理函数示例接收字符串列表和长度列表返回截断后的字符串列表Liststring TrimWords(Liststring words, Listdouble lens) { Thread.Sleep(5000); var trimmedWords new Liststring(); for (int i 0; i words.Count; i) { int len (int)lens[i]; trimmedWords.Add(words[i].Length len ? words[i][..len] : words[i]); } return trimmedWords; }使用gr.Interface通过设置batch: true和maxBatchSize参数启用批处理using Gradio.Net; using Gradio.Net.Components; // Batch function: accepts a list of strings and lengths, returns truncated strings Liststring TrimWords(Liststring words, Listdouble lens) { Thread.Sleep(5000); var trimmedWords new Liststring(); for (int i 0; i words.Count; i) { int len (int)lens[i]; trimmedWords.Add(words[i].Length len ? words[i][..len] : words[i]); } return trimmedWords; } using var demo gr.Interface( fn: TrimWords, inputs: new Listobject { textbox, number }, outputs: new Listobject { textbox }, batch: true, maxBatchSize: 16); await demo.Launch();使用gr.Blocksusing Gradio.Net; using Gradio.Net.Components; using Gradio.Net.Events; // Batch function: accepts a list of strings and lengths, returns truncated strings Liststring TrimWords(Liststring words, Listdouble lens) { Thread.Sleep(5000); var trimmedWords new Liststring(); for (int i 0; i words.Count; i) { int len (int)lens[i]; trimmedWords.Add(words[i].Length len ? words[i][..len] : words[i]); } return trimmedWords; } using var demo gr.Blocks(); using (gr.Row()) { var word gr.Textbox(label: word); var leng gr.Number(label: leng); var output gr.Textbox(label: Output); using (gr.Row()) { var run gr.Button(Run); run.Click( fn: TrimWords, inputs: new ListComponent { word, leng }, outputs: output, batch: true, maxBatchSize: 16); } } await demo.Launch();工作原理批处理函数的优势在于启用队列后Gradio 服务器可以自动将传入的请求打包成批次并并行处理从而显著提升 demo 的吞吐量。在上面的示例中最多可以同时处理 16 个请求总推理时间 5 秒而不是逐个处理请求总时间 16 × 5 80 秒。引入地址

相关新闻