使用说明
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
安装说明
-
克隆存储库:
git clone <repository-url> cd fastapi-content-pipeline -
创建虚拟环境:
python -m venv venv -
激活虚拟环境:
- 在Windows上:
venv\Scripts\activate - 在macOS/Linux上:
source venv/bin/activate
- 在Windows上:
-
安装依赖项:
pip install -r requirements.txt -
运行应用程序:
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设置
-
构建并启动容器:
docker compose up --build这将安装所有依赖项,包括Python 3.10、FFmpeg、Manim CLI和视频渲染所需的库。
-
体积:
./assets和./scenes_output被挂载用于输入/输出文件。
-
环境变量:
- 创建一个
.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文件。