elliot-markitdown


Nameelliot-markitdown JSON
Version 0.1.0 PyPI version JSON
download
home_pagehttps://github.com/main2snipercc/markitdown-web----
Summary一个文档处理和OCR工具包集合
upload_time2025-02-04 01:37:29
maintainerNone
docs_urlNone
authorElliot
requires_python>=3.7
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # MarkItDown - 智能文档转换工具

MarkItDown 是一个强大的文档转换工具,能够将各种格式的文件转换为 Markdown 格式。它支持 AI 增强功能,可以智能识别图片中的文字,提供更准确的文档结构识别,并支持多种 AI 服务提供商。

## 功能特点

- 🔄 支持多种文件格式转换
  - 📄 文档:PDF, Word (.doc, .docx), PowerPoint (.pptx), Excel (.xlsx)
  - 📷 图片:JPG, JPEG, PNG(支持 OCR 和 EXIF 元数据提取)
  - 🌐 网页:HTML
  - 📝 文本:TXT, CSV, JSON, XML
  - 🎵 音频:支持语音转文字和元数据提取

- 📸 屏幕截图功能
  - 快捷键支持(Ctrl+Alt+S)
  - 区域选择截图
  - 自动识别文字内容
  - 智能布局分析
  - 一键转换为Markdown
  - 自动保存截图历史

- 🤖 AI 增强功能
  - 图片文字识别(OCR)
  - 智能文档结构分析
  - 语音转文字
  - 内容优化和格式化
  - 截图内容智能分析

- 🔌 支持多个 AI 服务提供商
  - OpenAI
  - Anthropic
  - DeepSeek
  - Ollama(本地部署)
  - 硅基流动
  - OpenRouter
  - 自定义 OpenAI 兼容接口

- 💾 文件管理功能
  - 文件上传(支持拖放)
  - 历史文件管理
  - 批量删除功能

## 音频转录功能

### 支持的音频格式
- MP3 (.mp3)
- WAV (.wav)
- M4A (.m4a)

### 音频转录提供商
目前支持以下AI提供商的音频转录服务:

1. 硅基流动(推荐)
   - 模型:`FunAudioLLM/SenseVoiceSmall`
   - API端点:`https://api.siliconflow.cn/v1/audio/transcriptions`
   - 支持中文音频转录
   - 使用方法:
     ```
     1. 选择 AI 提供商为 "硅基流动"
     2. 填入有效的 API Key
     3. 选择模型为 "FunAudioLLM/SenseVoiceSmall"
     4. 上传音频文件
     ```

2. OpenAI
   - 模型:`whisper-1`
   - 支持多语言音频转录
   - 使用方法:
     ```
     1. 选择 AI 提供商为 "OpenAI"
     2. 填入 OpenAI API Key
     3. 选择模型为 "whisper-1"
     4. 上传音频文件
     ```

### 使用限制
- 音频文件大小限制:16MB
- 支持的文件格式:MP3、WAV、M4A
- 需要有效的 API 密钥
- 音频质量需要清晰可辨

### 错误处理
如果遇到转录失败,请检查:
1. API 密钥是否有效
2. 音频文件是否完整且未损坏
3. 文件格式是否正确
4. 文件大小是否在限制范围内
5. 网络连接是否正常

### 注意事项
- 转录过程可能需要一些时间,请耐心等待
- 建议使用质量较好的音频以获得更准确的转录结果
- 如果使用硅基流动API,建议选择中文音频以获得最佳效果

## 安装说明

1. 克隆仓库:
```bash
git clone https://github.com/yourusername/markitdown.git
cd markitdown
```

2. 创建虚拟环境:
```bash
python -m venv venv
source venv/bin/activate  # Linux/Mac
venv\Scripts\activate     # Windows
```

3. 安装 Python 依赖:
```bash
pip install -r requirements.txt
```

4. 安装 Tesseract-OCR(用于文字识别):

