{"id":"7bba793e-3e54-4ff5-9819-992088d999fe","entityType":"agent","slug":"clawhub-scnet-sugon-image-to-word","name":"image_to_word","canonicalUrl":"https://www.xpersona.co/agent/clawhub-scnet-sugon-image-to-word","canonicalPath":"/agent/clawhub-scnet-sugon-image-to-word","generatedAt":"2026-10-10T06:44:19.166Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-09T23:45:26.493Z","emptyReason":null},"description":"图片转Word 服务，支持将 图片异步转换为可编辑的 Word 文件。 Skill: image_to_word Owner: scnet-sugon Summary: 图片转Word 服务，支持将 图片异步转换为可编辑的 Word 文件。 Tags: latest:0.1.0 Version history: v0.1.0 | 2026-08-11T07:08:22.161Z | auto Initial release: Asynchronous image-to-Word file conversion via Scnet API. - Converts images to editable Word documents (.docx) with OCR. - Handles conversion as an async task with automatic polling and timeout options. - Requires SCNET_API_KEY; optional env","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.9K downloads reported by the source. Last updated 10/9/2026.","installCommand":"clawhub skill install s17aan1jdk93c5398r3ypc523d83hqys:image-to-word","sourceUrl":"https://clawhub.ai/scnet-sugon/image-to-word","homepage":"https://clawhub.ai/scnet-sugon/skills/image-to-word","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/scnet-sugon/image-to-word","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/scnet-sugon/skills/image-to-word","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":65,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"图片转Word 服务，支持将 图片异步转换为可编辑的 Word 文件。 Skill: image_to_word Owner: scnet-sugon Summary: 图片转Word 服务，支持将 图片异步转换为可编辑的 Word 文件。 Tags: latest:0.1.0 Version history: v0."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T23:45:26.493Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T23:45:26.493Z","emptyReason":null},"stars":null,"forks":null,"downloads":1872,"packageName":null,"latestVersion":"0.1.0","tractionLabel":"1.9K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T23:45:26.492Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T23:45:26.493Z","lastCrawledAt":"2026-10-09T23:45:26.492Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-10T23:45:26.492Z","lastVerifiedAt":null,"highlights":[{"version":"0.1.0","createdAt":"2026-08-11T07:08:22.161Z","changelog":"Initial release: Asynchronous image-to-Word file conversion via Scnet API. - Converts images to editable Word documents (.docx) with OCR. - Handles conversion as an async task with automatic polling and timeout options. - Requires SCNET_API_KEY; optional env vars available for customization. - Outputs a temporary download link for the generated Word file. - Detailed setup, error handling, and usage instructions provided.","fileCount":16,"zipByteSize":16552}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17aan1jdk93c5398r3ypc523d83hqys:image-to-word","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-scnet-sugon-image-to-word/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-scnet-sugon-image-to-word/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-scnet-sugon-image-to-word/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-scnet-sugon-image-to-word/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-scnet-sugon-image-to-word/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-scnet-sugon-image-to-word/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T06:44:19.165Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-scnet-sugon-image-to-word/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-scnet-sugon-image-to-word/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-scnet-sugon-image-to-word/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-scnet-sugon-image-to-word/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-09T23:45:26.493Z","emptyReason":null},"readme":"Skill: image_to_word\n\nOwner: scnet-sugon\n\nSummary: 图片转Word 服务，支持将 图片异步转换为可编辑的 Word 文件。\n\nTags: latest:0.1.0\n\nVersion history:\n\nv0.1.0 | 2026-08-11T07:08:22.161Z | auto\n\nInitial release: Asynchronous image-to-Word file conversion via Scnet API.\n\n- Converts images to editable Word documents (.docx) with OCR.\n- Handles conversion as an async task with automatic polling and timeout options.\n- Requires SCNET_API_KEY; optional env vars available for customization.\n- Outputs a temporary download link for the generated Word file.\n- Detailed setup, error handling, and usage instructions provided.\n\nArchive index:\n\nArchive v0.1.0: 16 files, 16552 bytes\n\nFiles: assets (0b), assets/templates (0b), assets/templates/fields-summary.md (1490b), CHANGELOG.md (71b), config (0b), config/.env.example (298b), LICENSE.txt (1090b), README.md (5955b), references (0b), references/api-docs.md (8244b), scripts (0b), scripts/main.py (11189b), skill-card.md (2265b), SKILL.md (4571b), skill.yaml (466b), _meta.json (132b)\n\nFile v0.1.0:SKILL.md\n\n---\nname: image_to_word\ndescription: 图片转Word 服务，支持将 图片异步转换为可编辑的 Word 文件。\nversion: 1.0.0\nauthor: SCNet\nlicense: MIT\ntags:\n  - OCR\n  - 文档转换\n  - 图片转Word\n\nrequired_env_vars:\n  - SCNET_API_KEY\noptional_env_vars:\n  - SCNET_API_BASE\n  - SCNET_POLL_INTERVAL\n  - SCNET_MAX_POLL_TIME\nprimary_credential: SCNET_API_KEY\ndependencies:\n  - python3\n  - requests\ninput:\n  - ocrType : 转换类型，IMAGE_TO_WORD\n  - filePath : 待转换文件的本地路径\noutput: 转换后的 Word 文件下载地址\n---\n# Sugon-Scnet 图片转Word 服务技能\n\n本技能封装了 Scnet 图片转Word 服务，支持将 图片异步转换为可编辑的 Word 文件，并通过轮询获取转换结果。\n\n---\n\n## 功能特性\n\n- **图片转 Word**：将图片中的文档内容还原为 `.docx`。\n- **异步任务 + 自动轮询**：提交任务后自动轮询状态，直到任务完成或超时。\n\n## 前置配置\n\n> **⚠️ 重要**：使用前需要申请 Scnet API Token\n\n### 申请 API Token\n\n1. 访问 [Scnet 官网](https://www.scnet.cn) 注册/登录\n2. 在控制台申请 API 密钥（格式：`sc-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`）\n3. 复制密钥备用\n\n### 配置 Token\n\n**手动配置（推荐）**\n1. 在技能目录下创建 `config/.env` 文件，内容如下：\n```ini\n# =====  Sugon-Scnet 文档格式转化 API 配置 =====\n# 申请地址：https://www.scnet.cn\nSCNET_API_KEY=your_scnet_api_key_here\n\n# API 基础地址（一般无需修改）\nSCNET_API_BASE=https://api.scnet.cn/api/llm/v1\n\n# 轮询配置（可选）\nSCNET_POLL_INTERVAL=5\nSCNET_MAX_POLL_TIME=600\n```\n2. 添加：`SCNET_API_KEY=你的密钥`\n3. 设置文件权限为 600（仅所有者可读写）\n\n**⚠️ 安全警告**：切勿将 API Key 直接粘贴到聊天对话中，否则可能被记录或泄露。\n\n### Token 更新\n\nToken 过期后调用会返回 401 或 403 错误。更新方法：重新申请 Token 并替换 config/.env 中的 SCNET_API_KEY。\n\n### 依赖安装\n\n本技能需要 Python 3.6+ 和 requests 库。请运行以下命令：\n\n```bash\n   pip install requests\n```\n\n---\n\n## 使用方法\n\n### 参数说明\n\n| 参数名 | 类型 | 必填 | 描述 |\n|--------|------|------|------|\n| ocrType | string | 是 | 转换类型。必须为 IMAGE_TO_WORD（图片转 Word） |\n| filePath | string | 是 | 待转换文件的本地绝对路径。图片格式。 |\n\n### 命令行调用示例\n\n```bash\n   python .claude/skills/image_to_word/scripts/main.py IMAGE_TO_WORD /path/to/image.png\n```\n\n### 在 AI 对话中使用\n\n用户可以说：\n\n- “帮我把这张图片转换成 Word，图片路径 /Users/name/Downloads/slide.png”\n\nAI 会根据 description 中的关键词自动触发本技能。\n\n### AI 调用建议\n\n- 为避免触发 API 速率限制，请串行调用本技能，等待前一个任务完成后再发起下一个请求。\n- 如果使用 OpenClaw 的 exec 工具，建议设置足够的 timeout，因为转换任务需要异步轮询。\n\n### 配置选项\n\n编辑 `config/.env` 文件：\n\n| 变量名 | 默认值 | 说明 |\n|--------|--------|------|\n| SCNET_API_KEY | 必需 | Scnet API 密钥 |\n| SCNET_API_BASE | https://api.scnet.cn/api/llm/v1 | API 基础地址（一般无需修改） |\n| SCNET_POLL_INTERVAL | 5 | 轮询状态间隔（秒） |\n| SCNET_MAX_POLL_TIME | 600 | 最大轮询等待时间（秒） |\n\n### 输出\n\n- 标准输出：转换成功时返回结果文件下载地址 JSON。\n- 结果位于 `data[0].output.results` 中，为临时 MinIO 下载链接。\n- 错误信息：如果发生错误，会输出以 `错误:` 开头的友好提示。\n\n### 注意事项\n\n- 输入文件必须与 `ocrType` 匹配：PDF_TO_WORD 输入 PDF，IMAGE_TO_WORD / IMAGE_TO_PPT 输入图片。\n- 下载地址为临时授权链接，请及时下载使用。\n- 转换任务为异步处理，脚本会自动轮询直到完成或超时。\n\n### 故障排除\n\n| 问题 | 解决方案 |\n|------|----------|\n| 配置文件不存在 | 创建 config/.env 并填入 Token（参考前置配置） |\n| API Key 无效/过期 | 重新申请 Token 并更新 `.env` 文件 |\n| 文件不存在 | 检查提供的文件路径是否正确 |\n| 网络连接失败 | 检查网络连接或防火墙设置 |\n| 不支持的文件类型 | 确保文件扩展名为允许的类型（参考 API 文档） |\n| 401/403/Unauthorized | Token 无效或过期，重新申请并配置 |\n| 任务长时间 running | 可能是文件较大或服务繁忙，可增大 SCNET_MAX_POLL_TIME |\n| 任务失败 | 查看返回的 error_code 和 error_message |\n\nFile v0.1.0:README.md\n\n# image_to_word\n\n\n\n## Getting started\n\nTo make it easy for you to get started with GitLab, here's a list of recommended next steps.\n\nAlready a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)!\n\n## Add your files\n\n* [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files\n* [Add files using the command line](https://docs.gitlab.com/topics/git/add_files/#add-files-to-a-git-repository) or push an existing Git repository with the following command:\n\n```\ncd existing_repo\ngit remote add origin https://github.com/SCNet-sugon/image_to_word.git\ngit branch -M main\ngit push -uf origin main\n```\n\n\n## Collaborate with your team\n\n* [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/)\n* [Create a new merge request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html)\n* [Automatically close issues from merge requests](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically)\n* [Enable merge request approvals](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/)\n* [Set auto-merge](https://docs.gitlab.com/user/project/merge_requests/auto_merge/)\n\n## Test and Deploy\n\nUse the built-in continuous integration in GitLab.\n\n* [Get started with GitLab CI/CD](https://docs.gitlab.com/ee/ci/quick_start/)\n* [Analyze your code for known vulnerabilities with Static Application Security Testing (SAST)](https://docs.gitlab.com/ee/user/application_security/sast/)\n* [Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy](https://docs.gitlab.com/ee/topics/autodevops/requirements.html)\n* [Use pull-based deployments for improved Kubernetes management](https://docs.gitlab.com/ee/user/clusters/agent/)\n* [Set up protected environments](https://docs.gitlab.com/ee/ci/environments/protected_environments.html)\n\n***\n\n# Editing this README\n\nWhen you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thanks to [makeareadme.com](https://www.makeareadme.com/) for this template.\n\n## Suggestions for a good README\n\nEvery project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information.\n\n## Name\nChoose a self-explaining name for your project.\n\n## Description\nLet people know what your project can do specifically. Provide context and add a link to any reference visitors might be unfamiliar with. A list of Features or a Background subsection can also be added here. If there are alternatives to your project, this is a good place to list differentiating factors.\n\n## Badges\nOn some READMEs, you may see small images that convey metadata, such as whether or not all the tests are passing for the project. You can use Shields to add some to your README. Many services also have instructions for adding a badge.\n\n## Visuals\nDepending on what you are making, it can be a good idea to include screenshots or even a video (you'll frequently see GIFs rather than actual videos). Tools like ttygif can help, but check out Asciinema for a more sophisticated method.\n\n## Installation\nWithin a particular ecosystem, there may be a common way of installing things, such as using Yarn, NuGet, or Homebrew. However, consider the possibility that whoever is reading your README is a novice and would like more guidance. Listing specific steps helps remove ambiguity and gets people to using your project as quickly as possible. If it only runs in a specific context like a particular programming language version or operating system or has dependencies that have to be installed manually, also add a Requirements subsection.\n\n## Usage\nUse examples liberally, and show the expected output if you can. It's helpful to have inline the smallest example of usage that you can demonstrate, while providing links to more sophisticated examples if they are too long to reasonably include in the README.\n\n## Support\nTell people where they can go to for help. It can be any combination of an issue tracker, a chat room, an email address, etc.\n\n## Roadmap\nIf you have ideas for releases in the future, it is a good idea to list them in the README.\n\n## Contributing\nState if you are open to contributions and what your requirements are for accepting them.\n\nFor people who want to make changes to your project, it's helpful to have some documentation on how to get started. Perhaps there is a script that they should run or some environment variables that they need to set. Make these steps explicit. These instructions could also be useful to your future self.\n\nYou can also document commands to lint the code or run tests. These steps help to ensure high code quality and reduce the likelihood that the changes inadvertently break something. Having instructions for running tests is especially helpful if it requires external setup, such as starting a Selenium server for testing in a browser.\n\n## Authors and acknowledgment\nShow your appreciation to those who have contributed to the project.\n\n## License\nFor open source projects, say how it is licensed.\n\n## Project status\nIf you have run out of energy or time for your project, put a note at the top of the README saying that development has slowed down or stopped completely. Someone may choose to fork your project or volunteer to step in as a maintainer or owner, allowing your project to keep going. You can also make an explicit request for maintainers.\n\nFile v0.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn7ax58mnefnavcfwakqxpsgqn82tacy\",\n  \"slug\": \"image-to-word\",\n  \"version\": \"0.1.0\",\n  \"publishedAt\": 1786432102161\n}\n\nFile v0.1.0:references/api-docs.md\n\n# Scnet 图片转 Word 服务 API 文档\n\n## 1. 功能介绍\n\nScnet 图片转 Word 服务，支持将图片异步转换为可编辑的 Word 文件，适用于大批量图片处理场景。\n\n核心流程：\n\n1. **任务提交**：通过 `doc/convert/task` 接口提交待转换的文件 URL 或本地文件，获取任务 ID；\n2. **状态查询**：通过 `ocrdoc/result` 接口轮询任务状态，获取处理结果；\n3. **结果获取**：任务成功后返回转换后的 Word 文件下载地址。\n\n### 支持的文件类型\n\n**文档格式**\n\n| 类型 | 扩展名 |\n|------|--------|\n| PDF | .pdf |\n\n**图片格式**\n\n| 类型 | 扩展名 |\n|------|--------|\n| JPEG | .jpg / .jpeg |\n| PNG | .png |\n| BMP | .bmp |\n| TIFF | .tiff / .tif |\n| WebP | .webp |\n\n说明：请根据转换类别（`ocr_type`）选择对应的输入文件——`IMAGE_TO_WORD` 输入图片。\n\n---\n\n## 2. 图片转 Word 任务提交 API\n\n将图片解析（还原）为可编辑的 Word 文件，任务成功后返回 Word 文件的 MinIO 文件下载地址。任务提交后同样通过任务状态查询 API 轮询结果。\n\n### 2.1 端点信息\n\n| 项目 | 内容 |\n|------|------|\n| URL | POST `/api/llm/v1/doc/convert/task` |\n| Content-Type | `multipart/form-data` |\n| 认证 | `Authorization: Bearer <token>` |\n\n### 2.2 请求参数\n\n**Header 参数**\n\n| 名称 | 类型 | 必填 | 示例值 |\n|------|------|------|--------|\n| Content-Type | string | 是 | multipart/form-data |\n| Authorization | string | 是 | Bearer `<API Key>` |\n\n**Form 参数**\n\n| 名称 | 类型 | 必填 | 描述 |\n|------|------|------|------|\n| file | file | 否 | 本地上传的待转换文件。`file` 与 `file_url` 二选一，同时传入时优先使用 `file`。 |\n| file_url | string | 否 | 待转换文件的公网可访问下载地址。`file` 与 `file_url` 二选一。 |\n| ocr_type | string | 是 | 转换类别，可选值：`IMAGE_TO_WORD`（图片转 Word）。 |\n| page_index | string | 否 | 页码范围（如 `1` 或 `1-5`），默认全部解析。 |\n| is_table_cls | boolean | 否 | 是否开启表格细分处理，默认 `false`。 |\n| is_doc_ori | boolean | 否 | 是否开启文档方向矫正，默认 `false`。 |\n| enforce_seal | boolean | 否 | 是否开启强制二次印章检测，默认 `false`。 |\n| is_inline_formula | boolean | 否 | 是否开启行内公式检测，默认 `false`。 |\n\n说明：`file` 与 `file_url` 二选一，必须至少提供一个，否则返回参数错误。\n\n### 2.3 请求示例\n\n**本地文件上传**\n\n```bash\ncurl --location 'https://api.scnet.cn/api/llm/v1/doc/convert/task' \\\n--header 'Authorization: Bearer <API Key>' \\\n--form 'file=@\"/path/to/image.jpg\"' \\\n--form 'ocr_type=\"IMAGE_TO_WORD\"'\n```\n\n**文件 URL 提交**\n\n```bash\ncurl --location 'https://api.scnet.cn/api/llm/v1/doc/convert/task' \\\n--header 'Authorization: Bearer <API Key>' \\\n--form 'file_url=\"https://oss.ksai.scnet.cn:58043/ocr/doc/xxxxxx\"' \\\n--form 'ocr_type=\"IMAGE_TO_WORD\"'\n```\n\n### 2.4 响应参数\n\n| 参数名称 | 参数类型 | 描述 |\n|----------|----------|------|\n| code | String | 状态码 |\n| msg | String | 结果描述 |\n| output | Object | 任务提交结果 |\n| output.task_status | String | 任务状态（`pending` 待执行、`running` 执行中、`succeeded` 成功、`failed` 失败、`unknown` 任务不存在或未知状态） |\n| output.task_id | String | 任务唯一标识，用于后续结果查询 |\n| request_id | String | 请求唯一标识 |\n\n### 2.5 响应示例\n\n**成功响应**\n\n```json\n{\n  \"code\": \"0\",\n  \"msg\": \"\",\n  \"data\": {\n    \"output\": {\n      \"task_status\": \"pending\",\n      \"task_id\": \"0385dc79-5ff8-4d82-bcb6-xxxxxx\"\n    },\n    \"request_id\": \"4909100c-7b5a-9f92-bfe5-xxxxxx\"\n  }\n}\n```\n\n**失败响应**\n\n```json\n{\n  \"code\": \"10011\",\n  \"msg\": \"Burst rate limit exceeded for model\"\n}\n```\n\n### 2.6 结果获取\n\n图片转 Word 任务通过任务状态查询 API 轮询状态。任务成功后，`output.results` 数组返回转换后的 Word 文件的 MinIO 下载地址。\n\n```json\n{\n  \"code\": \"0\",\n  \"msg\": \"success\",\n  \"data\": [\n    {\n      \"output\": {\n        \"results\": [\n          \"https://minio.fanhualuomu.top:8088/doc-convert/results/2026/05/19/2056703208598626305/document.docx?...\"\n        ],\n        \"task_id\": \"2056703208598626305\",\n        \"task_status\": \"succeeded\",\n        \"submit_time\": \"2026-05-19 19:47:11\",\n        \"end_time\": \"2026-05-19 19:47:40\"\n      },\n      \"request_id\": \"5e726f4f7d518259\"\n    }\n  ]\n}\n```\n\n说明：`results` 中的下载地址后缀为 `.docx`（Word），下载地址为临时授权链接，请及时使用。\n\n---\n\n## 3. 任务状态查询 API\n\n### 3.1 端点信息\n\n| 项目 | 内容 |\n|------|------|\n| URL | POST `/api/llm/v1/ocrdoc/result` |\n| 认证 | `Authorization: Bearer <token>` |\n\n### 3.2 请求参数\n\n**Header 参数**\n\n| 名称 | 类型 | 必填 | 示例值 |\n|------|------|------|--------|\n| Authorization | string | 是 | Bearer `<API Key>` |\n\n**Body 参数**\n\n| 名称 | 类型 | 必填 | 描述 |\n|------|------|------|------|\n| task_ids | array | 是 | 任务 ID 列表 |\n\n### 3.3 请求体示例\n\n```json\n{\n  \"task_ids\": [\n    \"2056706028668284929\",\n    \"2056703208598626305\"\n  ]\n}\n```\n\n### 3.4 响应参数\n\n| 参数名称 | 参数类型 | 描述 |\n|----------|----------|------|\n| code | String | 状态码 |\n| msg | String | 结果描述 |\n| data | Array | 任务结果列表（每个 task_id 对应一个元素） |\n| data[].request_id | String | 请求唯一标识 |\n| data[].output | Object | 任务结果 |\n| data[].output.task_id | String | 任务唯一标识 |\n| data[].output.task_status | String | 任务状态 |\n| data[].output.submit_time | String | 任务提交时间 |\n| data[].output.end_time | String | 任务结束时间（成功/失败时返回） |\n| data[].output.results | Array | 结果文件下载地址列表（成功时返回） |\n| data[].output.error_code | String | 错误码（失败时返回） |\n| data[].output.error_message | String | 错误信息（失败时返回） |\n\n### 3.5 响应示例\n\n**任务成功**\n\n```json\n{\n  \"code\": \"0\",\n  \"msg\": \"success\",\n  \"data\": [\n    {\n      \"output\": {\n        \"results\": [\n          \"https://minio.fanhualuomu.top:8088/doc-convert/results/2026/05/19/2056703208598626305/document.docx?...\"\n        ],\n        \"task_id\": \"2056703208598626305\",\n        \"task_status\": \"succeeded\",\n        \"submit_time\": \"2026-05-19 19:47:11\",\n        \"end_time\": \"2026-05-19 19:47:40\"\n      },\n      \"request_id\": \"5e726f4f7d518259\"\n    }\n  ]\n}\n```\n\n**任务进行中**\n\n```json\n{\n  \"code\": \"0\",\n  \"msg\": \"\",\n  \"data\": [\n    {\n      \"request_id\": \"8ae698ba-df2d-966c-abcf-xxxxxx\",\n      \"output\": {\n        \"task_id\": \"e56d806f-76f9-4037-aefa-xxxxxx\",\n        \"task_status\": \"running\",\n        \"submit_time\": \"2026-04-20 19:33:50.425\"\n      }\n    }\n  ]\n}\n```\n\n**任务失败**\n\n```json\n{\n  \"code\": \"0\",\n  \"msg\": \"\",\n  \"data\": [\n    {\n      \"request_id\": \"c61fe158-c0de-40f0-b4d9-964625119ba4\",\n      \"output\": {\n        \"task_id\": \"86ecf553-d340-4e21-xxxxxxxxx\",\n        \"task_status\": \"failed\",\n        \"submit_time\": \"2025-11-11 11:46:28.116\",\n        \"end_time\": \"2025-11-11 11:46:28.255\",\n        \"error_code\": \"10011\",\n        \"error_message\": \"Burst rate limit exceeded for model xxx\"\n      }\n    }\n  ]\n}\n```\n\n---\n\n## 4. 任务状态说明\n\n| 状态 | 描述 |\n|------|------|\n| pending | 任务已提交，等待处理 |\n| running | 任务处理中 |\n| succeeded | 任务处理成功 |\n| failed | 任务处理失败 |\n| unknown | 任务不存在或未知状态 |\n\n---\n\n## 5. 错误码说明\n\n| 错误码 | 描述 |\n|--------|------|\n| 10001 | Unknown error |\n| 10002 | Unsupported modal type xxx |\n| 10003 | Unsupported provider xxx |\n| 10004 | Unsupported model xxx |\n| 10005 | Model xxx not found |\n| 10006 | Task not found |\n| 10007 | Concurrency conflict for request, please try again later |\n| 10008 | Provider xxx process error |\n| 10009 | Model xxx route failed |\n| 10010 | Illegal content detected by content approval |\n| 10011 | Burst rate limit exceeded for model xxx |\n| 10012 | An system error has occurred, please try again later |\n| 10013 | Parameter illegal |\n| 10014 | Incorrect API key provided |\n| 10015 | Task timeout, please try again later |\n\nFile v0.1.0:assets/templates/fields-summary.md\n\n# 文档格式转化任务字段说明\n\n## 输出字段（submit_task 提交后返回）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| code | String | 状态码，`0` 表示成功 |\n| msg | String | 结果描述 |\n| data | Object | 任务提交结果 |\n| data.output.task_status | String | 任务状态（pending / running / succeeded / failed / unknown） |\n| data.output.task_id | String | 任务唯一标识，用于后续结果查询 |\n| request_id | String | 请求唯一标识 |\n\n## 结果字段（ocrdoc/result 轮询成功后返回）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| code | String | 状态码，`0` 表示成功 |\n| msg | String | 结果描述 |\n| data | Array | 任务结果列表（每个 task_id 对应一个元素） |\n| data[].request_id | String | 请求唯一标识 |\n| data[].output | Object | 任务结果 |\n| data[].output.task_id | String | 任务唯一标识 |\n| data[].output.task_status | String | 任务状态 |\n| data[].output.submit_time | String | 任务提交时间 |\n| data[].output.end_time | String | 任务结束时间（成功/失败时返回） |\n| data[].output.results | Array | 结果文件下载地址列表（成功时返回） |\n| data[].output.error_code | String | 错误码（失败时返回） |\n| data[].output.error_message | String | 错误信息（失败时返回） |\n\n## 下载地址说明\n\n- `results` 中的下载地址后缀为 `.docx`（Word）。\n- 下载地址为临时授权链接，请及时使用。\n\nFile v0.1.0:CHANGELOG.md\n\n# 变更日志\n\n## [1.0.0] - 2026-08-11\n新增图片转 Word 功能\n\nFile v0.1.0:skill-card.md\n\n## Description:\n\nConverts images asynchronously into editable Word documents using the Scnet API.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[scnet-sugon](https://clawhub.ai/user/scnet-sugon)\n\n### License/Terms of Use:\n\nMIT\n\n## Use Case:\n\nDevelopers and end users use this skill to submit local image files for OCR-based conversion into editable Word documents. It is suited to document-conversion workflows that can use an external Scnet service and handle a temporary download link for the resulting .docx file.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill can upload readable local files to SCNet's external service.\n\nMitigation: Use it only with files approved for external processing and verify the local path before invocation.\n\nRisk: The API endpoint is configurable.\n\nMitigation: Keep SCNET_API_BASE set to a trusted Scnet URL unless an intentional replacement endpoint is controlled and reviewed.\n\nRisk: The skill depends on an API key and third-party Python dependency installation.\n\nMitigation: Protect and rotate SCNET_API_KEY, and install dependencies in an isolated environment with pinned versions where possible.\n\n## Reference(s):\n\n- [Scnet Image-to-Word API Docs](artifact/references/api-docs.md)\n- [Output Fields Summary](artifact/assets/templates/fields-summary.md)\n- [Source Repository](https://github.com/SCNet-sugon/image_to_word)\n- [ClawHub Skill Page](https://clawhub.ai/scnet-sugon/skills/image-to-word)\n- [Scnet Website](https://www.scnet.cn)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Shell commands, Configuration, Guidance]\n\n**Output Format:** [JSON text containing a temporary .docx download URL, with human-readable error messages when conversion fails]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires SCNET_API_KEY and may poll the external conversion service until completion or timeout.]\n\n## Skill Version(s):\n\n0.1.0 (source: ClawHub release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v0.1.0:skill.yaml\n\nname: image_to_word\nversion: 1.0.0\ndescription: 图片转Word 服务，支持将 图片异步转换为可编辑的 Word 文件。\nauthor: SCNet\nlicense: MIT\ntags:\n  - OCR\n  - 文档转换\n  - 图片转Word\n\nrequired_env_vars:\n  - SCNET_API_KEY\n\noptional_env_vars:\n  - SCNET_API_BASE\n  - SCNET_POLL_INTERVAL\n  - SCNET_MAX_POLL_TIME\n\nprimary_credential: SCNET_API_KEY\n\nhomepage: https://github.com/SCNet-sugon/image_to_word.git\n\ndependencies:\n  - python3\n  - requests\n\nFile v0.1.0:LICENSE.txt\n\nMIT License\n\nCopyright (c) 2025 Sugon-Scnet OCR Skill Contributors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","readmeExcerpt":"Skill: image_to_word Owner: scnet-sugon Summary: 图片转Word 服务，支持将 图片异步转换为可编辑的 Word 文件。 Tags: latest:0.1.0 Version history: v0.1.0 | 2026-08-11T07:08:22.161Z | auto Initial release: Asynchronous image-to-Word file conversion via Scnet API. - Converts images to editable Word documents (.docx) with OCR. - Handles conversion as an async task with automatic polling and timeout options. - Requires SCNET_API_KEY; optional env","codeSnippets":[],"executableExamples":[{"language":"ini","snippet":"# =====  Sugon-Scnet 文档格式转化 API 配置 =====\n# 申请地址：https://www.scnet.cn\nSCNET_API_KEY=your_scnet_api_key_here\n\n# API 基础地址（一般无需修改）\nSCNET_API_BASE=https://api.scnet.cn/api/llm/v1\n\n# 轮询配置（可选）\nSCNET_POLL_INTERVAL=5\nSCNET_MAX_POLL_TIME=600"},{"language":"bash","snippet":"pip install requests"},{"language":"bash","snippet":"python .claude/skills/image_to_word/scripts/main.py IMAGE_TO_WORD /path/to/image.png"},{"language":"text","snippet":"cd existing_repo\ngit remote add origin https://github.com/SCNet-sugon/image_to_word.git\ngit branch -M main\ngit push -uf origin main"},{"language":"bash","snippet":"curl --location 'https://api.scnet.cn/api/llm/v1/doc/convert/task' \\\n--header 'Authorization: Bearer <API Key>' \\\n--form 'file=@\"/path/to/image.jpg\"' \\\n--form 'ocr_type=\"IMAGE_TO_WORD\"'"},{"language":"bash","snippet":"curl --location 'https://api.scnet.cn/api/llm/v1/doc/convert/task' \\\n--header 'Authorization: Bearer <API Key>' \\\n--form 'file=@\"/path/to/image.jpg\"' \\\n--form 'ocr_type=\"IMAGE_TO_WORD\"'"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: image_to_word\ndescription: 图片转Word 服务，支持将 图片异步转换为可编辑的 Word 文件。\nversion: 1.0.0\nauthor: SCNet\nlicense: MIT\ntags:\n  - OCR\n  - 文档转换\n  - 图片转Word\n\nrequired_env_vars:\n  - SCNET_API_KEY\noptional_env_vars:\n  - SCNET_API_BASE\n  - SCNET_POLL_INTERVAL\n  - SCNET_MAX_POLL_TIME\nprimary_credential: SCNET_API_KEY\ndependencies:\n  - python3\n  - requests\ninput:\n  - ocrType : 转换类型，IMAGE_TO_WORD\n  - filePath : 待转换文件的本地路径\noutput: 转换后的 Word 文件下载地址\n---\n# Sugon-Scnet 图片转Word 服务技能\n\n本技能封装了 Scnet 图片转Word 服务，支持将 图片异步转换为可编辑的 Word 文件，并通过轮询获取转换结果。\n\n---\n\n## 功能特性\n\n- **图片转 Word**：将图片中的文档内容还原为 `.docx`。\n- **异步任务 + 自动轮询**：提交任务后自动轮询状态，直到任务完成或超时。\n\n## 前置配置\n\n> **⚠️ 重要**：使用前需要申请 Scnet API Token\n\n### 申请 API Token\n\n1. 访问 [Scnet 官网](https://www.scnet.cn) 注册/登录\n2. 在控制台申请 API 密钥（格式：`sc-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`）\n3. 复制密钥备用\n\n### 配置 Token\n\n**手动配置（推荐）**\n1. 在技能目录下创建 `config/.env` 文件，内容如下：\n```ini\n# =====  Sugon-Scnet 文档格式转化 API 配置 =====\n# 申请地址：https://www.scnet.cn\nSCNET_API_KEY=your_scnet_api_key_here\n\n# API 基础地址（一般无需修改）\nSCNET_API_BASE=https://api.scnet.cn/api/llm/v1\n\n# 轮询配置（可选）\nSCNET_POLL_INTERVAL=5\nSCNET_MAX_POLL_TIME=600\n```\n2. 添加：`SCNET_API_KEY=你的密钥`\n3. 设置文件权限为 600（仅所有者可读写）\n\n**⚠️ 安全警告**：切勿将 API Key 直接粘贴到聊天对话中，否则可能被记录或泄露。\n\n### Token 更新\n\nToken 过期后调用会返回 401 或 403 错误。更新方法：重新申请 Token 并替换 config/.env 中的 SCNET_API_KEY。\n\n### 依赖安装\n\n本技能需要 Python 3.6+ 和 requests 库。请运行以下命令：\n\n```bash\n   pip install requests\n```\n\n---\n\n## 使用方法\n\n### 参数说明\n\n| 参数名 | 类型 | 必填 | 描述 |\n|--------|------|------|------|\n| ocrType | string | 是 | 转换类型。必须为 IMAGE_TO_WORD（图片转 Word） |\n| filePath | string | 是 | 待转换文件的本地绝对路径。图片格式。 |\n\n### 命令行调用示例\n\n```bash\n   python .claude/skills/image_to_word/scripts/main.py IMAGE_TO_WORD /path/to/image.png\n```\n\n### 在 AI 对话中使用\n\n用户可以说：\n\n- “帮我把这张图片转换成 Word，图片路径 /Users/name/Downloads/slide.png”\n\nAI 会根据 description 中的关键词自动触发本技能。\n\n### AI 调用建议\n\n- 为避免触发 API 速率限制，请串行调用本技能，等待前一个任务完成后再发起下一个请求。\n- 如果使用 OpenClaw 的 exec 工具，建议设置足够的 timeout，因为转换任务需要异步轮询。\n\n### 配置选项\n\n编辑 `config/.env` 文件：\n\n| 变量名 | 默认值 | 说明 |\n|--------|--------|------|\n| SCNET_API_KEY | 必需 | Scnet API 密钥 |\n| SCNET_API_BASE | https://api.scnet.cn/api/llm/v1 | API 基础地址（一般无需修改） |\n| SCNET_POLL_INTERVAL | 5 | 轮询状态间隔（秒） |\n| SCNET_MAX_POLL_TIME | 600 | 最大轮询等待时间（秒） |\n\n### 输出\n\n- 标准输出：转换成功时返回结果文件下载地址 JSON。\n- 结果位于 `data[0].output.results` 中，为临时 MinIO 下载链接。\n- 错误信息：如果发生错误，会输出以 `错误:` 开头的友好提示。\n\n### 注意事项\n\n- 输入文件必须与 `ocrType` 匹配：PDF_TO_WORD 输入 PDF，IMAGE_TO_WORD / IMAGE_TO_PPT 输入图片。\n- 下载地址为临时授权链接，请及时下载使用。\n- 转换任务为异步处理，脚本会自动轮询直到完成或超时。\n\n### 故障排除\n\n| 问题 | 解决方案 |\n|------|----------|\n| 配置文件不存在 | 创建 config/.env 并填入 Token（参考前置配置） |\n| API Key 无效/过期 | 重新申请 Token 并更新 `.env` 文件 |\n| 文件不存在 | 检查提供的文件路径是否正确 |\n| 网络连接失败 | 检查网络连接或防火墙设置 |\n| 不支持的文件类型 | 确保文件扩展名为允许的类型（参考 API 文档） |\n| 401/403/Unauthorized | Token 无效或过期，重新申请并配置 |\n| 任务长时间 running | 可能是文件较大或服务繁忙，可增大 SCNET_MAX_POLL_TIME |\n| 任务失败 | 查看返回的 error_code 和 error_message |"},{"path":"README.md","content":"# image_to_word\n\n\n\n## Getting started\n\nTo make it easy for you to get started with GitLab, here's a list of recommended next steps.\n\nAlready a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)!\n\n## Add your files\n\n* [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files\n* [Add files using the command line](https://docs.gitlab.com/topics/git/add_files/#add-files-to-a-git-repository) or push an existing Git repository with the following command:\n\n```\ncd existing_repo\ngit remote add origin https://github.com/SCNet-sugon/image_to_word.git\ngit branch -M main\ngit push -uf origin main\n```\n\n\n## Collaborate with your team\n\n* [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/)\n* [Create a new merge request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html)\n* [Automatically close issues from merge requests](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically)\n* [Enable merge request approvals](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/)\n* [Set auto-merge](https://docs.gitlab.com/user/project/merge_requests/auto_merge/)\n\n## Test and Deploy\n\nUse the built-in continuous integration in GitLab.\n\n* [Get started with GitLab CI/CD](https://docs.gitlab.com/ee/ci/quick_start/)\n* [Analyze your code for known vulnerabilities with Static Application Security Testing (SAST)](https://docs.gitlab.com/ee/user/application_security/sast/)\n* [Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy](https://docs.gitlab.com/ee/topics/autodevops/requirements.html)\n* [Use pull-based deployments for improved Kubernetes management](https://docs.gitlab.com/ee/user/clusters/agent/)\n* [Set up protected environments](https://docs.gitlab.com/ee/ci/environments/protected_environments.html)\n\n***\n\n# Editing this README\n\nWhen you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thanks to [makeareadme.com](https://www.makeareadme.com/) for this template.\n\n## Suggestions for a good README\n\nEvery project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information.\n\n## Name\nChoose a self-explaining name for your project.\n\n## Description\nLet people know what your project can do specifically. Provide context and add a link to any reference visitors might be unfamiliar with. A list of Features or a Background "},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7ax58mnefnavcfwakqxpsgqn82tacy\",\n  \"slug\": \"image-to-word\",\n  \"version\": \"0.1.0\",\n  \"publishedAt\": 1786432102161\n}"},{"path":"references/api-docs.md","content":"# Scnet 图片转 Word 服务 API 文档\n\n## 1. 功能介绍\n\nScnet 图片转 Word 服务，支持将图片异步转换为可编辑的 Word 文件，适用于大批量图片处理场景。\n\n核心流程：\n\n1. **任务提交**：通过 `doc/convert/task` 接口提交待转换的文件 URL 或本地文件，获取任务 ID；\n2. **状态查询**：通过 `ocrdoc/result` 接口轮询任务状态，获取处理结果；\n3. **结果获取**：任务成功后返回转换后的 Word 文件下载地址。\n\n### 支持的文件类型\n\n**文档格式**\n\n| 类型 | 扩展名 |\n|------|--------|\n| PDF | .pdf |\n\n**图片格式**\n\n| 类型 | 扩展名 |\n|------|--------|\n| JPEG | .jpg / .jpeg |\n| PNG | .png |\n| BMP | .bmp |\n| TIFF | .tiff / .tif |\n| WebP | .webp |\n\n说明：请根据转换类别（`ocr_type`）选择对应的输入文件——`IMAGE_TO_WORD` 输入图片。\n\n---\n\n## 2. 图片转 Word 任务提交 API\n\n将图片解析（还原）为可编辑的 Word 文件，任务成功后返回 Word 文件的 MinIO 文件下载地址。任务提交后同样通过任务状态查询 API 轮询结果。\n\n### 2.1 端点信息\n\n| 项目 | 内容 |\n|------|------|\n| URL | POST `/api/llm/v1/doc/convert/task` |\n| Content-Type | `multipart/form-data` |\n| 认证 | `Authorization: Bearer <token>` |\n\n### 2.2 请求参数\n\n**Header 参数**\n\n| 名称 | 类型 | 必填 | 示例值 |\n|------|------|------|--------|\n| Content-Type | string | 是 | multipart/form-data |\n| Authorization | string | 是 | Bearer `<API Key>` |\n\n**Form 参数**\n\n| 名称 | 类型 | 必填 | 描述 |\n|------|------|------|------|\n| file | file | 否 | 本地上传的待转换文件。`file` 与 `file_url` 二选一，同时传入时优先使用 `file`。 |\n| file_url | string | 否 | 待转换文件的公网可访问下载地址。`file` 与 `file_url` 二选一。 |\n| ocr_type | string | 是 | 转换类别，可选值：`IMAGE_TO_WORD`（图片转 Word）。 |\n| page_index | string | 否 | 页码范围（如 `1` 或 `1-5`），默认全部解析。 |\n| is_table_cls | boolean | 否 | 是否开启表格细分处理，默认 `false`。 |\n| is_doc_ori | boolean | 否 | 是否开启文档方向矫正，默认 `false`。 |\n| enforce_seal | boolean | 否 | 是否开启强制二次印章检测，默认 `false`。 |\n| is_inline_formula | boolean | 否 | 是否开启行内公式检测，默认 `false`。 |\n\n说明：`file` 与 `file_url` 二选一，必须至少提供一个，否则返回参数错误。\n\n### 2.3 请求示例\n\n**本地文件上传**\n\n```bash\ncurl --location 'https://api.scnet.cn/api/llm/v1/doc/convert/task' \\\n--header 'Authorization: Bearer <API Key>' \\\n--form 'file=@\"/path/to/image.jpg\"' \\\n--form 'ocr_type=\"IMAGE_TO_WORD\"'\n```\n\n**文件 URL 提交**\n\n```bash\ncurl --location 'https://api.scnet.cn/api/llm/v1/doc/convert/task' \\\n--header 'Authorization: Bearer <API Key>' \\\n--form 'file_url=\"https://oss.ksai.scnet.cn:58043/ocr/doc/xxxxxx\"' \\\n--form 'ocr_type=\"IMAGE_TO_WORD\"'\n```\n\n### 2.4 响应参数\n\n| 参数名称 | 参数类型 | 描述 |\n|----------|----------|------|\n| code | String | 状态码 |\n| msg | String | 结果描述 |\n| output | Object | 任务提交结果 |\n| output.task_status | String | 任务状态（`pending` 待执行、`running` 执行中、`succeeded` 成功、`failed` 失败、`unknown` 任务不存在或未知状态） |\n| output.task_id | String | 任务唯一标识，用于后续结果查询 |\n| request_id | String | 请求唯一标识 |\n\n### 2.5 响应示例\n\n**成功响应**\n\n```json\n{\n  \"code\": \"0\",\n  \"msg\": \"\",\n  \"data\": {\n    \"output\": {\n      \"task_status\": \"pending\",\n      \"task_id\": \"0385dc79-5ff8-4d82-bcb6-xxxxxx\"\n    },\n    \"request_id\": \"4909100c-7b5a-9f92-bfe5-xxxxxx\"\n  }\n}\n```\n\n**失败响应**\n\n```json\n{\n  \"code\": \"10011\",\n  \"msg\": \"Burst rate limit exceeded for model\"\n}\n```\n\n### 2.6 结果获取\n\n图片转 Word 任务通过任务状态查询 API 轮询状态。任务成功后，`output.results` 数组返回转换后的 Word 文件的 MinIO 下载地址。\n\n```json\n{\n  \"code\": \"0\",\n  \"msg\": \"success\",\n  \"data\": [\n    {\n      \"output\": {\n        \"results\": [\n          \"https://minio.fanhualuomu.top:8088/doc-convert/result"},{"path":"assets/templates/fields-summary.md","content":"# 文档格式转化任务字段说明\n\n## 输出字段（submit_task 提交后返回）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| code | String | 状态码，`0` 表示成功 |\n| msg | String | 结果描述 |\n| data | Object | 任务提交结果 |\n| data.output.task_status | String | 任务状态（pending / running / succeeded / failed / unknown） |\n| data.output.task_id | String | 任务唯一标识，用于后续结果查询 |\n| request_id | String | 请求唯一标识 |\n\n## 结果字段（ocrdoc/result 轮询成功后返回）\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| code | String | 状态码，`0` 表示成功 |\n| msg | String | 结果描述 |\n| data | Array | 任务结果列表（每个 task_id 对应一个元素） |\n| data[].request_id | String | 请求唯一标识 |\n| data[].output | Object | 任务结果 |\n| data[].output.task_id | String | 任务唯一标识 |\n| data[].output.task_status | String | 任务状态 |\n| data[].output.submit_time | String | 任务提交时间 |\n| data[].output.end_time | String | 任务结束时间（成功/失败时返回） |\n| data[].output.results | Array | 结果文件下载地址列表（成功时返回） |\n| data[].output.error_code | String | 错误码（失败时返回） |\n| data[].output.error_message | String | 错误信息（失败时返回） |\n\n## 下载地址说明\n\n- `results` 中的下载地址后缀为 `.docx`（Word）。\n- 下载地址为临时授权链接，请及时使用。"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"图片转Word 服务，支持将 图片异步转换为可编辑的 Word 文件。 Skill: image_to_word Owner: scnet-sugon Summary: 图片转Word 服务，支持将 图片异步转换为可编辑的 Word 文件。 Tags: latest:0.1.0 Version history: v0.1.0 | 2026-08-11T07:08:22.161Z | auto Initial release: Asynchronous image-to-Word file conversion via Scnet API. - Converts images to editable Word documents (.docx) with OCR. - Handles conversion as an async task with automatic polling and timeout options. - Requires SCNET_API_KEY; optional env","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1149,"uniquenessScore":48,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T23:45:26.493Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-09T23:45:26.493Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T06:44:19.166Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}