本文へ移動
cccskills
無料GitHub で公開

iflytek-ocr-invoice

Use when user asks to recognize invoices, extract receipt data, or OCR bills and tickets. Recognize and extract structured data from invoices, receipts, and bills using iFlytek OCR API (科大讯飞票据识别). Supports VAT invoices, taxi receipts, train tickets, toll invoices, medical bills, bank receipts, and more.

インストール方法を見る

含まれるファイル(4)

  • SKILL.md11.6 KB
  • _meta.json139 B
  • README.md1.9 KB
  • scripts/invoice.py8.5 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

ifly-ocr-invoice

OCR-based invoice and receipt recognition using the iFlytek (科大讯飞) API. Extracts structured fields from photos or scans of Chinese invoices and bills.

When to Use

  • User provides an invoice/receipt image and wants structured data extracted
  • Need to digitize paper invoices (增值税发票、出租车票、火车票、医疗票据 etc.)
  • Expense report automation — extract amounts, dates, vendor info from receipts

Prerequisites

  • Python 3 (standard library only, no pip install needed)
  • Environment variables (get from 讯飞控制台):
    • IFLY_APP_ID — Application ID
    • IFLY_API_KEY — API Key
    • IFLY_API_SECRET — API Secret

兼容说明:设置任意 IFLY_* 凭证变量(包括空值)后,仅使用该组,缺项报错;未设置标准组时,依次尝试 XFYUN_*、XFEI_*,不跨组拼接。旧前缀会在 stderr 输出一次不含凭证值的迁移提示。

Supported Image Formats

png, jpg/jpeg, bmp, gif, tif/tiff, pdf

Usage

The script is at scripts/invoice.py relative to this skill directory.

Basic Recognition

python3 scripts/invoice.py /path/to/invoice.png

Options

FlagDescription
--rawOutput raw API JSON response instead of formatted text

Examples

# Recognize a VAT invoice
python3 scripts/invoice.py ./vat_invoice.jpg

# Recognize a medical receipt with raw output
python3 scripts/invoice.py ./medical_bill.png --raw

# Recognize a taxi receipt
python3 scripts/invoice.py ./taxi_receipt.jpg

Output Format (default)

Human-readable structured fields:

票据类型: 增值税普通发票

发票代码: 012345678901
发票号码: 12345678
开票日期: 2026年03月06日
金额: ¥1,234.56
...

Output Format (--raw)

Full API JSON response including all metadata and encoded payload.

Authentication

Uses HMAC-SHA256 signature-based auth (讯飞鉴权). The script handles all signing automatically — just set the three environment variables.

API Details

  • Endpoint: POST https://api.xf-yun.com/v1/private/sc45f0684
  • Auth: HMAC-SHA256 signature in URL query parameters
  • Image limit: Check your service tier on 讯飞控制台