Windows:
- 下载 [Tesseract-OCR 安装包](https://github.com/UB-Mannheim/tesseract/wiki)
- 运行安装程序,记住安装路径
- 将安装路径(例如 `C:\Program Files\Tesseract-OCR`)添加到系统环境变量 Path 中
- 安装中文语言包:在安装时选择"Additional language data (download)",并选择"Chinese (Simplified)"

Linux:
```bash
sudo apt-get update
sudo apt-get install tesseract-ocr
sudo apt-get install tesseract-ocr-chi-sim  # 中文支持
```

macOS:
```bash
brew install tesseract
brew install tesseract-lang  # 安装所有语言包
```

5. 创建必要的目录:
```bash
mkdir uploads
mkdir uploads/images
mkdir uploads/screenshots
```

6. 验证安装:
```bash
# 验证 Tesseract 安装
tesseract --version

# 验证 Python 包安装
python -c "import pytesseract; print(pytesseract.get_tesseract_version())"
```

如果遇到 "tesseract not found" 错误,请确保:
- Tesseract-OCR 已正确安装
- 安装路径已添加到系统环境变量
- 如果使用 Windows,可能需要重启终端或计算机

## 使用方法

1. 启动服务器:
```bash
python app.py
```

2. 打开浏览器访问:`http://localhost:5000`

3. 基础使用:
   - 直接拖放文件到上传区域或点击"选择文件"
   - 等待转换完成
   - 查看转换结果,支持 Markdown 预览和源码视图
   - 使用"复制 Markdown"按钮复制内容

4. AI 增强功能:
   - 勾选"使用 AI 增强"
   - 选择 AI 服务提供商
   - 输入相应的 API 密钥
   - 选择合适的模型(根据文件类型)
   - 上传文件进行转换

5. 文件管理:
   - 使用下拉菜单查看已上传的文件
   - 点击"使用选中文件"重新转换
   - 使用删除按钮移除单个或所有文件

6. 屏幕截图功能:
   - 使用快捷键 `Ctrl+Alt+S` 启动截图
   - 鼠标拖动选择截图区域
   - 自动识别文字内容并转换
   - 在预览区查看转换结果
   - 可以编辑和调整转换后的内容
   - 支持截图历史管理

## 技术实现

### 后端架构

1. **核心框架**
   - Flask:Web 框架
   - PyMuPDF:PDF 处理
   - MarkItDown:文档转换核心库

2. **文件处理流程**
   - 文件上传验证和安全处理
   - 格式检测和分类
   - 内容提取和转换
   - Markdown 格式化和优化

3. **AI 集成**
   - 多提供商支持架构
   - 统一的 API 调用接口
   - 异步处理和错误处理
   - 结果优化和格式化

4. **图片处理**
   - OCR 文字识别
   - 图片保存和引用
   - 路径规范化
   - 元数据提取

5. **屏幕截图处理**
   - 系统级快捷键监听
   - 屏幕区域选择
   - 图像捕获和处理
   - OCR文字识别
   - 布局分析和重构
   - 历史记录管理

### 前端实现

1. **用户界面**
   - 响应式设计
   - 拖放上传
   - 实时预览
   - 进度反馈

2. **交互功能**
   - 文件管理
   - AI 配置
   - 格式切换
   - 复制功能

3. **状态管理**
   - 文件列表维护
   - 转换状态追踪
   - 错误处理和显示

## 注意事项

1. API 密钥安全:
   - 请妥善保管您的 API 密钥
   - 建议使用环境变量存储敏感信息
   - 在生产环境中使用 HTTPS

2. 文件限制:
   - 最大文件大小:16MB
   - 支持的文件类型见功能列表
   - 图片文件必须启用 AI 功能

3. AI 模型选择:
   - 图片处理需要使用支持 vision 的模型
   - 音频处理需要使用支持语音的模型
   - 文档处理可使用通用语言模型

## 贡献指南

欢迎提交 Pull Request 和 Issue。在提交之前,请确保:

1. 代码符合 PEP 8 规范
2. 添加了必要的测试
3. 更新了相关文档
4. 提供了清晰的提交信息

## 许可证

本项目采用 MIT 许可证。详见 [LICENSE](LICENSE) 文件。 

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/main2snipercc/markitdown-web----",
    "name": "elliot-markitdown",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": null,
    "author": "Elliot",
    "author_email": "huang19911021@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/14/6c/de887a8d86fb1c662b7c2476ef9c143429dfdcae3f070ffb937c683cfd30/elliot_markitdown-0.1.0.tar.gz",
    "platform": null,
    "description": "# MarkItDown - \u667a\u80fd\u6587\u6863\u8f6c\u6362\u5de5\u5177\r\n\r\nMarkItDown \u662f\u4e00\u4e2a\u5f3a\u5927\u7684\u6587\u6863\u8f6c\u6362\u5de5\u5177\uff0c\u80fd\u591f\u5c06\u5404\u79cd\u683c\u5f0f\u7684\u6587\u4ef6\u8f6c\u6362\u4e3a Markdown \u683c\u5f0f\u3002\u5b83\u652f\u6301 AI \u589e\u5f3a\u529f\u80fd\uff0c\u53ef\u4ee5\u667a\u80fd\u8bc6\u522b\u56fe\u7247\u4e2d\u7684\u6587\u5b57\uff0c\u63d0\u4f9b\u66f4\u51c6\u786e\u7684\u6587\u6863\u7ed3\u6784\u8bc6\u522b\uff0c\u5e76\u652f\u6301\u591a\u79cd AI \u670d\u52a1\u63d0\u4f9b\u5546\u3002\r\n\r\n## \u529f\u80fd\u7279\u70b9\r\n\r\n- \ud83d\udd04 \u652f\u6301\u591a\u79cd\u6587\u4ef6\u683c\u5f0f\u8f6c\u6362\r\n  - \ud83d\udcc4 \u6587\u6863\uff1aPDF, Word (.doc, .docx), PowerPoint (.pptx), Excel (.xlsx)\r\n  - \ud83d\udcf7 \u56fe\u7247\uff1aJPG, JPEG, PNG\uff08\u652f\u6301 OCR \u548c EXIF \u5143\u6570\u636e\u63d0\u53d6\uff09\r\n  - \ud83c\udf10 \u7f51\u9875\uff1aHTML\r\n  - \ud83d\udcdd \u6587\u672c\uff1aTXT, CSV, JSON, XML\r\n  - \ud83c\udfb5 \u97f3\u9891\uff1a\u652f\u6301\u8bed\u97f3\u8f6c\u6587\u5b57\u548c\u5143\u6570\u636e\u63d0\u53d6\r\n\r\n- \ud83d\udcf8 \u5c4f\u5e55\u622a\u56fe\u529f\u80fd\r\n  - \u5feb\u6377\u952e\u652f\u6301\uff08Ctrl+Alt+S\uff09\r\n  - \u533a\u57df\u9009\u62e9\u622a\u56fe\r\n  - \u81ea\u52a8\u8bc6\u522b\u6587\u5b57\u5185\u5bb9\r\n  - \u667a\u80fd\u5e03\u5c40\u5206\u6790\r\n  - \u4e00\u952e\u8f6c\u6362\u4e3aMarkdown\r\n  - \u81ea\u52a8\u4fdd\u5b58\u622a\u56fe\u5386\u53f2\r\n\r\n- \ud83e\udd16 AI \u589e\u5f3a\u529f\u80fd\r\n  - \u56fe\u7247\u6587\u5b57\u8bc6\u522b\uff08OCR\uff09\r\n  - \u667a\u80fd\u6587\u6863\u7ed3\u6784\u5206\u6790\r\n  - \u8bed\u97f3\u8f6c\u6587\u5b57\r\n  - \u5185\u5bb9\u4f18\u5316\u548c\u683c\u5f0f\u5316\r\n  - \u622a\u56fe\u5185\u5bb9\u667a\u80fd\u5206\u6790\r\n\r\n- \ud83d\udd0c \u652f\u6301\u591a\u4e2a AI \u670d\u52a1\u63d0\u4f9b\u5546\r\n  - OpenAI\r\n  - Anthropic\r\n  - DeepSeek\r\n  - Ollama\uff08\u672c\u5730\u90e8\u7f72\uff09\r\n  - \u7845\u57fa\u6d41\u52a8\r\n  - OpenRouter\r\n  - \u81ea\u5b9a\u4e49 OpenAI \u517c\u5bb9\u63a5\u53e3\r\n\r\n- \ud83d\udcbe \u6587\u4ef6\u7ba1\u7406\u529f\u80fd\r\n  - \u6587\u4ef6\u4e0a\u4f20\uff08\u652f\u6301\u62d6\u653e\uff09\r\n  - \u5386\u53f2\u6587\u4ef6\u7ba1\u7406\r\n  - \u6279\u91cf\u5220\u9664\u529f\u80fd\r\n\r\n## \u97f3\u9891\u8f6c\u5f55\u529f\u80fd\r\n\r\n### \u652f\u6301\u7684\u97f3\u9891\u683c\u5f0f\r\n- MP3 (.mp3)\r\n- WAV (.wav)\r\n- M4A (.m4a)\r\n\r\n### \u97f3\u9891\u8f6c\u5f55\u63d0\u4f9b\u5546\r\n\u76ee\u524d\u652f\u6301\u4ee5\u4e0bAI\u63d0\u4f9b\u5546\u7684\u97f3\u9891\u8f6c\u5f55\u670d\u52a1\uff1a\r\n\r\n1. \u7845\u57fa\u6d41\u52a8\uff08\u63a8\u8350\uff09\r\n   - \u6a21\u578b\uff1a`FunAudioLLM/SenseVoiceSmall`\r\n   - API\u7aef\u70b9\uff1a`https://api.siliconflow.cn/v1/audio/transcriptions`\r\n   - \u652f\u6301\u4e2d\u6587\u97f3\u9891\u8f6c\u5f55\r\n   - \u4f7f\u7528\u65b9\u6cd5\uff1a\r\n     ```\r\n     1. \u9009\u62e9 AI \u63d0\u4f9b\u5546\u4e3a \"\u7845\u57fa\u6d41\u52a8\"\r\n     2. \u586b\u5165\u6709\u6548\u7684 API Key\r\n     3. \u9009\u62e9\u6a21\u578b\u4e3a \"FunAudioLLM/SenseVoiceSmall\"\r\n     4. \u4e0a\u4f20\u97f3\u9891\u6587\u4ef6\r\n     ```\r\n\r\n2. OpenAI\r\n   - \u6a21\u578b\uff1a`whisper-1`\r\n   - \u652f\u6301\u591a\u8bed\u8a00\u97f3\u9891\u8f6c\u5f55\r\n   - \u4f7f\u7528\u65b9\u6cd5\uff1a\r\n     ```\r\n     1. \u9009\u62e9 AI \u63d0\u4f9b\u5546\u4e3a \"OpenAI\"\r\n     2. \u586b\u5165 OpenAI API Key\r\n     3. \u9009\u62e9\u6a21\u578b\u4e3a \"whisper-1\"\r\n     4. \u4e0a\u4f20\u97f3\u9891\u6587\u4ef6\r\n     ```\r\n\r\n### \u4f7f\u7528\u9650\u5236\r\n- \u97f3\u9891\u6587\u4ef6\u5927\u5c0f\u9650\u5236\uff1a16MB\r\n- \u652f\u6301\u7684\u6587\u4ef6\u683c\u5f0f\uff1aMP3\u3001WAV\u3001M4A\r\n- \u9700\u8981\u6709\u6548\u7684 API \u5bc6\u94a5\r\n- \u97f3\u9891\u8d28\u91cf\u9700\u8981\u6e05\u6670\u53ef\u8fa8\r\n\r\n### \u9519\u8bef\u5904\u7406\r\n\u5982\u679c\u9047\u5230\u8f6c\u5f55\u5931\u8d25\uff0c\u8bf7\u68c0\u67e5\uff1a\r\n1. API \u5bc6\u94a5\u662f\u5426\u6709\u6548\r\n2. \u97f3\u9891\u6587\u4ef6\u662f\u5426\u5b8c\u6574\u4e14\u672a\u635f\u574f\r\n3. \u6587\u4ef6\u683c\u5f0f\u662f\u5426\u6b63\u786e\r\n4. \u6587\u4ef6\u5927\u5c0f\u662f\u5426\u5728\u9650\u5236\u8303\u56f4\u5185\r\n5. \u7f51\u7edc\u8fde\u63a5\u662f\u5426\u6b63\u5e38\r\n\r\n### \u6ce8\u610f\u4e8b\u9879\r\n- \u8f6c\u5f55\u8fc7\u7a0b\u53ef\u80fd\u9700\u8981\u4e00\u4e9b\u65f6\u95f4\uff0c\u8bf7\u8010\u5fc3\u7b49\u5f85\r\n- \u5efa\u8bae\u4f7f\u7528\u8d28\u91cf\u8f83\u597d\u7684\u97f3\u9891\u4ee5\u83b7\u5f97\u66f4\u51c6\u786e\u7684\u8f6c\u5f55\u7ed3\u679c\r\n- \u5982\u679c\u4f7f\u7528\u7845\u57fa\u6d41\u52a8API\uff0c\u5efa\u8bae\u9009\u62e9\u4e2d\u6587\u97f3\u9891\u4ee5\u83b7\u5f97\u6700\u4f73\u6548\u679c\r\n\r\n## \u5b89\u88c5\u8bf4\u660e\r\n\r\n1. \u514b\u9686\u4ed3\u5e93\uff1a\r\n```bash\r\ngit clone https://github.com/yourusername/markitdown.git\r\ncd markitdown\r\n```\r\n\r\n2. \u521b\u5efa\u865a\u62df\u73af\u5883\uff1a\r\n```bash\r\npython -m venv venv\r\nsource venv/bin/activate  # Linux/Mac\r\nvenv\\Scripts\\activate     # Windows\r\n```\r\n\r\n3. \u5b89\u88c5 Python \u4f9d\u8d56\uff1a\r\n```bash\r\npip install -r requirements.txt\r\n```\r\n\r\n4. \u5b89\u88c5 Tesseract-OCR\uff08\u7528\u4e8e\u6587\u5b57\u8bc6\u522b\uff09\uff1a\r\n\r\nWindows:\r\n- \u4e0b\u8f7d [Tesseract-OCR \u5b89\u88c5\u5305](https://github.com/UB-Mannheim/tesseract/wiki)\r\n- \u8fd0\u884c\u5b89\u88c5\u7a0b\u5e8f\uff0c\u8bb0\u4f4f\u5b89\u88c5\u8def\u5f84\r\n- \u5c06\u5b89\u88c5\u8def\u5f84\uff08\u4f8b\u5982 `C:\\Program Files\\Tesseract-OCR`\uff09\u6dfb\u52a0\u5230\u7cfb\u7edf\u73af\u5883\u53d8\u91cf Path \u4e2d\r\n- \u5b89\u88c5\u4e2d\u6587\u8bed\u8a00\u5305\uff1a\u5728\u5b89\u88c5\u65f6\u9009\u62e9\"Additional language data (download)\"\uff0c\u5e76\u9009\u62e9\"Chinese (Simplified)\"\r\n\r\nLinux:\r\n```bash\r\nsudo apt-get update\r\nsudo apt-get install tesseract-ocr\r\nsudo apt-get install tesseract-ocr-chi-sim  # \u4e2d\u6587\u652f\u6301\r\n```\r\n\r\nmacOS:\r\n```bash\r\nbrew install tesseract\r\nbrew install tesseract-lang  # \u5b89\u88c5\u6240\u6709\u8bed\u8a00\u5305\r\n```\r\n\r\n5. \u521b\u5efa\u5fc5\u8981\u7684\u76ee\u5f55\uff1a\r\n```bash\r\nmkdir uploads\r\nmkdir uploads/images\r\nmkdir uploads/screenshots\r\n```\r\n\r\n6. \u9a8c\u8bc1\u5b89\u88c5\uff1a\r\n```bash\r\n# \u9a8c\u8bc1 Tesseract \u5b89\u88c5\r\ntesseract --version\r\n\r\n# \u9a8c\u8bc1 Python \u5305\u5b89\u88c5\r\npython -c \"import pytesseract; print(pytesseract.get_tesseract_version())\"\r\n```\r\n\r\n\u5982\u679c\u9047\u5230 \"tesseract not found\" \u9519\u8bef\uff0c\u8bf7\u786e\u4fdd\uff1a\r\n- Tesseract-OCR \u5df2\u6b63\u786e\u5b89\u88c5\r\n- \u5b89\u88c5\u8def\u5f84\u5df2\u6dfb\u52a0\u5230\u7cfb\u7edf\u73af\u5883\u53d8\u91cf\r\n- \u5982\u679c\u4f7f\u7528 Windows\uff0c\u53ef\u80fd\u9700\u8981\u91cd\u542f\u7ec8\u7aef\u6216\u8ba1\u7b97\u673a\r\n\r\n## \u4f7f\u7528\u65b9\u6cd5\r\n\r\n1. \u542f\u52a8\u670d\u52a1\u5668\uff1a\r\n```bash\r\npython app.py\r\n```\r\n\r\n2. \u6253\u5f00\u6d4f\u89c8\u5668\u8bbf\u95ee\uff1a`http://localhost:5000`\r\n\r\n3. \u57fa\u7840\u4f7f\u7528\uff1a\r\n   - \u76f4\u63a5\u62d6\u653e\u6587\u4ef6\u5230\u4e0a\u4f20\u533a\u57df\u6216\u70b9\u51fb\"\u9009\u62e9\u6587\u4ef6\"\r\n   - \u7b49\u5f85\u8f6c\u6362\u5b8c\u6210\r\n   - \u67e5\u770b\u8f6c\u6362\u7ed3\u679c\uff0c\u652f\u6301 Markdown \u9884\u89c8\u548c\u6e90\u7801\u89c6\u56fe\r\n   - \u4f7f\u7528\"\u590d\u5236 Markdown\"\u6309\u94ae\u590d\u5236\u5185\u5bb9\r\n\r\n4. AI \u589e\u5f3a\u529f\u80fd\uff1a\r\n   - \u52fe\u9009\"\u4f7f\u7528 AI \u589e\u5f3a\"\r\n   - \u9009\u62e9 AI \u670d\u52a1\u63d0\u4f9b\u5546\r\n   - \u8f93\u5165\u76f8\u5e94\u7684 API \u5bc6\u94a5\r\n   - \u9009\u62e9\u5408\u9002\u7684\u6a21\u578b\uff08\u6839\u636e\u6587\u4ef6\u7c7b\u578b\uff09\r\n   - \u4e0a\u4f20\u6587\u4ef6\u8fdb\u884c\u8f6c\u6362\r\n\r\n5. \u6587\u4ef6\u7ba1\u7406\uff1a\r\n   - \u4f7f\u7528\u4e0b\u62c9\u83dc\u5355\u67e5\u770b\u5df2\u4e0a\u4f20\u7684\u6587\u4ef6\r\n   - \u70b9\u51fb\"\u4f7f\u7528\u9009\u4e2d\u6587\u4ef6\"\u91cd\u65b0\u8f6c\u6362\r\n   - \u4f7f\u7528\u5220\u9664\u6309\u94ae\u79fb\u9664\u5355\u4e2a\u6216\u6240\u6709\u6587\u4ef6\r\n\r\n6. \u5c4f\u5e55\u622a\u56fe\u529f\u80fd\uff1a\r\n   - \u4f7f\u7528\u5feb\u6377\u952e `Ctrl+Alt+S` \u542f\u52a8\u622a\u56fe\r\n   - \u9f20\u6807\u62d6\u52a8\u9009\u62e9\u622a\u56fe\u533a\u57df\r\n   - \u81ea\u52a8\u8bc6\u522b\u6587\u5b57\u5185\u5bb9\u5e76\u8f6c\u6362\r\n   - \u5728\u9884\u89c8\u533a\u67e5\u770b\u8f6c\u6362\u7ed3\u679c\r\n   - \u53ef\u4ee5\u7f16\u8f91\u548c\u8c03\u6574\u8f6c\u6362\u540e\u7684\u5185\u5bb9\r\n   - \u652f\u6301\u622a\u56fe\u5386\u53f2\u7ba1\u7406\r\n\r\n## \u6280\u672f\u5b9e\u73b0\r\n\r\n### \u540e\u7aef\u67b6\u6784\r\n\r\n1. **\u6838\u5fc3\u6846\u67b6**\r\n   - Flask\uff1aWeb \u6846\u67b6\r\n   - PyMuPDF\uff1aPDF \u5904\u7406\r\n   - MarkItDown\uff1a\u6587\u6863\u8f6c\u6362\u6838\u5fc3\u5e93\r\n\r\n2. **\u6587\u4ef6\u5904\u7406\u6d41\u7a0b**\r\n   - \u6587\u4ef6\u4e0a\u4f20\u9a8c\u8bc1\u548c\u5b89\u5168\u5904\u7406\r\n   - \u683c\u5f0f\u68c0\u6d4b\u548c\u5206\u7c7b\r\n   - \u5185\u5bb9\u63d0\u53d6\u548c\u8f6c\u6362\r\n   - Markdown \u683c\u5f0f\u5316\u548c\u4f18\u5316\r\n\r\n3. **AI \u96c6\u6210**\r\n   - \u591a\u63d0\u4f9b\u5546\u652f\u6301\u67b6\u6784\r\n   - \u7edf\u4e00\u7684 API \u8c03\u7528\u63a5\u53e3\r\n   - \u5f02\u6b65\u5904\u7406\u548c\u9519\u8bef\u5904\u7406\r\n   - \u7ed3\u679c\u4f18\u5316\u548c\u683c\u5f0f\u5316\r\n\r\n4. **\u56fe\u7247\u5904\u7406**\r\n   - OCR \u6587\u5b57\u8bc6\u522b\r\n   - \u56fe\u7247\u4fdd\u5b58\u548c\u5f15\u7528\r\n   - \u8def\u5f84\u89c4\u8303\u5316\r\n   - \u5143\u6570\u636e\u63d0\u53d6\r\n\r\n5. **\u5c4f\u5e55\u622a\u56fe\u5904\u7406**\r\n   - \u7cfb\u7edf\u7ea7\u5feb\u6377\u952e\u76d1\u542c\r\n   - \u5c4f\u5e55\u533a\u57df\u9009\u62e9\r\n   - \u56fe\u50cf\u6355\u83b7\u548c\u5904\u7406\r\n   - OCR\u6587\u5b57\u8bc6\u522b\r\n   - \u5e03\u5c40\u5206\u6790\u548c\u91cd\u6784\r\n   - \u5386\u53f2\u8bb0\u5f55\u7ba1\u7406\r\n\r\n### \u524d\u7aef\u5b9e\u73b0\r\n\r\n1. **\u7528\u6237\u754c\u9762**\r\n   - \u54cd\u5e94\u5f0f\u8bbe\u8ba1\r\n   - \u62d6\u653e\u4e0a\u4f20\r\n   - \u5b9e\u65f6\u9884\u89c8\r\n   - \u8fdb\u5ea6\u53cd\u9988\r\n\r\n2. **\u4ea4\u4e92\u529f\u80fd**\r\n   - \u6587\u4ef6\u7ba1\u7406\r\n   - AI \u914d\u7f6e\r\n   - \u683c\u5f0f\u5207\u6362\r\n   - \u590d\u5236\u529f\u80fd\r\n\r\n3. **\u72b6\u6001\u7ba1\u7406**\r\n   - \u6587\u4ef6\u5217\u8868\u7ef4\u62a4\r\n   - \u8f6c\u6362\u72b6\u6001\u8ffd\u8e2a\r\n   - \u9519\u8bef\u5904\u7406\u548c\u663e\u793a\r\n\r\n## \u6ce8\u610f\u4e8b\u9879\r\n\r\n1. API \u5bc6\u94a5\u5b89\u5168\uff1a\r\n   - \u8bf7\u59a5\u5584\u4fdd\u7ba1\u60a8\u7684 API \u5bc6\u94a5\r\n   - \u5efa\u8bae\u4f7f\u7528\u73af\u5883\u53d8\u91cf\u5b58\u50a8\u654f\u611f\u4fe1\u606f\r\n   - \u5728\u751f\u4ea7\u73af\u5883\u4e2d\u4f7f\u7528 HTTPS\r\n\r\n2. \u6587\u4ef6\u9650\u5236\uff1a\r\n   - \u6700\u5927\u6587\u4ef6\u5927\u5c0f\uff1a16MB\r\n   - \u652f\u6301\u7684\u6587\u4ef6\u7c7b\u578b\u89c1\u529f\u80fd\u5217\u8868\r\n   - \u56fe\u7247\u6587\u4ef6\u5fc5\u987b\u542f\u7528 AI \u529f\u80fd\r\n\r\n3. AI \u6a21\u578b\u9009\u62e9\uff1a\r\n   - \u56fe\u7247\u5904\u7406\u9700\u8981\u4f7f\u7528\u652f\u6301 vision \u7684\u6a21\u578b\r\n   - \u97f3\u9891\u5904\u7406\u9700\u8981\u4f7f\u7528\u652f\u6301\u8bed\u97f3\u7684\u6a21\u578b\r\n   - \u6587\u6863\u5904\u7406\u53ef\u4f7f\u7528\u901a\u7528\u8bed\u8a00\u6a21\u578b\r\n\r\n## \u8d21\u732e\u6307\u5357\r\n\r\n\u6b22\u8fce\u63d0\u4ea4 Pull Request \u548c Issue\u3002\u5728\u63d0\u4ea4\u4e4b\u524d\uff0c\u8bf7\u786e\u4fdd\uff1a\r\n\r\n1. \u4ee3\u7801\u7b26\u5408 PEP 8 \u89c4\u8303\r\n2. \u6dfb\u52a0\u4e86\u5fc5\u8981\u7684\u6d4b\u8bd5\r\n3. \u66f4\u65b0\u4e86\u76f8\u5173\u6587\u6863\r\n4. \u63d0\u4f9b\u4e86\u6e05\u6670\u7684\u63d0\u4ea4\u4fe1\u606f\r\n\r\n## \u8bb8\u53ef\u8bc1\r\n\r\n\u672c\u9879\u76ee\u91c7\u7528 MIT \u8bb8\u53ef\u8bc1\u3002\u8be6\u89c1 [LICENSE](LICENSE) \u6587\u4ef6\u3002 \r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "\u4e00\u4e2a\u6587\u6863\u5904\u7406\u548cOCR\u5de5\u5177\u5305\u96c6\u5408",
    "version": "0.1.0",
    "project_urls": {
        "Homepage": "https://github.com/main2snipercc/markitdown-web----"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8e4c83cd0fdce3e127f9ee8069e316bcc6d1ef7ff04400f00e3ce2f6e4ac2ed9",
                "md5": "525e8025a1a25f057d963432e0b067f2",
                "sha256": "e54c6d9ae00fa392db87e2c8513ddf4d9510076e9493dd44325f046ab5976d7d"
            },
            "downloads": -1,
            "filename": "elliot_markitdown-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "525e8025a1a25f057d963432e0b067f2",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 6080,
            "upload_time": "2025-02-04T01:37:27",
            "upload_time_iso_8601": "2025-02-04T01:37:27.199798Z",
            "url": "https://files.pythonhosted.org/packages/8e/4c/83cd0fdce3e127f9ee8069e316bcc6d1ef7ff04400f00e3ce2f6e4ac2ed9/elliot_markitdown-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "146cde887a8d86fb1c662b7c2476ef9c143429dfdcae3f070ffb937c683cfd30",
                "md5": "1f0cb26f34c06367cdc0bd4c10eb008e",
                "sha256": "1b34dc43a6561e294f9f4d955c983bebcef704ee55b25fa1d3d82449779763ea"
            },
            "downloads": -1,
            "filename": "elliot_markitdown-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "1f0cb26f34c06367cdc0bd4c10eb008e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 6563,
            "upload_time": "2025-02-04T01:37:29",
            "upload_time_iso_8601": "2025-02-04T01:37:29.246917Z",
            "url": "https://files.pythonhosted.org/packages/14/6c/de887a8d86fb1c662b7c2476ef9c143429dfdcae3f070ffb937c683cfd30/elliot_markitdown-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-04 01:37:29",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "main2snipercc",
    "github_project": "markitdown-web----",
    "github_not_found": true,
    "lcname": "elliot-markitdown"
}
        
Elapsed time: 1.98425s