[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-microsoft--OCR-Form-Tools":3,"tool-microsoft--OCR-Form-Tools":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",156033,2,"2026-04-14T23:32:00",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":76,"owner_email":77,"owner_twitter":78,"owner_website":79,"owner_url":80,"languages":81,"stars":116,"forks":117,"last_commit_at":118,"license":119,"difficulty_score":10,"env_os":120,"env_gpu":121,"env_ram":121,"env_deps":122,"category_tags":132,"github_topics":133,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":141,"updated_at":142,"faqs":143,"releases":174},7634,"microsoft\u002FOCR-Form-Tools","OCR-Form-Tools","A set of tools to use in Microsoft Azure Form Recognizer and OCR services.","OCR-Form-Tools 是一款专为微软 Azure Form Recognizer 和 OCR 服务打造的开源标注与测试工具。它主要解决了用户在训练自定义表单识别模型时，缺乏高效、灵活的数据标注及验证环境的痛点。通过该工具，用户可以轻松对 PDF、JPEG 或 TIFF 格式的文档进行可视化标注，利用标注数据训练模型，并即时预测分析单个表单以提取关键键值对，从而形成完整的“标注 - 训练 - 验证”工作流。\n\n这款工具特别适合开发者、数据科学家以及需要处理大量结构化文档的企业技术人员使用。无论是希望深度定制识别逻辑的工程师，还是想要提前体验最新预览功能的研究者，都能从中受益。OCR-Form-Tools 基于 React、Redux 和 TypeScript 构建，不仅支持在浏览器中直接运行，还提供了 Docker 容器化部署方案，甚至能打包为独立的桌面应用程序。其桌面版本额外支持本地文件系统存储和跨域资源请求，为不同网络环境下的用户提供了极大的灵活性。作为微软官方维护的开源项目，它允许用户根据特定需求修改源码，是探索和优化 Azure 表单识别能力的得力助手。","\n# Form OCR Testing Tool\n\nHelp us improve Form Recognizer. [Take our survey!](https:\u002F\u002Faka.ms\u002FFR-HaTS-Survey)\n\n## Features Preview\n\n[![Build Status](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_OCR-Form-Tools_readme_7e222974ae30.png)](https:\u002F\u002Fdev.azure.com\u002Fmsazure\u002FCognitive%20Services\u002F_build\u002Flatest?definitionId=118293&branchName=master)\n\nAn open source labeling tool for [Form Recognizer](https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Fazure\u002Fcognitive-services\u002Fform-recognizer\u002F), part of the Form OCR Test Toolset (FOTT).\n\nThis is a `MAIN` branch of the Tool. It contains all the newest features available. This is **NOT** the most stable version since this is a preview.\n\nThe purpose of this repo is to allow customers to test the tools available when working with Microsoft Forms and OCR services.  Currently, Labeling tool is the first tool we present here.  Users could provide feedback, and make customer-specific changes to meet their unique needs.  Microsoft Azure Form Recognizer team will update the source code periodically.  If you would like to contribute, please check the contributing section.\n\n* **If you want to checkout our latest GA version, please go to [Form-Recognizer-Toolkit](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FForm-Recognizer-Toolkit\u002Ftree\u002Fmain\u002FSampleCode\u002FLabelingUX), or use [Form Recognizer Studio](https:\u002F\u002Fformrecognizer.appliedai.azure.com\u002Fstudio).**\n* **If you want to checkout our V2.1 GA  version of the tool, please follow this [link](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FOCR-Form-Tools\u002Ftree\u002Fv2.1-General-Availability-Release).**\n* **If you want to checkout our V2.0 GA  version of the tool, please follow this [link](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FOCR-Form-Tools\u002Ftree\u002Fv2.0-General-Availability-Release).**\n\n___\n\nFOTT's Labeling Tool is a React + Redux Web application, written in [TypeScript](https:\u002F\u002Fgithub.com\u002FMicrosoft\u002FTypeScript). This project was bootstrapped with [Create React App](https:\u002F\u002Fgithub.com\u002Ffacebook\u002Fcreate-react-app).\n\nCurrent Features of Labeling Tool: (you can view a short demo [here](https:\u002F\u002Fyoutu.be\u002FGRGs18lZJ1E?t=462))\n\n* **Label** forms in PDF, JPEG or TIFF formats.\n* **Train** model with labeled data through [Form Recognizer](https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Fazure\u002Fcognitive-services\u002Fform-recognizer\u002F)\n* **Predict\u002FAnalyze** a single form with the trained model, to extract key-value predictions\u002Fanalyses for the form.\n\n## Getting Started\n\n### Build and run from source\n\nForm Labeling Tool requires [NodeJS (>= 10.x, Dubnium) and NPM](https:\u002F\u002Fgithub.com\u002Fnodejs\u002FRelease)\n\n   ```bash\n    git clone https:\u002F\u002Fgithub.com\u002FMicrosoft\u002FOCR-Form-Tools.git\n    cd OCR-Form-Tools\n    yarn install\n    yarn build\n    yarn start\n   ```\n\n### Set up this tool with Docker\n\nPlease see instructions [here](https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Fazure\u002Fcognitive-services\u002Fform-recognizer\u002Fquickstarts\u002Flabel-tool#set-up-the-sample-labeling-tool), and view our docker hub repository [here](https:\u002F\u002Fhub.docker.com\u002F_\u002Fmicrosoft-azure-cognitive-services-custom-form-labeltool?tab=description) for the latest container image info.\n- `latest` docker image tags track the general availability releases of FOTT.\n- `latest-preview`, docker image tags track the preview releases of FOTT.\n- `latest-preview-private`, docker image tags track the private preview releases of FOTT.\n\n### Run as web application\n\nUsing a modern Web browser, FOTT can be run directly at: \n- https:\u002F\u002Ffott-2-1.azurewebsites.net\u002F\n\n**Note: these web app are for testing purpose only. HTTPS is required, unless it's for localhost.**\n\n### Run as desktop application\n\nFOTT can be run as a desktop application after initial set up.\n\n   ```bash\n    yarn electron-start\n   ```\n\nThe desktop application has additional features, such as:\n- Support for local file system as provider storage\n- Support for cross-domain resource requests\n\n### Release as desktop application\n\nFOTT can be released as a distributable desktop application.\n\n   ```bash\n    yarn release\n   ```\nThe distributable will saved in the releases folder of the cloned repository.\n\n\n\n## Using labeling tool\n\n### Set up input data\n\nTo go thru a complete label-train-analyze scenario, you need a set of at least six forms of the same type. You will label five forms to train a model and one form to test the model.  You could upload the [sample files](https:\u002F\u002Fgo.microsoft.com\u002Ffwlink\u002F?linkid=2090451) to the root of a blob storage container in an Azure Storage account. You can use [Azure Storage Explorer](https:\u002F\u002Fazure.microsoft.com\u002Fen-us\u002Ffeatures\u002Fstorage-explorer\u002F) to upload data.   For advanced scenarios where there are forms in quite different formats, you could organize them into subfolders based on similar format. When you set up your project to train a model from one format, you need to specify a subfolder in the project setting page.\n\n#### Configure cross-domain resource sharing (CORS)\n\nEnable CORS on your storage account. Select your storage account in the Azure portal and click the **CORS** tab on the left pane. On the bottom line, fill in the following values. Then click **Save** at the top.\n\n* Allowed origins = *\n* Allowed methods = [select all]\n* Allowed headers = *\n* Exposed headers = *\n* Max age = 200\n\n![alt text](docs\u002Fimages\u002Fcors-setup.png \"CORS setup\")\n\n### Create Connections\n\nForm OCR Testing Tool is a 'Bring Your Own data' (BYOD) application. In this tool, connections are used to configure and manage source (the assets to label) and target (the location where labels should be exported). The source and target are the same location in Form OCR Testing Tool. Eventually, they together will be inputs to [Form Recognizer](https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Fazure\u002Fcognitive-services\u002Fform-recognizer\u002F).\nConnections can be set up and shared across projects. They use an extensible provider model, so new source\u002Ftarget providers can easily be added.\n\nCurrently, both this labeling tool and [Form Recognizer](https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Fazure\u002Fcognitive-services\u002Fform-recognizer\u002F) only support [Azure blob storage](https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Fazure\u002Fstorage\u002Fblobs\u002Fstorage-blobs-introduction).\n\nTo create a new connection, click the `New Connections` (plug) icon, in the left hand navigation bar.\n\nFill in the fields with the following values:\n\n* **Display Name** - The connection display name.\n* **Description** - Your project description.\n* **SAS URL** - The shared access signature (SAS) URL of your Azure blob storage container. To retrieve the SAS URL, open the Microsoft Azure Storage Explorer, right-click your container (note: not the parent storage node, not the URL in your Azure portal), and select Get shared access signature. Set the expiry time to some time after you'll have used the service. Make sure the Read, Write, Delete, and List permissions are checked, and click Create. Then copy the value in the URL section. It should have such format: https:\u002F\u002F&lt;storage account&gt;.blob.core.windows.net\u002F&lt;container name&gt;?&lt;SAS value&gt;.\n\n![alt text](docs\u002Fimages\u002Fnew-connection.png \"New Connection\")\n\n![alt_text](docs\u002Fimages\u002Fget-sas.PNG \"Get SAS URL\")\n\n### Create a new project\n\nIn this labeling tool, a project is used to store your configurations and settings. Create a new project and fill in the fields with the following values:\n\n* **Display Name** - the project display name\n* **Security Token** - Some project settings can include sensitive values, such as API keys or other shared secrets. Each project will generate a security token that can be used to encrypt\u002Fdecrypt sensitive project settings. You can find security tokens in the Application Settings by clicking the gear icon in the lower corner of the left navigation bar.\n* **Source Connection** - The Azure blob storage container connection you created in the previous step that you would like to use for this project.\n* **Folder Path** - Optional - If your source forms are located in a sub-folder on the blob container, specify the folder name here\n* **Form Recognizer Service Uri** - Your Form Recognizer endpoint URL.  It should have such format: https:\u002F\u002F&lt;your-name&gt;.cognitiveservcices.azure.com.\n* **API Key** - Your Form Recognizer subscription key.\n* **Description** - Optional - Project description\n\n![alt text](docs\u002Fimages\u002Fnew-project.png \"New Project\")\n\n### Label your forms\n\nWhen you create or open a project, the main tag editor window opens. The tag editor consists of three parts:\n\n* A preview pane that contains a scrollable list of forms from the source connection.\n* The main editor pane that allows you to label text by applying tags.\n* The tags editor pane that allows users to modify, reorder, and delete tags.\n\n#### Identify text elements and tables\n\nClick **Run OCR on all files** on the left pane to get the text layout information for each document. The labeling tool will draw bounding boxes around each text element and display an icon at the top left corner of each table. You can click a table's icon to display that table's identified borders\n\n#### Apply labels to text\n\nNext, you'll create labels and apply them to the text elements that you want the model to recognize.  There are many key-value pairs in a document you would like to train a model to extract,  the first step is to label the value of the key-value pair.  For example, you see text `Charge: 1002.00` in a form, and you would like to label the value (1002.00),  so that AI model could be trained to extract such information on similar forms.\n\n1. First, use the tags editor pane to create the tags (labels) you'd like to identify, e.g, \"Cost\".\n\n2. In the main editor, click and drag to select one or multiple words from the highlighted text elements. e.g., \"1002.00\". Note: You cannot currently select text that spans across multiple pages.\n\n3. Click on the tag you want to apply, or press corresponding keyboard key (e.g., key '1' for the first tag). You can only apply one tag to each selected text element, and each tag can only be applied once per page.\n\nFollow the above steps to label five of your forms, and then move on to the next step.\n\n![alt text](docs\u002Fimages\u002Fapply-labels.png \"Apply Labels\")\n\n#### Specify tag type and format\n\nYou can specify tag type and format with tag contextual menu. The type and format information will be stored in fields.json in the source location. The information will be used in post-processing to get better result.\n\n![alt text](docs\u002Fimages\u002Fspecify-tag-type-format.png \"Specify Tag Type and Format\")\n\n#### Train a custom model\n\nClick the Train icon on the left pane to open the Training page. Then click the **Train** button to begin training the model. Once the training process completes, you'll see the following information:\n\n* **Model ID** - The ID of the model that was created and trained. Each training call creates a new model with its own ID. Copy this string to a secure location; you'll need it if you want to do prediction\u002Fanalysis calls through the REST API.\n* **Average Accuracy** - The model's average accuracy. You can improve model accuracy by labeling additional forms and training again to create a new model. We recommend starting by labeling five forms and adding more forms as needed.\n* The list of tags, and the estimated accuracy per tag.\n\n![alt text](docs\u002Fimages\u002Ftrain-model.png \"Train Model\")\n\nAfter training finishes, examine the **Average Accuracy** value. If it's low, you should add more input documents and repeat the steps above. The documents you've already labeled will remain in the project index.\n\nTip: You can also run the training process with a REST API call. To learn how to do this, see [Train with labels using Python](https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Fazure\u002Fcognitive-services\u002Fform-recognizer\u002Fquickstarts\u002Fpython-labeled-data).\n\n#### Analyze a form ####\n\nClick on the Analyze icon on the left pane to open the Analyze page. Upload a form document that you haven't used in the training process. Then click the **Analyze** button on the right to get key-value predictions\u002Fanalyses for the form. The tool will highlight fields and its bounding boxes and will report the confidence of each value.\n\n![alt text](docs\u002Fimages\u002Fanalyze-form.png \"Analyze Form\")\n\nTip: You can also run the Analyze API with a REST call. To learn how to do this, see [Train with labels using Python](https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Fazure\u002Fcognitive-services\u002Fform-recognizer\u002Fquickstarts\u002Fpython-labeled-data).\n\n#### Compose a model ####\nClick the Compose icon on the left pane to open the Compose page. FoTT will display the first page of your models—by decending order of Model ID—in a list. Select multiple models you want to compose into one model and click the **Compose** button. Once the new model has been composed, it's ready to analyze with.\n\n![alt text](docs\u002Fimages\u002Fcompose.png \"Compose\")\n\nTo load more of your models, click the **Load next page** button at the bottom of the list. This will load the next page of your models by decending order of model ID.\n\nYou can sort the currently loaded models by clicking the column headers at the top of the list. Only the currently loaded models will be sorted. You will need to load all pages of your models first and then sort to view the complete sorted list of your models.  \n\n#### Save a project and resume later ####\n\nTo resume your project at another time or in another browser, you need to save your project's security token and reenter it later.\n\n##### Get project credentials #####\n\nGo to your project settings page (document setting icon) and take note of the security token name. Then go to your application settings (gear icon), which shows all of the security tokens in your current browser instance. Find your project's security token and copy its name and key value to a secure location.\n\n##### Restore project credentials #####\n\nWhen you want to resume your project, you first need to create a connection to the same blob storage container. Repeat the steps above to do this. Then, go to the application settings page (gear icon) and see if your project's security token is there. If it isn't, add a new security token and copy over your token name and key from the previous step. Then click Save Settings.\n\n##### Resume a project #####\n\nFinally, go to the main page (house icon) and click Open Cloud Project. Then select the blob storage connection, and select your project's .proj file. The application will load all of the project's settings because it has the security token.\n\n##### Share a project\n\nFoTT allow sharing of projects with somebody who use the tool too and share access to same Azure Blob Storage container where a project is located.\nIn order to share project follow these steps:\n\n###### On the sending side:\n\n1. Open the project you want to share in the tool. In the right top corner find and click \"share\" icon ![alt text](docs\u002Fimages\u002Fshare-icon.png \"Share project menu icon\").\nYou should see a message pop-up saying that your share string been saved in your clipboard.\n2. Share the string in you clipboard via any convenient way for you.\n\n###### On the receiving side:\n\n1. Go to the \"Home Page\", and click on \"Open Cloud Project\".\n2. Insert shared string to appropriate field in the pop-up.\n3. Click okay.\n\n#### Keyboard Shortcuts and useful tips ####\n\nLabeling tool allows a number of keyboard shortcuts to support accessibility and also sometimes make labeling easier and faster. You can view them by clicking the following icon on the right side of the title bar:\\\n![alt text](docs\u002Fimages\u002Fkeyboard-shortcuts-icon.png \"Keyboard shortcuts menu icon\")\n\nHotkeys of 1 through 0 and all letters are assigned to first 36 tags, after you selected one or multiple words from the highlighted text elements, by pressing these hotkeys, you can label the selected words.\n\n'[' and ']' keys can be used move the selection to the previous or the next word.\n\n'\u003C' and '>' keys can be used go to the previous or the next page in multi-pages documents.\n\n'-', '+' and '\u002F' keys can be used to zoom in\u002Fout and reset zoom of editing page.\n\nHold Alt key and click on tag name, user can change the tag's name.\n\nTo delete all labels for a tag - select all labels for a tag on document then press 'delete' key.\n\n## Collaborators\n\nThis project is cloned and modified from [VoTT](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FVoTT) project.\n\n## Contributing\n\nThere are many ways to contribute to Form OCR Testing Tool -- please review our [contribution guidelines](CONTRIBUTING.md).\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https:\u002F\u002Fopensource.microsoft.com\u002Fcodeofconduct\u002F). For more information see\nthe [Code of Conduct FAQ](https:\u002F\u002Fopensource.microsoft.com\u002Fcodeofconduct\u002Ffaq\u002F) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com)\nwith any additional questions or comments.\n\n* [简体中文](README.zh-cn.md)\n* [日本語](README.ja-jp.md)\n","# 表单 OCR 测试工具\n\n帮助我们改进表单识别器。[请参与我们的调查！](https:\u002F\u002Faka.ms\u002FFR-HaTS-Survey)\n\n## 功能预览\n\n[![构建状态](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_OCR-Form-Tools_readme_7e222974ae30.png)](https:\u002F\u002Fdev.azure.com\u002Fmsazure\u002FCognitive%20Services\u002F_build\u002Flatest?definitionId=118293&branchName=master)\n\n这是一个用于 [表单识别器](https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Fazure\u002Fcognitive-services\u002Fform-recognizer\u002F) 的开源标注工具，属于表单 OCR 测试工具集 (FOTT) 的一部分。\n\n这是该工具的 `MAIN` 分支，包含了所有最新功能。由于这只是一个预览版本，因此**并非**最稳定的版本。\n\n本仓库的目的是让客户能够在使用 Microsoft Forms 和 OCR 服务时测试可用的工具。目前，我们在此提供的第一个工具是标注工具。用户可以提供反馈，并根据自身需求进行定制化修改。Microsoft Azure 表单识别器团队将定期更新源代码。如果您希望贡献代码，请参阅贡献指南部分。\n\n* **如果您想查看我们最新的正式发布版，请访问 [Form-Recognizer-Toolkit](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FForm-Recognizer-Toolkit\u002Ftree\u002Fmain\u002FSampleCode\u002FLabelingUX)，或使用 [Form Recognizer Studio](https:\u002F\u002Fformrecognizer.appliedai.azure.com\u002Fstudio)。**\n* **如果您想查看该工具的 V2.1 正式发布版，请访问此链接：[link](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FOCR-Form-Tools\u002Ftree\u002Fv2.1-General-Availability-Release)。**\n* **如果您想查看该工具的 V2.0 正式发布版，请访问此链接：[link](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FOCR-Form-Tools\u002Ftree\u002Fv2.0-General-Availability-Release)。**\n\n___\n\nFOTT 的标注工具是一个基于 React + Redux 的 Web 应用程序，使用 [TypeScript](https:\u002F\u002Fgithub.com\u002FMicrosoft\u002FTypeScript) 编写。该项目通过 [Create React App](https:\u002F\u002Fgithub.com\u002Ffacebook\u002Fcreate-react-app) 进行初始化。\n\n标注工具当前功能如下：（您可在此观看简短演示 [here](https:\u002F\u002Fyoutu.be\u002FGRGs18lZJ1E?t=462)）\n\n* 支持对 PDF、JPEG 或 TIFF 格式的表单进行**标注**。\n* 可以通过 [表单识别器](https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Fazure\u002Fcognitive-services\u002Fform-recognizer\u002F) 使用已标注数据**训练模型**。\n* 使用训练好的模型对单个表单进行**预测\u002F分析**，提取表单中的键值对预测结果。\n\n## 快速入门\n\n### 从源码构建并运行\n\n表单标注工具需要 [NodeJS (>= 10.x, Dubnium) 和 NPM](https:\u002F\u002Fgithub.com\u002Fnodejs\u002FRelease)。\n\n   ```bash\n    git clone https:\u002F\u002Fgithub.com\u002FMicrosoft\u002FOCR-Form-Tools.git\n    cd OCR-Form-Tools\n    yarn install\n    yarn build\n    yarn start\n   ```\n\n### 使用 Docker 部署此工具\n\n请参阅[此处](https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Fazure\u002Fcognitive-services\u002Fform-recognizer\u002Fquickstarts\u002Flabel-tool#set-up-the-sample-labeling-tool)的说明，并访问我们的 Docker Hub 仓库 [here](https:\u002F\u002Fhub.docker.com\u002F_\u002Fmicrosoft-azure-cognitive-services-custom-form-labeltool?tab=description) 获取最新的容器镜像信息。\n- `latest` 镜像标签对应 FOTT 的正式发布版本。\n- `latest-preview` 镜像标签对应 FOTT 的预览版本。\n- `latest-preview-private` 镜像标签对应 FOTT 的私有预览版本。\n\n### 作为 Web 应用运行\n\n使用现代 Web 浏览器，可以直接访问以下地址运行 FOTT：\n- https:\u002F\u002Ffott-2-1.azurewebsites.net\u002F\n\n**注意：这些 Web 应用仅用于测试目的。除非是在本地主机上，否则必须使用 HTTPS。**\n\n### 作为桌面应用运行\n\n在完成初始设置后，FOTT 可以作为桌面应用运行。\n\n   ```bash\n    yarn electron-start\n   ```\n\n桌面应用程序具有额外的功能，例如：\n- 支持将本地文件系统用作存储来源。\n- 支持跨域资源请求。\n\n### 打包为桌面应用发布\n\nFOTT 可以被打包成可分发的桌面应用程序。\n\n   ```bash\n    yarn release\n   ```\n生成的可分发安装包将保存在克隆仓库的 `releases` 文件夹中。\n\n\n\n## 使用标注工具\n\n### 准备输入数据\n\n要完成完整的标注-训练-分析流程，您需要至少六份相同类型的表单。其中五份用于训练模型，一份用于测试模型。您可以将[示例文件](https:\u002F\u002Fgo.microsoft.com\u002Ffwlink\u002F?linkid=2090451)上传到 Azure 存储账户中的 Blob 存储容器根目录。您可以使用 [Azure Storage Explorer](https:\u002F\u002Fazure.microsoft.com\u002Fen-us\u002Ffeatures\u002Fstorage-explorer\u002F) 上传数据。对于格式差异较大的高级场景，您可以根据相似的格式将表单组织到不同的子文件夹中。当您准备从某一特定格式的表单中训练模型时，需要在项目设置页面中指定相应的子文件夹。\n\n#### 配置跨域资源共享 (CORS)\n\n在您的存储账户上启用 CORS。在 Azure 门户中选择您的存储账户，然后单击左侧窗格中的 **CORS** 选项卡。在底部填写以下内容，然后单击顶部的 **保存** 按钮。\n\n* 允许的来源 = *\n* 允许的方法 = [全选]\n* 允许的标头 = *\n* 暴露的标头 = *\n* 最大缓存时间 = 200\n\n![alt text](docs\u002Fimages\u002Fcors-setup.png \"CORS 设置\")\n\n### 创建连接\n\nForm OCR 测试工具是一款“自带数据”（BYOD）应用程序。在此工具中，连接用于配置和管理源（待标记的资产）以及目标（应导出标签的位置）。在 Form OCR 测试工具中，源和目标位于同一位置。最终，它们将共同作为 [Form Recognizer](https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Fazure\u002Fcognitive-services\u002Fform-recognizer\u002F) 的输入。\n\n连接可以在不同项目之间设置和共享。它们采用可扩展的提供程序模型，因此可以轻松添加新的源\u002F目标提供程序。\n\n目前，此标记工具和 [Form Recognizer](https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Fazure\u002Fcognitive-services\u002Fform-recognizer\u002F) 均仅支持 [Azure Blob 存储](https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Fazure\u002Fstorage\u002Fblobs\u002Fstorage-blobs-introduction)。\n\n要创建新连接，请单击左侧导航栏中的 `New Connections`（插头）图标。\n\n使用以下值填写字段：\n\n* **显示名称** - 连接的显示名称。\n* **描述** - 您的项目描述。\n* **SAS URL** - 您的 Azure Blob 存储容器的共享访问签名 (SAS) URL。要获取 SAS URL，请打开 Microsoft Azure 存储资源管理器，右键单击您的容器（注意：不是父级存储节点，也不是 Azure 门户中的 URL），然后选择“获取共享访问签名”。将过期时间设置为您使用该服务之后的某个时间。确保已选中“读取”、“写入”、“删除”和“列出”权限，然后单击“创建”。接着复制 URL 部分的值。其格式应为：https:\u002F\u002F\u003C存储帐户>.blob.core.windows.net\u002F\u003C容器名称>?\u003CSAS 值>。\n\n![alt text](docs\u002Fimages\u002Fnew-connection.png \"新连接\")\n\n![alt_text](docs\u002Fimages\u002Fget-sas.PNG \"获取 SAS URL\")\n\n### 创建新项目\n\n在此标记工具中，项目用于存储您的配置和设置。创建一个新项目，并使用以下值填写字段：\n\n* **显示名称** - 项目的显示名称\n* **安全令牌** - 某些项目设置可能包含敏感值，例如 API 密钥或其他共享密钥。每个项目都会生成一个安全令牌，可用于加密\u002F解密敏感的项目设置。您可以通过单击左侧导航栏左下角的齿轮图标，在“应用程序设置”中找到安全令牌。\n* **源连接** - 您在上一步中创建的、希望用于该项目的 Azure Blob 存储容器连接。\n* **文件夹路径** - 可选 - 如果您的源表单位于 Blob 容器的子文件夹中，请在此处指定文件夹名称。\n* **Form Recognizer 服务 URI** - 您的 Form Recognizer 终端节点 URL。其格式应为：https:\u002F\u002F\u003C您的姓名>.cognitiveservcices.azure.com。\n* **API 密钥** - 您的 Form Recognizer 订阅密钥。\n* **描述** - 可选 - 项目描述。\n\n![alt text](docs\u002Fimages\u002Fnew-project.png \"新项目\")\n\n### 标记您的表单\n\n当您创建或打开项目时，主标签编辑器窗口会打开。标签编辑器由三部分组成：\n\n* 预览窗格，包含来自源连接的可滚动表单列表。\n* 主编辑窗格，允许您通过应用标签来标记文本。\n* 标签编辑窗格，允许用户修改、重新排序和删除标签。\n\n#### 识别文本元素和表格\n\n单击左侧窗格上的 **对所有文件运行 OCR**，以获取每份文档的文本布局信息。标记工具会在每个文本元素周围绘制边界框，并在每个表格的左上角显示一个图标。您可以单击表格的图标以显示该表格的已识别边界。\n\n#### 将标签应用于文本\n\n接下来，您将创建标签并将其应用于您希望模型识别的文本元素。在一份文档中，有许多您希望训练模型提取的键值对，第一步是标记键值对中的值。例如，您在一张表单中看到文本“Charge: 1002.00”，您希望标记该值 (1002.00)，以便 AI 模型能够被训练成在类似表单上提取此类信息。\n\n1. 首先，使用标签编辑窗格创建您想要识别的标签，例如“Cost”。\n\n2. 在主编辑器中，单击并拖动以从高亮显示的文本元素中选择一个或多个词。例如，“1002.00”。注意：目前无法选择跨多页的文本。\n\n3. 单击您想要应用的标签，或按下相应的键盘按键（例如，第一个标签按“1”键）。您只能为每个选定的文本元素应用一个标签，且每个标签在每页上只能应用一次。\n\n按照上述步骤标记您的五份表单，然后进入下一步。\n\n![alt text](docs\u002Fimages\u002Fapply-labels.png \"应用标签\")\n\n#### 指定标签类型和格式\n\n您可以通过标签上下文菜单指定标签类型和格式。类型和格式信息将存储在源位置的 fields.json 文件中。这些信息将在后处理阶段使用，以获得更好的结果。\n\n![alt text](docs\u002Fimages\u002Fspecify-tag-type-format.png \"指定标签类型和格式\")\n\n#### 训练自定义模型\n\n单击左侧窗格上的“训练”图标以打开训练页面。然后单击 **训练** 按钮开始训练模型。训练过程完成后，您将看到以下信息：\n\n* **模型 ID** - 已创建并训练的模型的 ID。每次训练调用都会创建一个具有自己 ID 的新模型。请将此字符串复制到安全位置；如果您希望通过 REST API 进行预测\u002F分析调用，您需要它。\n* **平均准确率** - 模型的平均准确率。您可以通过标记更多表单并再次训练以创建新模型来提高模型的准确率。我们建议先标记五份表单，并根据需要再添加更多表单。\n* 标签列表，以及每个标签的估计准确率。\n\n![alt text](docs\u002Fimages\u002Ftrain-model.png \"训练模型\")\n\n训练结束后，请检查 **平均准确率** 值。如果较低，您应该添加更多输入文档并重复上述步骤。您已经标记过的文档将继续保留在项目索引中。\n\n提示：您也可以通过 REST API 调用来运行训练过程。有关如何操作的信息，请参阅 [使用 Python 和标记数据进行训练](https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Fazure\u002Fcognitive-services\u002Fform-recognizer\u002Fquickstarts\u002Fpython-labeled-data)。\n\n#### 分析表单\n\n单击左侧窗格上的“分析”图标以打开分析页面。上传一份您未在训练过程中使用过的表单文档。然后单击右侧的 **分析** 按钮，以获取该表单的键值预测\u002F分析结果。工具会突出显示字段及其边界框，并报告每个值的置信度。\n\n![alt text](docs\u002Fimages\u002Fanalyze-form.png \"分析表单\")\n\n提示：您也可以通过 REST 调用运行分析 API。有关如何操作的详细信息，请参阅 [使用 Python 标签进行训练](https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Fazure\u002Fcognitive-services\u002Fform-recognizer\u002Fquickstarts\u002Fpython-labeled-data)。\n\n#### 组合模型 ####\n单击左侧窗格中的“组合”图标以打开“组合”页面。FoTT 会按模型 ID 降序排列，以列表形式显示您的第一个模型页面。选择您想要组合成一个模型的多个模型，然后单击 **组合** 按钮。新模型组合完成后，即可用于分析。\n\n![替代文本](docs\u002Fimages\u002Fcompose.png \"组合\")\n\n要加载更多模型，请单击列表底部的 **加载下一页** 按钮。这将按模型 ID 降序加载下一页的模型。\n\n您可以通过单击列表顶部的列标题对当前加载的模型进行排序。仅当前加载的模型会被排序。您需要先加载所有页面的模型，然后再进行排序，才能查看完整的已排序模型列表。\n\n#### 保存项目并在稍后恢复 ####\n\n要在其他时间或在其他浏览器中恢复您的项目，您需要保存项目的安全令牌，并在以后重新输入。\n\n##### 获取项目凭据 #####\n\n转到您的项目设置页面（文档设置图标），记下安全令牌名称。然后转到您的应用程序设置（齿轮图标），该页面会显示当前浏览器实例中的所有安全令牌。找到您的项目安全令牌，将其名称和密钥值复制到安全位置。\n\n##### 恢复项目凭据 #####\n\n当您想恢复项目时，首先需要创建与同一 Blob 存储容器的连接。重复上述步骤以完成此操作。然后，转到应用程序设置页面（齿轮图标），查看您的项目安全令牌是否在那里。如果不在，则添加一个新的安全令牌，并从上一步复制您的令牌名称和密钥。然后单击“保存设置”。\n\n##### 恢复项目 #####\n\n最后，转到主页（房子图标），单击“打开云项目”。然后选择 Blob 存储连接，并选择您的 .proj 文件。由于应用程序拥有安全令牌，它将加载项目的所有设置。\n\n##### 共享项目 #####\n\nFoTT 允许与同样使用该工具并共享项目所在 Azure Blob 存储容器访问权限的人共享项目。要共享项目，请按照以下步骤操作：\n\n###### 发送方：\n\n1. 在工具中打开您想要共享的项目。在右上角找到并单击“共享”图标 ![替代文本](docs\u002Fimages\u002Fshare-icon.png \"共享项目菜单图标\")。\n您应该会看到一条消息弹出，说明您的共享字符串已保存到剪贴板。\n2. 通过任何方便的方式分享剪贴板中的字符串。\n\n###### 接收方：\n\n1. 转到“主页”，并单击“打开云项目”。\n2. 将共享字符串插入弹出窗口中的相应字段。\n3. 单击“确定”。\n\n#### 键盘快捷键和实用提示 ####\n\n标记工具支持多种键盘快捷键，以提高可访问性，同时有时也能使标记工作更轻松、更快捷。您可以通过单击标题栏右侧的以下图标查看这些快捷键：\n![替代文本](docs\u002Fimages\u002Fkeyboard-shortcuts-icon.png \"键盘快捷键菜单图标\")\n\n数字键 1 至 0 以及所有字母键都分配给了前 36 个标签。在从高亮显示的文本元素中选择一个或多个单词后，按下这些快捷键即可为所选单词添加标签。\n\n“[” 和 “]” 键可用于将选择移动到上一个或下一个单词。\n\n“\u003C” 和 “>” 键可用于在多页文档中切换到上一页或下一页。\n\n“-”、“+” 和 “\u002F” 键可用于放大、缩小和重置编辑页面的缩放比例。\n\n按住 Alt 键并单击标签名称，用户可以更改标签名称。\n\n要删除某个标签的所有标注——请在文档上选中该标签的所有标注，然后按“删除”键。\n\n\n\n## 合作者\n\n本项目是从 [VoTT](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FVoTT) 项目克隆并修改而来。\n\n## 贡献\n\n有许多方式可以为 Form OCR 测试工具做出贡献——请查看我们的 [贡献指南](CONTRIBUTING.md)。\n\n本项目已采用 [微软开源行为准则](https:\u002F\u002Fopensource.microsoft.com\u002Fcodeofconduct\u002F)。如需更多信息，请参阅 [行为准则常见问题解答](https:\u002F\u002Fopensource.microsoft.com\u002Fcodeofconduct\u002Ffaq\u002F) 或发送电子邮件至 [opencode@microsoft.com](mailto:opencode@microsoft.com)，提出任何其他问题或意见。\n\n* [简体中文](README.zh-cn.md)\n* [日语](README.ja-jp.md)","# OCR-Form-Tools 快速上手指南\n\nOCR-Form-Tools 是微软 Azure Form Recognizer 的开源标注工具，用于标注表单数据、训练自定义模型以及预测分析。本指南将帮助您快速在本地部署并使用该工具。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Windows, macOS 或 Linux\n*   **Node.js**：版本 >= 10.x (推荐安装最新的 LTS 版本)\n*   **包管理器**：NPM 或 Yarn (本项目推荐使用 Yarn)\n*   **浏览器**：现代 Web 浏览器 (如 Chrome, Edge)\n*   **Azure 资源**：\n    *   Azure 存储账户 (用于存放表单文件)\n    *   Azure Form Recognizer 资源 (用于训练和预测)\n\n> **提示**：国内开发者安装 Node 模块时若遇网络问题，可配置淘宝镜像源：\n> `npm config set registry https:\u002F\u002Fregistry.npmmirror.com` 或 `yarn config set registry https:\u002F\u002Fregistry.npmmirror.com`\n\n## 安装步骤\n\n您可以通过源码构建或 Docker 容器两种方式运行该工具。\n\n### 方式一：从源码构建 (推荐开发者使用)\n\n1.  克隆项目仓库：\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002FMicrosoft\u002FOCR-Form-Tools.git\n    cd OCR-Form-Tools\n    ```\n\n2.  安装依赖并构建项目：\n    ```bash\n    yarn install\n    yarn build\n    ```\n\n3.  启动应用：\n    ```bash\n    yarn start\n    ```\n    启动后，浏览器会自动打开 `http:\u002F\u002Flocalhost:3000` (或手动访问该地址)。\n\n### 方式二：使用 Docker 运行\n\n如果您希望快速体验且无需配置本地开发环境，可以使用 Docker。\n\n```bash\ndocker run -it -p 3000:80 mcr.microsoft.com\u002Fazure-cognitive-services\u002Fcustom-form-labeltool:latest-preview\n```\n*注：`latest-preview` 标签对应预览版功能，如需稳定版可使用 `latest` 标签。*\n\n### 方式三：直接运行桌面版 (可选)\n\n源码安装完成后，也可作为桌面应用运行，支持本地文件系统访问：\n```bash\nyarn electron-start\n```\n\n## 基本使用\n\n以下是完成一次“标注 - 训练 - 分析”闭环的最简流程。\n\n### 1. 准备数据与配置 CORS\n*   **数据准备**：准备至少 6 张相同格式的表单图片 (PDF, JPEG 或 TIFF)。将其中 5 张用于训练，1 张用于测试。\n*   **上传数据**：将这些文件上传至 Azure Blob 存储容器的根目录或子文件夹中。\n*   **配置 CORS**：在 Azure 门户中找到您的存储账户，进入 **CORS** 设置页，添加以下规则以允许工具访问：\n    *   Allowed origins: `*`\n    *   Allowed methods: 全选 (GET, PUT, POST, DELETE, etc.)\n    *   Allowed headers: `*`\n    *   Exposed headers: `*`\n    *   Max age: `200`\n\n### 2. 创建连接 (Connection)\n1.  在工具左侧导航栏点击 **New Connections** (插头图标)。\n2.  填写连接信息：\n    *   **Display Name**: 连接名称 (任意)。\n    *   **SAS URL**: Azure Blob 容器的共享访问签名 (SAS) URL。\n        *   *获取方法*：在 Azure Storage Explorer 中右键点击容器 -> \"Get shared access signature\" -> 勾选 Read, Write, Delete, List -> 创建并复制 URL。\n3.  点击保存。\n\n### 3. 创建项目 (Project)\n1.  点击左侧 **New Project**。\n2.  填写项目信息：\n    *   **Display Name**: 项目名称。\n    *   **Security Token**: 点击左下角齿轮图标生成或查看安全令牌 (用于加密敏感信息)。\n    *   **Source Connection**: 选择上一步创建的连接。\n    *   **Form Recognizer Service Uri**: 您的 Form Recognizer 终结点 (格式：`https:\u002F\u002F\u003Cyour-name>.cognitiveservices.azure.com`)。\n    *   **API Key**: 您的 Form Recognizer 订阅密钥 (Key 1 或 Key 2)。\n3.  点击 **Create Project**。\n\n### 4. 标注表单 (Labeling)\n1.  进入项目后，点击左侧面板的 **Run OCR on all files**，系统将识别文本并绘制边界框。\n2.  在右侧标签编辑器中创建标签 (例如：\"TotalCost\")。\n3.  在主编辑区选中对应的文本值 (例如：\"1002.00\")，然后点击刚才创建的标签将其关联。\n4.  重复此步骤，完成至少 **5 张** 表单的标注。\n\n### 5. 训练模型 (Train)\n1.  点击左侧导航栏的 **Train** 图标。\n2.  点击 **Train** 按钮开始训练。\n3.  训练完成后，记录生成的 **Model ID** 并查看 **Average Accuracy** (平均准确率)。如果准确率较低，建议增加标注数据后重新训练。\n\n### 6. 分析与预测 (Analyze)\n1.  点击左侧导航栏的 **Analyze** 图标。\n2.  上传一张**未参与训练**的表单图片。\n3.  点击 **Analyze** 按钮。\n4.  工具将高亮显示提取出的关键字段及其对应的值，验证模型效果。","某大型物流公司的数据团队需要每天处理数千张格式各异的纸质运单，将其中的发货人、收货人及货物重量等关键信息数字化录入系统。\n\n### 没有 OCR-Form-Tools 时\n- 标注人员只能依靠肉眼在 PDF 或图片上查找坐标，手动编写复杂的 JSON 配置文件来定义关键字段，极易因坐标偏差导致识别失败。\n- 缺乏可视化的即时反馈机制，训练模型后必须等待批量任务运行完毕才能发现标注错误，返工成本极高且迭代周期长达数天。\n- 面对 JPEG、TIFF 等多种格式的运单扫描件，团队需要自行开发脚本进行格式转换和预处理，增加了额外的维护负担。\n- 无法直接在本地对单个新运单进行快速预测验证，开发人员难以判断是模型问题还是标注数据质量问题，排查效率低下。\n\n### 使用 OCR-Form-Tools 后\n- 利用其可视化标注界面，工作人员可直接在上传的运单文件上框选区域并绑定字段，工具自动生成准确的训练数据，彻底告别手工编写字典。\n- 支持“标注 - 训练 - 预测”的一站式闭环流程，用户标注后可立即训练模型并单张测试效果，将模型优化迭代周期从数天缩短至小时级。\n- 原生支持 PDF、JPEG 和 TIFF 多种主流格式，无需额外编写转换代码，团队可直接导入各类历史扫描档案开始工作。\n- 提供桌面版应用支持本地文件系统，开发人员可在离线环境下直接加载新运单进行实时预测分析，快速定位并解决识别异常。\n\nOCR-Form-Tools 通过可视化的全流程操作，将非结构化单据的数字化处理效率提升了数倍，让团队能专注于业务逻辑而非底层数据清洗。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_OCR-Form-Tools_56e44525.png","microsoft","Microsoft","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fmicrosoft_4900709c.png","Open source projects and samples from Microsoft",null,"opensource@microsoft.com","OpenAtMicrosoft","https:\u002F\u002Fopensource.microsoft.com","https:\u002F\u002Fgithub.com\u002Fmicrosoft",[82,86,90,94,98,102,106,110,113],{"name":83,"color":84,"percentage":85},"TypeScript","#3178c6",89.5,{"name":87,"color":88,"percentage":89},"SCSS","#c6538c",5.4,{"name":91,"color":92,"percentage":93},"Python","#3572A5",4.4,{"name":95,"color":96,"percentage":97},"JavaScript","#f1e05a",0.3,{"name":99,"color":100,"percentage":101},"Shell","#89e051",0.2,{"name":103,"color":104,"percentage":105},"HTML","#e34c26",0.1,{"name":107,"color":108,"percentage":109},"Dockerfile","#384d54",0,{"name":111,"color":112,"percentage":109},"CSS","#663399",{"name":114,"color":115,"percentage":109},"Procfile","#3B2F63",536,176,"2026-04-11T11:03:32","MIT","Windows, macOS, Linux","未说明",{"notes":123,"python":124,"dependencies":125},"该工具是基于 Node.js 的 Web 应用（也可打包为桌面应用），无需 Python 环境。支持通过 Docker 容器运行。运行时需要配置 Azure Blob Storage 作为数据源，并需在存储账户中启用 CORS（跨域资源共享）。桌面版支持本地文件系统访问。","不需要",[126,127,128,129,130,83,131],"NodeJS (>= 10.x)","NPM","Yarn","React","Redux","Electron (可选，用于桌面版)",[15,14],[134,135,136,137,138,139,140],"ocr-form-labeling","rpa","machine-learning","machine-learning-algorithms","form-recognizer","labeling-tool","typescript","2026-03-27T02:49:30.150509","2026-04-15T10:57:20.030328",[144,149,154,159,164,169],{"id":145,"question_zh":146,"answer_zh":147,"source_url":148},34195,"仓库缺少必要的文件如何处理？","Microsoft 项目必须包含某些标准文件。如果仓库缺失这些文件，系统会自动创建 Issue 提醒。维护者需要尽快合并相关的 Pull Request 来添加缺失的文件，之后 Issue 将自动关闭。内部团队可参考 Microsoft 开源指南了解更多详情。","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FOCR-Form-Tools\u002Fissues\u002F1043",{"id":150,"question_zh":151,"answer_zh":152,"source_url":153},34190,"创建新项目时收到\"InvalidResourceName\"错误怎么办？","该错误通常是因为使用了存储账户（全局资源）的 SAS 令牌，而不是 Blob 容器的 SAS 令牌。解决方法：\n1. 下载并安装 Azure Storage Explorer。\n2. 登录拥有目标存储账户访问权限的 Azure 账户。\n3. 右键点击要使用的 Blob 容器，选择\"Get SAS...\"生成 SAS URL。\n4. 在 FOTT 中添加连接时使用此 SAS URL。\n或者直接在 Azure 门户中按照官方文档步骤获取 Blob 容器的 SAS 令牌。","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FOCR-Form-Tools\u002Fissues\u002F778",{"id":155,"question_zh":156,"answer_zh":157,"source_url":158},34191,"当字段标签数量较多时，搜索功能导致应用崩溃如何解决？","这是一个已知问题，已在提交 cac1e8e 中修复。请拉取最新代码更新到最新版本即可解决。如果更新后问题仍然存在，请重新报告以便进一步调查。","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FOCR-Form-Tools\u002Fissues\u002F610",{"id":160,"question_zh":161,"answer_zh":162,"source_url":163},34192,"如何取消已选中的标签内容而不删除整个标签？","该功能已在 PR #258 中实现修复。更新到包含此修复的版本后，您可以直接移除选中文字与标签的关联，而无需先将其分配给另一个新标签再删除。","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FOCR-Form-Tools\u002Fissues\u002F196",{"id":165,"question_zh":166,"answer_zh":167,"source_url":168},34193,"在标签编辑器中快速重新排序标签时出现异常行为怎么办？","这是由于多个 PUT 请求并发发送且完成顺序不一致导致的。建议不要快速连续点击移动箭头，等待每次移动操作完全完成后再进行下一次操作。该问题在后续版本中已得到关注和修复。","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FOCR-Form-Tools\u002Fissues\u002F193",{"id":170,"question_zh":171,"answer_zh":172,"source_url":173},34194,"运行 Layout 分析时如何防止用户意外离开页面导致操作中断？","工具应阻止用户在 Layout 分析进行中离开视图，并显示适当的提示信息。此问题已被识别为需要改进的用户体验点，建议在分析过程中启用页面离开确认对话框以防止操作被意外中止。","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FOCR-Form-Tools\u002Fissues\u002F688",[175,180,185,190,195,200],{"id":176,"version":177,"summary_zh":178,"released_at":179},264097,"v2.1-ga-hotfix","一个通用可用性版本，包含 FOTT 的新功能和热修复补丁。\n该版本已更新至我们 [Docker Hub 仓库](https:\u002F\u002Fhub.docker.com\u002F_\u002Fmicrosoft-azure-cognitive-services-custom-form-labeltool?tab=description) 中的 `latest-2.1` Linux 镜像标签。","2021-12-03T02:09:09",{"id":181,"version":182,"summary_zh":183,"released_at":184},264098,"v2.1-ga","一个包含 FOTT 新功能的正式发布版本。该版本与我们 [Docker Hub 仓库](https:\u002F\u002Fhub.docker.com\u002F_\u002Fmicrosoft-azure-cognitive-services-custom-form-labeltool?tab=description) 中的 `latest-2.1` Linux 镜像标签保持同步。","2021-05-13T04:21:43",{"id":186,"version":187,"summary_zh":188,"released_at":189},264099,"v2.1.3","这是一个预览版本，包含 FOTT 新功能的预览。该版本与我们 [Docker Hub 仓库](https:\u002F\u002Fhub.docker.com\u002F_\u002Fmicrosoft-azure-cognitive-services-custom-form-labeltool?tab=description) 中的 `latest-preview` Linux 镜像标签保持同步。\n\n您可以下载 [**oflt-2.1.3-win32.exe**](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FOCR-Form-Tools\u002Freleases\u002Fdownload\u002Fv2.1.3\u002Foflt-2.1.3-win32.exe) 资产，以便在 Windows 上将 FoTT 安装为桌面应用程序。","2021-03-15T10:15:37",{"id":191,"version":192,"summary_zh":193,"released_at":194},264100,"v2.1.2","这是一个预览版本，包含 FOTT 新功能的预览。该版本与我们 [Docker Hub 仓库](https:\u002F\u002Fhub.docker.com\u002F_\u002Fmicrosoft-azure-cognitive-services-custom-form-labeltool?tab=description) 中的 `2.1.014390002-amd64-preview` Linux 镜像标签保持同步。\n\n您可以下载 [**oflt-2.1.2-win32.exe**](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FOCR-Form-Tools\u002Freleases\u002Fdownload\u002Fv2.1.2\u002Foflt-2.1.2-win32.exe) 资产，在 Windows 上以桌面应用程序的形式安装 FoTT。","2020-12-15T08:43:22",{"id":196,"version":197,"summary_zh":198,"released_at":199},264101,"v2.1.1","这是一个预览版本，包含 FOTT 新功能的预览。该版本与我们 [Docker Hub 仓库](https:\u002F\u002Fhub.docker.com\u002F_\u002Fmicrosoft-azure-cognitive-services-custom-form-labeltool?tab=description) 中的 `2.1.013780001-amd64-preview` Linux 镜像标签保持同步。\n\n您可以下载 [**oflt-2.1.1-win32.exe**](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FOCR-Form-Tools\u002Freleases\u002Fdownload\u002Fv2.1.1\u002Foflt-2.1.1-win32.exe) 资产，以便在 Windows 系统上将 FoTT 安装为桌面应用程序。","2020-09-16T11:46:46",{"id":201,"version":202,"summary_zh":203,"released_at":204},264102,"v2.0-GA","一个正式发布的版本，包含 FOTT 最稳定的版本。该版本与我们 [Docker Hub 仓库](https:\u002F\u002Fhub.docker.com\u002F_\u002Fmicrosoft-azure-cognitive-services-custom-form-labeltool?tab=description) 中的 `latest` Linux 镜像标签保持同步。","2020-06-15T19:12:14"]