动画生成系统

一个智能动画生成系统,通过自然语言描述转换为使用Manim的数学动画,包含Streamlit网络界面和FastMCP服务器渲染功能。

  • by kavsrd13
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 kavsrd13/ManimMCPServer

使用说明

🎬 动画生成器

一个智能动画生成系统,使用Manim将自然语言描述转换为数学动画。该系统由Azure OpenAI支持的Streamlit web界面和用于动画渲染的FastMCP服务器组成。

🏗️ 建筑

Streamlit App (Cloud) 
    ↓ (Natural Language)
Azure OpenAI API (Converts to Manim Code)
    ↓ (Manim Code)
FastMCP Server (Renders Animation)
    ↓ (Video)
Streamlit App (Displays Result)

📋 先决条件

  • Python 3.9或更高版本
  • Azure OpenAI API密钥和终结点
  • FastMCP云帐户(用于部署)
  • GitHub帐户(用于代码托管)

🚀 快速入门-本地测试

1.安装依赖项

# Create virtual environment
python -m venv venv
venv\Scripts\activate  # Windows

# Install dependencies
pip install -r requirements-mcp.txt
pip install -r requirements-streamlit.txt

2.配置环境

创建 .env 文件:

AZURE_OPENAI_API_KEY=your_api_key
AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/
AZURE_OPENAI_DEPLOYMENT_NAME=your_deployment_name
AZURE_OPENAI_API_VERSION=2024-12-01-preview
MCP_SERVER_URL=http://localhost:8000

3.本地运行

终端1-MCP服务器:

python mcp_server.py

2号航站楼-Streamlit应用程序:

streamlit run streamlit_app.py

🌐 云部署

部署到FastMCP云

  1. 将代码推送到GitHub:
git push origin main
  1. 转到FastMCP云仪表板:https://cloud.fastmcp.io

  2. 从GitHub存储库创建新部署

  3. 获取部署URL(例如。, https://manim-mcp-server.fastmcp.io)

  4. 更新Streamlit Cloud机密:

MCP_SERVER_URL = https://your-deployment-url.fastmcp.io

将Streamlit应用程序部署到Streamlit云

  1. 将代码推送到GitHub

  2. 首选https://share.streamlit.io

  3. 连接您的存储库

  4. 在部署设置中添加机密:

AZURE_OPENAI_API_KEY = your_key
AZURE_OPENAI_ENDPOINT = your_endpoint
AZURE_OPENAI_DEPLOYMENT_NAME = your_deployment
MCP_SERVER_URL = https://your-mcp-server-url.fastmcp.io

该应用程序将在您的浏览器中打开 http://localhost:8501

🌐 部署

📁 项目结构

MCPproject/
├── streamlit_app.py              # Streamlit UI
├── mcp_server.py                 # MCP Server with FastAPI
├── requirements-mcp.txt          # MCP Server dependencies
├── requirements-streamlit.txt    # Streamlit dependencies
├── mcpconfig.json                # FastMCP configuration
├── .streamlit/
│   └── config.toml              # Streamlit settings
├── .gitignore                    # Git ignore (protects .env)
├── .env                          # Local secrets (not in git)
└── README.md                     # This file

🔑 主要特点

  • 自然语言输入:用简单的英语描述动画
  • AI驱动:使用Azure OpenAI将文本转换为Manim代码
  • 即时渲染:FastMCP服务器快速生成视频
  • 网络界面:简洁的Streamlit UI,便于交互
  • 云就绪:部署在Streamlit Cloud+FastMCP Cloud上

📝 用法示例

  1. 打开Streamlit应用程序
  2. 输入:“创建一个可以变成正方形的圆”
  3. 点击“生成动画”
  4. 查看并下载生成的视频

🔐 安全

  • .env 文件被gitignored(机密从未推送到GitHub)
  • 将Streamlit Cloud机密用于生产
  • 为MCP服务器使用FastMCP Cloud机密

🛠️ 环境变量

# Azure OpenAI
AZURE_OPENAI_API_KEY        # Your API key
AZURE_OPENAI_ENDPOINT       # Your endpoint URL
AZURE_OPENAI_DEPLOYMENT_NAME # Deployment name
AZURE_OPENAI_API_VERSION    # API version (2024-12-01-preview)

# MCP Server
MCP_SERVER_URL              # URL of FastMCP server

📚 文档

  • 马尼姆: https://docs.manim.community/
  • 溪流: https://docs.streamlit.io/
  • FastMCP: https://docs.fastmcp.io/
  • Azure OpenAI: https://learn.microsoft.com/en-us/azure/ai-services/openai/

🚀 部署链接

  • 流光云:https://share.streamlit.io
  • FastMCP云:https://cloud.fastmcp.io
  • github:https://github.com/kavsrd13/ManimMCPServer

📧 支持

对于问题:

  • 检查相应仪表板中的错误日志
  • 查看Manim文档了解动画语法
  • 验证API凭据是否正确

使用Azure OpenAI+FastMCP+Manim+Streamlit构建 🎨