当前位置: 首页 > news >正文

C# 上传票据文件 调用Dify的API完成OCR识别

        

        为了验证Dify对票据识别的正确率,博主开发了一个批量调用Dify API 完成OCR识别工具,在RPA项目上测试样本数据识别的正确率。只需要点一下按钮,程序就放出10次请求,然后把AI智能体OCR识别的结果全部返回。感谢zoujiawei提供的DifyWebClient类库,我们只需要直接调用就行,不过还是有一些地方需要博主说明一下:

1、Dify 调用API上传文件,还是老问题,如果设置了多个文件,你需要给数组,如果单个文件,你不能给数组,否则接口调用会报错。DifyWebClient类库提供的是多个文件功能,所以Dify中也需要设置成多个文件。

2、DifyWebClient类库,需要在线程中调用,比如winform中使用,你会一直卡在那儿,但如果放线程中,使用就正常了。

网上C# 调用Dify API的代码居然很少,我来提供一篇吧。WinForm .net8

using DifyWebClient.Net;
using DifyWebClient.Net.ApiClients;
using DifyWebClient.Net.Enum;
using DifyWebClient.Net.Models.Base;
using DifyWebClient.Net.Models.Knowledge;
using DifyWebClient.Net.Models.WorkflowApp;namespace DifyUpload
{public partial class Form1 : Form{public Form1(){InitializeComponent();Control.CheckForIllegalCrossThreadCalls = false;}private void toolStripButton1_Click(object sender, EventArgs e){for (int i = 0; i < 10; i++){Task task = Task.Run(() => Thread1());}}void Thread1(){//上传需要识别的图片WorkflowAppApiClient workflowAppApiClient = new WorkflowAppApiClient("https://agent.cloud-uat.XXXXX.cn/v1", "app-65i3syVDIQ6U3op3mVdKEXXX");FileUploadResponse fileUploadResponse = workflowAppApiClient.FileUpload(FileToBinaryConverter.ConvertFileToBinary("d:\\527800.png"), "527800.png");// ps(listBox1, fileUploadResponse.id);//准备调用工作流的参数,注意:智能体的文件输入必须是多个文件,设置成单文件会报错!Dictionary<string, object> inputkeyValuePairs = new Dictionary<string, object>();List<FileListElement> fileListElements = new List<FileListElement>();fileListElements.Add(new FileListElement(upload_file_id: fileUploadResponse.id, "image", "local_file", null));inputkeyValuePairs.Add("input_file", fileListElements); // input_file 是自己在dify中的命名参数//调用工作流ExecuteWorkflowRequest executeWorkflowRequest = new ExecuteWorkflowRequest(inputkeyValuePairs, user: "abc-123", ResponseMode.Blocking);CompletionResponse completionResponse = workflowAppApiClient.ExecuteWorkflow(executeWorkflowRequest);//  ps(listBox1, completionResponse.RealJsonstring);//   textBox1.Text = (completionResponse.data.outputs["text"].ToString());// Console.WriteLine(completionResponse.RealJsonstring);// ps(listBox1, completionResponse.data.outputs["text"].ToString());ps(listBox1, completionResponse.data.outputs["text"].ToString());}public void ps(ListBox box, string s){String line = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " " + s;box.Items.Add(line);}}
}

http://www.dtcms.com/a/517102.html

相关文章:

  • 交换机Super密码配置方法(V7
  • 做网站的实施过程足球梦网站建设的基本思路
  • 安阳市住房和城乡建设厅网站华为做网站
  • 欧普建站网页设计与网站建设全攻略
  • 怎么优化自己网站wordpress文章不显示图片
  • 网站公司建立网页设计素材哪里找
  • 网站友情链接交易平台wordpress首页模块排序权限修改
  • 下列哪一项不属于电子商务网站建设网站标题作弊详解
  • 网络故障排查三板斧:路由追踪、端口检查,快速定位网络问题
  • 一站式服务平台官网wordpress后台字体修改
  • Flink状态编程之算子状态(OperatorState)
  • 哔哩哔哩修改版 8.64.0| 去除多项冗余内容和广告,精简流畅好用
  • 如何写网站建设报告3d动画制作流程
  • 网站建设合同表(书)注册万维网网站
  • 数据结构——顺序查找
  • 辽宁网站建设哪里好找深圳网站建设 湖南岚鸿
  • 厦门最早做网站的公司阿里云服务器一年多少钱
  • 电子商城网站开发软件网站维护兼职
  • 秦皇岛做网站的公司怎样有效的做网上宣传
  • 中企动力合作网站佰牛深圳网站建设
  • 义乌购商品详情接口的产业级实现:从批发属性解析到供应链协同的全链路技术方案
  • 接口加密了怎么测?
  • 校友网站建设的意义wordpress缩略图中大大
  • php在线做网站网站群建设系统
  • 【GitOps】Argo CD app of apps
  • 怎么建网站青州问枫深圳网站建设服务商
  • 深圳网站建设金瓷网络怎么制作视频短片加字幕带说话
  • GC 的判定方法
  • 网站建设 鼠标英文手机商城网站建设
  • 彩票网站怎么做收银网站统计代码放哪里