基于 RapidOCR 的 OCR API 服务器,支持并发控制。
- 基于 FastAPI 的高性能 API 服务
- 支持多种图片输入方式:文件上传、Base64、URL
- 内置并发控制(默认最大 2 个并发请求)
- 自动生成 OpenAPI 文档
- Docker 支持
# 使用 uv
uv sync
# 或使用 pip
pip install -e .# 使用 uv
uv run python -m rapidocr_api.main
# 或使用 uvicorn
uvicorn rapidocr_api.main:app --host 0.0.0.0 --port 8000服务启动后访问 http://localhost:8000/docs 查看 API 文档。
# 构建镜像
docker build -t rapidocr-api .
# 运行容器
docker run -d -p 8000:8000 rapidocr-api
# 或使用 docker-compose
docker-compose up -d| 方法 | 路径 | 描述 |
|---|---|---|
| GET | /health |
健康检查 |
| GET | /api/v1/ocr/status |
服务状态 |
| POST | /api/v1/ocr/file |
文件上传 OCR |
| POST | /api/v1/ocr/base64 |
Base64 图片 OCR |
| POST | /api/v1/ocr/url |
URL 图片 OCR |
# 健康检查
curl http://localhost:8000/health
# 文件上传 OCR
curl -X POST http://localhost:8000/api/v1/ocr/file -F "file=@image.png"
# Base64 OCR
curl -X POST http://localhost:8000/api/v1/ocr/base64 \
-H "Content-Type: application/json" \
-d '{"image": "base64编码的图片"}'
# URL OCR
curl -X POST http://localhost:8000/api/v1/ocr/url \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/image.png"}'{
"success": true,
"data": {
"text": "识别的文本内容",
"lines": [
{
"text": "行文本",
"confidence": 0.95,
"box": [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]
}
],
"processing_time_ms": 150
}
}通过环境变量配置(前缀 OCR_):
| 变量 | 默认值 | 描述 |
|---|---|---|
OCR_HOST |
0.0.0.0 |
监听地址 |
OCR_PORT |
8000 |
监听端口 |
OCR_MAX_CONCURRENCY |
2 |
最大并发数 |
OCR_DEBUG |
false |
调试模式 |
- FastAPI - Web 框架
- RapidOCR - OCR 引擎
- Pydantic - 数据验证
- uvicorn - ASGI 服务器
MIT