内容处理管道

基于FastAPI构建的模块化内容处理管道,提供灵活可扩展的内容管理和处理架构。

  • by Anuragsingh2340
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 AnuragSinha2/MCP-Server

使用说明

FastAPI内容管道

此项目是使用FastAPI构建的模块化内容管道。它旨在通过不同阶段处理和管理内容,提供灵活且可扩展的架构。

项目结构

fastapi-content-pipeline
├── app
│   ├── main.py                # Entry point of the FastAPI application
│   ├── api
│   │   └── routes.py          # API route definitions
│   ├── core
│   │   └── config.py          # Configuration management
│   ├── pipeline
│   │   ├── __init__.py        # Pipeline package initialization
│   │   ├── stages
│   │   │   ├── __init__.py    # Stages package initialization
│   │   │   └── stage_example.py # Example processing stage
│   │   └── manager.py         # Content pipeline manager
│   ├── models
│   │   └── content.py         # Data models and schemas
│   └── utils
│       └── helpers.py         # Utility functions
├── requirements.txt            # Project dependencies
├── README.md                   # Project documentation
└── .gitignore                  # Files to ignore in version control

安装说明

  1. 克隆存储库:

    git clone <repository-url>
    cd fastapi-content-pipeline
    
  2. 创建虚拟环境:

    python -m venv venv
    
  3. 激活虚拟环境:

    • 在Windows上:
      venv\Scripts\activate
      
    • 在macOS/Linux上:
      source venv/bin/activate
      
  4. 安装依赖项:

    pip install -r requirements.txt
    
  5. 运行应用程序:

    uvicorn app.main:app --reload
    

环境设置

创建一个 .env 项目根目录中的文件具有以下键:

GEMINI_API_KEY=your_gemini_api_key
GOOGLE_API_KEY=your_google_api_key
IMAGEN4_API_KEY=your_imagen4_api_key
IMAGE_SEARCH_CX=your_image_search_cx
VAULT_URL=your_vault_url   # Optional

重要提示:

  • 永远不要承诺你的 .env 文件到版本控制。
  • 切勿在日志或错误消息中打印机密值。

Docker设置

  1. 构建并启动容器:

    docker compose up --build
    

    这将安装所有依赖项,包括Python 3.10、FFmpeg、Manim CLI和视频渲染所需的库。

  2. 体积:

    • ./assets 和 ./scenes_output 被挂载用于输入/输出文件。
  3. 环境变量:

    • 创建一个 .env 项目根目录中的文件具有以下示例值:
      GEMINI_API_KEY=your_gemini_api_key
      GOOGLE_API_KEY=your_google_api_key
      IMAGEN4_API_KEY=your_imagen4_api_key
      IMAGE_SEARCH_CX=your_image_search_cx
      VAULT_URL=your_vault_url   # Optional
      

用法

应用程序运行后,您可以访问API文档,网址为 http://127.0.0.1:8000/docs。这将为您提供一个交互式界面,用于测试应用程序中定义的各种端点。

如何使用 /generate 端点

发送POST请求以生成内容。示例使用 curl:

curl -X POST http://localhost:8000/generate \
     -H "Content-Type: application/json" \
     -d '{"prompt": "Explain gravity to a 5th grader"}'
  • 响应将包括每个场景的图像、音频和视频的输出路径。
  • 最终的组合视频(如果需要)将另存为:
    • ./scenes_output/final_{session_id}.mp4

测试提示

尝试以下生成提示:

  • “向五年级学生解释重力”
  • “牛顿运动定律”
  • “光合作用是什么?”
  • “描述水循环”

输出位置

  • 个人场景视频: ./scenes_output/{session_id}_scene{idx}.mp4
  • 最终组合视频: ./scenes_output/final_{session_id}.mp4

贡献

欢迎投稿!请随时提交拉取请求或为任何增强功能或错误修复打开问题。

许可证

该项目根据MIT许可证获得许可。有关更多详细信息,请参阅LICENSE文件。