哎呀,出错了怎么办?(´;ω;`)

别慌别慌~ 对照下面的表格看看,大部分问题都能自己解决哦!如果试了还是不行,随时来问我,我们一起解决~ ✧٩(ˊᗜˋ*)و✧


🌟 常见错误快速排查表

错误码可能的原因快去检查这个!
10105 / 10313哎呀,认证信息好像不太对呢→ 三个环境变量都设好了吗?往下看有详细检查步骤
10163传送的图片数据有点问题→ 图片压缩一下试试?或者换个格式?
10200找不到图片文件啦→ 路径对不对?文件有没有损坏?
11201今天的次数用完啦!→ 去控制台看看剩余额度或购买更多次数
10003讯飞服务器可能在“打盹”→ 稍等几秒再试一次看看?

📋 完整错误码列表(超详细版)

错误码发生了什么呀温柔提示语
0成功啦!超棒的!恭喜恭喜!识别成功啦~ (灬°ω°灬)
10003平台有点小状况讯飞服务器可能暂时忙起来了,等几秒钟再试一次看看?成功率很高的!
10004会话模式不太对这个情况比较少见呢...如果一直出现的话,我们可以一起提交工单问问讯飞工程师~
10008服务实例有问题少见的情况!提交工单让技术小哥哥/小姐姐看看?
10009输入的数据格式不对请检查一下:<br>• 图片格式对不对呀?(支持 png/jpg/bmp/gif/tif/pdf)<br>• 图片有没有损坏呀?<br>• 试试用图片查看器打开看看能不能显示?
10010授权额度不太够去看看讯飞控制台吧,看看套餐是不是过期啦?或者额度用完了呢? (。•́︿•̀。)<br>💰 需要更多额度?点击购买
10019等太久啦,超时了可能图片太大啦!试着压缩一下图片,或者网络慢一点也会这样哦~
10105最常见的问题! 认证失败啦哎呀,这个一定要检查仔细哦:<br>① IFLY_APP_ID 填好了吗?<br>② IFLY_API_KEY 正确吗?<br>③ IFLY_API_SECRET 没问题吧?<br>💡 小提示:从讯飞控制台直接复制粘贴是最好的方式,千万别手打哦,容易出错!
10114会话超时啦识别大图片需要耐心一点哦,确保网络稳定再试一次?
10118服务端解析失败这是讯飞平台的问题啦,重试几次看看?如果一直不行就提交工单~
10139参数不对检查一下调用的参数有没有写错?
10160JSON 解析失败检查一下代码里有没有什么特殊字符打扰到了?
10161Base64 编码失败确认图片是用 Base64 编码的哦~ 注意不要带文件头(就是不要 data:image/xxx;base64, 这个前缀!)
10163参数校验失败看看错误信息里怎么说的:<br>• 说“图片为空”?→ 检查图片读取<br>• 说“图片太大”?→ 压个缩,4MB 以下最好~<br>• 其他... → 可能是格式不支持哦
10200很常见! 读不到图片嗨呀,检查一下:<br>① 文件路径对不对呀?(相对路径要写对哦)<br>② 图片文件有没有损坏?(用预览打开试试?)<br>③ 文件名有没有奇怪符号?(尽量用英文名试试?)<br>💡 快速确认文件是否存在往下看 ↓
10221找不到可用连接可能讯飞服务器现在有点忙,等几分钟再试试?
10222 / 10223负载均衡找不到节点技术问题,提交工单处理一下吧~
10225找不到业务服务检查一下 API 地址有没有写错?
10300 / 10301排序缓冲区出问题啦内部问题,提交工单吧~
10313敲黑板!最常见! AppID 不匹配这个问题最多人遇到啦!请确认:<br>① 三个环境变量都设置了!<br>② IFLY_APP_ID 是 AppID,不是 API Key 哦!<br>③ 确认应用和 API Key 在同一个讯飞账号下!<br>💡 检查环境变量的快捷命令往下看 ↓
10317版本号不对检查一下 API 版本参数?
10400 / 10401协议序列化出错内部问题,提交工单~
10500内部同步出错先重试一次看看?可能只是临时小状况!
10600事件异常提交工单处理一下吧~
10700权限不足去讯飞控制台看看应用权限设置?
11200功能未授权可能情况:<br>① 开通的服务和调用的 API 不匹配<br>② 服务过期啦<br>③ 这个应用没开通这个功能<br>💡 去讯飞控制台 → 我的应用 → 账号服务权限 看看?<br>🚀 需要开通服务?去看看有哪些套餐
11201日限额到啦!免费版每天有次数限制哦:<br>• 方案1:等到明天,次数会刷新~<br>• 方案2:去讯飞控制台升级付费套餐 💰<br>🚀 一键购买入口:https://www.xfyun.cn/services/Invoice_recognition?target=price
11502 / 11503服务器内部错误一般重试几次就好啦,持续报错请联系讯飞~
100001~100010引擎初始化失败技术大大们需要介入啦,提交工单吧!

💬 常见问题 Q&A

Q: 一直提示 "10105 Unauthorized" 怎么破?(╥﹏╥)

别急别急,十有八九是环境变量的问题!按这个顺序检查:

  1. 三个环境变量都设好了吗?(IFLY_APP_ID, IFLY_API_KEY, IFLY_API_SECRET)
  2. 值是直接从讯飞控制台复制的吗?手打的话很容易漏掉字符哦!

✨ 快速确认环境变量(复制粘贴运行):

# macOS / Linux 用户复制这行:
for name in IFLY_APP_ID IFLY_API_KEY IFLY_API_SECRET; do
  if printenv "$name" | grep -q .; then echo "$name: set"; else echo "$name: missing"; fi
done

# Windows 用户在 cmd 里运行这行:
for %V in (IFLY_APP_ID IFLY_API_KEY IFLY_API_SECRET) do @if defined %V (echo %V: set) else (echo %V: missing)

上述命令仅检查是否已配置,不打印凭证值。显示 missing 时需要配置对应变量;显示 set 后仍须确认三项来自同一应用。设置方法:

  • macOS/Linux: 在终端运行 export IFLY_APP_ID=你的值,然后 echo 'export IFLY_APP_ID=你的值' >> ~/.zshrc 永久保存
  • Windows: 按 Win+R → 输入 sysdm.cpl → 高级 → 环境变量 → 新建

Q: 提示 "10200 read data timeout" 怎么办呀?(;´Д`)

