Files
sora2api/README.md

8.4 KiB
Raw Blame History

Sora2API

License Python FastAPI Docker

一个功能完整的 OpenAI 兼容 API 服务,为 Sora 提供统一的接口


📋 目录


功能特性

核心功能

  • 🎨 文生图 - 根据文本描述生成图片
  • 🖼️ 图生图 - 基于上传的图片进行创意变换
  • 🎬 文生视频 - 根据文本描述生成视频
  • 🎥 图生视频 - 基于图片生成相关视频
  • 📊 多尺寸支持 - 横屏、竖屏等多种规格

高级特性

  • 🔐 Token 管理 - 支持多 Token 管理和轮询负载均衡
  • 🌐 代理支持 - 支持 HTTP 和 SOCKS5 代理
  • 📝 详细日志 - 完整的请求/响应日志记录
  • 🔄 异步处理 - 高效的异步任务处理
  • 💾 数据持久化 - SQLite 数据库存储
  • 🎯 OpenAI 兼容 - 完全兼容 OpenAI API 格式
  • 🛡️ 安全认证 - API Key 验证和权限管理
  • 📱 Web 管理界面 - 直观的管理后台

可靠性

  • 自动重试 - 智能重试机制
  • 🔒 错误处理 - 完善的错误处理和恢复
  • 📊 性能监控 - Token 使用统计和监控
  • 🚫 速率限制 - 防止滥用的限流机制

🚀 快速开始

前置要求

  • Docker 和 Docker Compose推荐
  • 或 Python 3.8+

方式一Docker 部署(推荐)

标准模式(不使用代理)

# 克隆项目
git clone https://github.com/TheSmallHanCat/sora2api.git
cd sora2api

# 启动服务
docker-compose up -d

# 查看日志
docker-compose logs -f

WARP 模式(使用代理)

# 使用 WARP 代理启动
docker-compose -f docker-compose.warp.yml up -d

# 查看日志
docker-compose -f docker-compose.warp.yml logs -f

方式二:本地部署

# 克隆项目
git clone https://github.com/TheSmallHanCat/sora2api.git
cd sora2api

# 创建虚拟环境
python -m venv venv

# 激活虚拟环境
# Windows
venv\Scripts\activate
# Linux/Mac
source venv/bin/activate

# 安装依赖
pip install -r requirements.txt

# 启动服务
python main.py

首次启动

服务启动后,访问管理后台进行初始化配置:

⚠️ 重要: 首次登录后请立即修改密码!


📖 使用指南

管理后台

访问 http://localhost:8000或你的服务器 IP/域名)

主要功能

  1. Token 管理

    • 添加/删除 Sora Token
    • 查看 Token 状态和使用统计
    • 设置 Token 过期时间
    • 编辑 Token 备注信息
  2. 代理配置

    • 启用/禁用代理
    • 配置代理地址(支持 HTTP 和 SOCKS5
  3. 调试模式

    • 启用详细日志记录
    • 查看 API 请求/响应详情
  4. 系统配置

    • 修改管理员密码
    • 修改 API Key
    • 配置冷却阈值和错误限制

API 调用

基本信息使用OpenAI标准格式

  • 端点: http://localhost:8000/v1/chat/completions
  • 认证: 在请求头中添加 Authorization: Bearer YOUR_API_KEY
  • 默认 API Key: han1234(建议修改)

支持的模型

模型 说明 输入 输出
sora-image 文生图(默认横屏) 文本/图片 图片
sora-image-landscape 文生图(横屏) 文本/图片 图片
sora-image-portrait 文生图(竖屏) 文本/图片 图片
sora-video 文生视频(默认横屏) 文本/图片 视频
sora-video-landscape 文生视频(横屏) 文本/图片 视频
sora-video-portrait 文生视频(竖屏) 文本/图片 视频

请求示例

文生图

curl -X POST "http://localhost:8000/v1/chat/completions" \
  -H "Authorization: Bearer han1234" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sora-image",
    "messages": [
      {
        "role": "user",
        "content": "一只可爱的小猫咪"
      }
    ]
  }'

图生图

curl -X POST "http://localhost:8000/v1/chat/completions" \
  -H "Authorization: Bearer han1234" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sora-image",
    "messages": [
      {
        "role": "user",
        "content": "将这张图片变成油画风格"
      }
    ],
    "image": "base64_encoded_image_data"
  }'

文生视频

curl -X POST "http://localhost:8000/v1/chat/completions" \
  -H "Authorization: Bearer han1234" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sora-video",
    "messages": [
      {
        "role": "user",
        "content": "一只小猫在草地上奔跑"
      }
    ]
  }'

响应示例

{
  "id": "chatcmpl-8p8fk9x",
  "object": "text_completion",
  "created": 1699564800,
  "model": "sora-image",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "<img src=\"https://example.com/image.jpg\" />"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 10,
    "completion_tokens": 0,
    "total_tokens": 10
  }
}

🏗️ 架构设计

系统架构

┌─────────────────────────────────────────┐
│         前端 (Web UI)                    │
│  • Vue3 管理界面                        │
│  • Token 管理                           │
│  • 配置管理                             │
└─────────────────────────────────────────┘
                    ↓
┌─────────────────────────────────────────┐
│         API 层 (FastAPI)                 │
│  • OpenAI 兼容接口                      │
│  • 管理接口                             │
│  • 认证授权                             │
└─────────────────────────────────────────┘
                    ↓
┌─────────────────────────────────────────┐
│         业务层 (Services)                │
│  • Token 管理                           │
│  • 负载均衡                             │
│  • 生成处理                             │
│  • 日志记录                             │
└─────────────────────────────────────────┘
                    ↓
┌─────────────────────────────────────────┐
│         数据层 (SQLite)                  │
│  • Token 存储                           │
│  • 任务记录                             │
│  • 日志存储                             │
└─────────────────────────────────────────┘
                    ↓
┌─────────────────────────────────────────┐
│         Sora API (上游)                  │
│  • 图片生成                             │
│  • 视频生成                             │
└─────────────────────────────────────────┘

📄 许可证

本项目采用 MIT 许可证。详见 LICENSE 文件。


🙏 致谢

感谢所有贡献者和使用者的支持!


📞 联系方式


如果这个项目对你有帮助,请给个 Star