代码

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}")

用法

1

创建虚拟环境

打开 Terminal 并创建一个 python 虚拟环境。

python3 -m venv .venv
source .venv/bin/activate
2

设置您的 API 密钥

export OPENAI_API_KEY=xxx
export MODELS_LAB_API_KEY=xxx
3

安装库

pip install -U openai agno
4

运行 Agent

python cookbook/agent_concepts/multimodal/generate_music_agent.py