目录
目录README.md

多模态SDK - 功能强大的任务定义与API生成框架

项目概述

多模态SDK是一个功能强大的Python框架,用于快速定义、部署和管理多模态任务(文本、图像、视频等),并自动生成HTTP API服务。它提供了一种简洁的方式来定义任务输入输出参数,自动处理文件上传和下载,并支持结果持久化存储。

核心功能

1.​任务定义​​:     使用Pydantic模型定义输入输出参数     支持文本、图像、视频等多种数据类型     支持文件上传和下载 ​2.​API自动生成​​:     自动创建HTTP API服务     支持GET/POST端点     自动生成Swagger文档 3.​​结果持久化​​:     自动保存任务结果     结构化存储元数据和文件     支持历史结果查询 ​4.​企业级特性​​:     输入验证     错误处理     健康检查     临时文件管理

输入输出数据类型

支持的数据类型

输入输出数据类型

支持的数据类型

类型 描述 示例 输入支持 输出支持
str 字符串 “Hello World”
int 整数 42
float 浮点数 3.14
bool 布尔值 True
list 列表 [1, 2, 3]
dict 字典 {“key”: “value”}
file 文件路径或文件对象 “/path/to/file.txt”
image 图像数据或路径 “/path/to/image.jpg”
audio 音频数据或路径 “/path/to/audio.mp3”
video 视频数据或路径 “/path/to/video.mp4”
datetime 日期时间 “2023-07-15T12:00:00Z”
json JSON对象 {“name”: “John”, “age”: 30}
array 数值数组 [1.0, 2.0, 3.0]

特殊类型说明

​1.​文件类型​​:     用于文件上传     在输入模型中定义为str类型(文件路径)     在输出模型中可定义为dict类型(包含文件路径和元数据) ​2.​图像类型​​:     特殊文件类型     支持常见图像格式(JPEG, PNG, BMP等)     在输入模型中定义为str类型(文件路径)     在输出模型中可定义为dict类型(包含文件路径和元数据) ​3.​视频类型​​:     特殊文件类型     支持常见视频格式(MP4, AVI, MOV等)     在输入模型中定义为str类型(文件路径)     在输出模型中可定义为dict类型(包含文件路径和元数据) ​4.​音频类型​​:     特殊文件类型     支持常见音频格式(MP3, WAV, FLAC等)     在输入模型中定义为str类型(文件路径)     在输出模型中可定义为dict类型(包含文件路径和元数据)

安装指南

前置要求

    Python 3.7+ ,推荐Python 3.9     pip包管理器

安装步骤

1.​​克隆仓库​​:

git clone https://gitlink.org.cn/fanshuai/multi-modal-sdk.git
cd multi-modal-sdk

​2.​创建虚拟环境(推荐)​​:

# 创建环境
conda create -n multi-modal-sdk python=3.9

# 激活环境
conda activate multi-modal-sdk

​3.​安装依赖​​:

pip install -r requirements.txt

4.安装SDK(开发模式):

pip install -e .

快速开始

文本处理示例
参考示例代码:examples/text_processor.py
图像处理示例
参考示例代码:examples/image_processor.py
视频处理示例
参考示例代码:examples/video_processor.py

API文档

公共端点

端点 描述 示例 输入支持 输出支持
/info 获取任务信息 GET /info JSON格式的任务信息
/health 健康检查 GET /health JSON格式的健康状态
/cleanup 清理临时文件 POST /cleanup JSON格式的清理结果
/result/<run_id> 获取任务结果元数据 GET /result/20230715_143045_550e8400 run_id: 任务运行ID JSON格式的结果元数据
/result/<run_id>/file/<filename> 下载结果文件 GET /result/20230715_143045_550e8400/file/processed_image.jpg run_id: 任务运行ID, filename: 文件名 文件下载流

任务端点

端点 描述 示例 输入支持 输出支持
/run 运行任务 POST /run 根据输入模型定义的参数 JSON格式的任务结果或文件下载

项目结构

multi-modal-sdk/
├── multi_modal_sdk/          # SDK核心
│   ├── __init__.py
│   └── core.py               # 核心功能实现
├── examples/                 # 使用示例
│   ├── text_processor.py      # 文本处理示例
│   ├── image_processor.py     # 图像处理示例
│   └── video_processor.py    # 视频处理示例
├── config/                   # 配置目录
│   ├── __init__.py
│   └── settings.py           # 环境变量配置
├── setup.py                   # 打包配置
├── requirements.txt           # 依赖列表
├── README.md                  # 项目文档
├── MANIFEST.in                # 打包清单
└── .env.example               # 环境变量示例文件

存储选项

​​本地存储(默认)​​: 结果存储在本地文件系统 无需额外配置 ​​MinIO存储​​: 配置MinIO环境变量 结果存储在MinIO对象存储中

许可证

本项目采用MIT许可证。详情请查看LICENSE文件。

支持与联系方式

    ​​问题报告​​:https://gitlink.org.cn/fanshuai/multi-modal-sdk/issues     ​作者:樊帅 ​    ​邮箱​​:1141904845@qq.com

邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

©Copyright 2023 CCF 开源发展委员会
Powered by Trustie& IntelliDE 京ICP备13000930号