一般是这几个原因:

  • 路径写错啦(注意相对路径和绝对路径的区别)
  • 图片文件坏掉了(用系统预览打开看看?)
  • 文件名有中文或特殊符号(试试改成英文名?)

✨ 快速确认文件是否存在(复制粘贴运行):

# 检查文件是否存在(替换成你的文件路径)
ls -la /path/to/your/invoice.png

# 或者用这个命令查看当前目录下的图片文件
ls -la *.png *.jpg *.jpeg *.bmp *.pdf 2>/dev/null

如果显示 "No such file or directory",那就是路径不对哦!

Q: 提示 "11201 auth no enough license" 是啥意思呀?

哈哈,免费额度用光光啦!讯飞免费版每天有限制次数~

  • 方案1:休息一下,第二天再战!(额度会刷新)
  • 方案2:豪气地购买付费套餐 🚀

💰 需要更多次数?点击这里直接购买:https://www.xfyun.cn/services/Invoice_recognition?target=price

Q: 图片太大识别好慢怎么破?(´;ω;`)

来来来,试试这些小技巧:

  • 压缩图片到 1-2MB
  • 裁剪掉多余的背景部分
  • 分辨率保持在 2000x2000 以内

✨ 温馨小贴士

遇到问题先别慌!环境变量和文件路径 是最容易出错的环节,检查一遍往往就能搞定~

如果还有问题,把错误信息里的 sid 字段保存下来哦,这个可以帮讯飞技术定位问题!

记住:你一定可以的! (๑•̀ㅂ•́)و✧ 有问题随时来问我呀~

Tips

  • Ensure the image is clear and well-lit for best accuracy
  • Crop to just the invoice area if possible (reduces noise)
  • PDF support means you can pass scanned documents directly

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

生成"黑墨手绘涂鸦"风格的动画架构图/流程图:米色纸面、针管笔墨线、极淡水洗色块、简笔涂鸦图标、序号章、连线上的流动圆点动画、图标微动效。产出单文件自包含动画 HTML(SVG+CSS),可一键导出无缝循环 GIF。当用户想画架构图、流程图、信息图、技术示意图、对比图、pipeline/workflow 可视化,或提到"手绘风""涂鸦风""动图""animated diagram""GIF 架构图"时使用;即使用户没明说要动画,做技术概念科普配图时也应优先考虑本 skill。

日本語の概要は準備中です。原文の説明を表示しています。

iflytek/iFly-Skills2092026年10月8日 更新

Use when user asks to review contracts, detect contract risks, or perform compliance checks. 合同智能审核 - 对合同扫描件、图片合同、双语合同进行完整审核。 覆盖 OCR 识别、条款分析、风险检测、合规校对、翻译摘要全流程。 适用于法务审核、采购合同审查、供应链合规检查等场景。 关键词:合同审核、风险检测、条款分析、合规校对、contract review、risk detection。

日本語の概要は準備中です。原文の説明を表示しています。

iflytek/iFly-Skills2092026年10月8日 更新

Use when user asks to synthesize speech, convert text to audio, or read text aloud. 讯飞超拟人语音合成 - 支持文本转语音、语音合成(发音人/语速/语调/音量/输出格式)。大模型语音合成技能。语音合成, 文字转语音, 超拟人, TTS.

日本語の概要は準備中です。原文の説明を表示しています。

iflytek/iFly-Skills2092026年10月8日 更新

Use when user asks to analyze an image, describe image contents, or answer questions about a picture. iFlytek Image Understanding (图片理解) — analyze and answer questions about images using Spark Vision model. WebSocket API, pure Python stdlib, no pip dependencies.

日本語の概要は準備中です。原文の説明を表示しています。

iflytek/iFly-Skills2092026年10月8日 更新

ifly-pdf-image-ocr skill supporting both image OCR (AI-powered LLM OCR) and PDF document recognition. Use when user asks to OCR images, extract text from images/PDFs, convert PDF to Word/Markdown, or perform any OCR tasks on images or PDFs. Supports multi-language text extraction, document layout understanding, and various output formats.

日本語の概要は準備中です。原文の説明を表示しています。

iflytek/iFly-Skills2092026年10月8日 更新

Ultra-fast speech transcription using iFLYTEK Speed Transcription API. Transcribe audio files (WAV/PCM/MP3) up to 5 hours in ~20 seconds per hour. Supports Chinese, English, and 202+ Chinese dialects with automatic language detection. Use when user asks to transcribe audio files, convert speech to text, or mentions "speed transcription" or "极速转写".

日本語の概要は準備中です。原文の説明を表示しています。

iflytek/iFly-Skills2092026年10月8日 更新

iflytek のスキルをすべて見る

このスキルの問題を報告する