import os
from uuid import uuid4
import requests
from agno.agent import Agent, RunResponse
from agno.models.openai import OpenAIChat
from agno.tools.models_labs import FileType, ModelsLabTools
from agno.utils.log import logger
agent = Agent(
name="ModelsLab Music Agent",
agent_id="ml_music_agent",
model=OpenAIChat(id="gpt-4o"),
show_tool_calls=True,
tools=[ModelsLabTools(wait_for_completion=True, file_type=FileType.MP3)],
description="你是一个可以使用 ModelsLabs API 生成音乐的 AI 代理。",
instructions=[
"生成音乐时,请使用 `generate_media` 工具,并提供详细的提示,指定:",
"- 音乐的流派和风格(例如,古典、爵士、电子)",
"- 要包含的乐器和声音",
"- 节奏、情绪和情感特质",
"- 结构(前奏、主歌、副歌、桥段等)",
"创建丰富、描述性的提示,以捕捉所需的音乐元素。",
"专注于生成高质量、完整的器乐作品。",
],
markdown=True,
debug_mode=True,
)
music: RunResponse = agent.run("生成一段 30 秒的古典音乐")
save_dir = "audio_generations"
if music.audio is not None and len(music.audio) > 0:
url = music.audio[0].url
response = requests.get(url)
os.makedirs(save_dir, exist_ok=True)
filename = f"{save_dir}/sample_music{uuid4()}.wav"
with open(filename, "wb") as f:
f.write(response.content)
logger.info(f"音乐已保存到 {filename}")
创建虚拟环境
打开 Terminal
并创建一个 python 虚拟环境。
python3 -m venv .venv
source .venv/bin/activate
设置您的 API 密钥
export OPENAI_API_KEY=xxx
export MODELS_LAB_API_KEY=xxx
安装库
pip install -U openai agno
运行 Agent
python cookbook/agent_concepts/multimodal/generate_music_agent.py