docs: Add documentation for the new API

Add documentation for the new API, change the API response to English.
This commit is contained in:
blueeon
2024-04-04 13:38:45 +08:00
parent 7ca5d13c5d
commit 7e34a3f5d9
6 changed files with 72 additions and 21 deletions
+2
View File
@@ -20,6 +20,8 @@ export default function Docs() {
\`\`\`bash
- \`/api/generate\`: Generate music
- \`/v1/chat/completions\`: Generate music - Call the generate API in a format
that works with OpenAIs API.
- \`/api/custom_generate\`: Generate music (Custom Mode, support setting lyrics,
music style, title, etc.)
- \`/api/generate_lyrics\`: Generate lyrics based on prompt
+61 -19
View File
@@ -11,32 +11,22 @@
}
],
"paths": {
"/api/custom_generate": {
"/api/generate": {
"post": {
"summary": "Generate Audio - Custom Mode",
"description": "The custom mode enables users to provide additional details about the music, such as music genre, lyrics, and more.\n\n 2 audio files will be generated for each request, consuming a total of 10 credits. \n\n `wait_audio` can be set to API mode:\n\n\u2022 By default, it is set to false, which indicates the background mode. It will only return audio task information, and you will need to call the get API to retrieve detailed audio information.\n\n\u2022 If set to true, it simulates synchronous mode. The API will wait for a maximum of 100s until the audio is generated, and will directly return the audio link and other information. Recommend using in GPTs and other agents.",
"summary": "Generate audio based on Prompt.",
"description": "It will automatically fill in the lyrics.\n\n2 audio files will be generated for each request, consuming a total of 10 credits.\n\n`wait_audio` can be set to API mode:\n\n\u2022 By default, it is set to `false`, which indicates the background mode. It will only return audio task information, and you will need to call the get API to retrieve detailed audio information.\n\n\u2022 If set to `true`, it simulates synchronous mode. The API will wait for a maximum of 100s until the audio is generated, and will directly return the audio link and other information. Recommend using in GPTs and other agents.",
"tags": ["default"],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"required": ["prompt", "tags", "title"],
"required": ["prompt", "make_instrumental", "wait_audio"],
"properties": {
"prompt": {
"type": "string",
"description": "Detailed prompt, including information such as music lyrics.",
"example": "[Verse 1]\nCruel flames of war engulf this land\nBattlefields filled with death and dread\nInnocent souls in darkness, they rest\nMy heart trembles in this silent test\n\n[Verse 2]\nPeople weep for loved ones lost\nBattered bodies bear the cost\nSeeking peace and hope once known\nOur grief transforms to hearts of stone\n\n[Chorus]\nSilent battlegrounds, no birds' song\nShadows of war, where we don't belong\nMay flowers of peace bloom in this place\nLet's guard this precious dream with grace\n\n[Bridge]\nThrough the ashes, we will rise\nHand in hand, towards peaceful skies\nNo more sorrow, no more pain\nTogether, we'll break these chains\n\n[Chorus]\nSilent battlegrounds, no birds' song\nShadows of war, where we don't belong\nMay flowers of peace bloom in this place\nLet's guard this precious dream with grace\n\n[Outro]\nIn unity, our strength will grow\nA brighter future, we'll soon know\nFrom the ruins, hope will spring\nA new dawn, we'll together bring"
},
"tags": {
"type": "string",
"description": "Music genre",
"example": "pop metal male melancholic"
},
"title": {
"type": "string",
"description": "Music title",
"example": "Silent Battlefield"
"description": "Prompt",
"example": "A popular heavy metal song about war, sung by a deep-voiced male singer, slowly and melodiously. The lyrics depict the sorrow of people after the war."
},
"make_instrumental": {
"type": "boolean",
@@ -79,10 +69,10 @@
}
}
},
"/api/generate": {
"/v1/chat/completions": {
"post": {
"summary": "Generate audio based on Prompt.",
"description": "It will automatically fill in the lyrics.\n\n2 audio files will be generated for each request, consuming a total of 10 credits.\n\n`wait_audio` can be set to API mode:\n\n\u2022 By default, it is set to `false`, which indicates the background mode. It will only return audio task information, and you will need to call the get API to retrieve detailed audio information.\n\n\u2022 If set to `true`, it simulates synchronous mode. The API will wait for a maximum of 100s until the audio is generated, and will directly return the audio link and other information. Recommend using in GPTs and other agents.",
"summary": "Generate audio based on Prompt - OpenAI API format compatibility.",
"description": "Convert the `/api/generate` API to be compatible with the OpenAI `/v1/chat/completions` API format. \n\nGenerally used in OpenAI compatible clients.",
"tags": ["default"],
"requestBody": {
"content": {
@@ -95,6 +85,58 @@
"type": "string",
"description": "Prompt",
"example": "A popular heavy metal song about war, sung by a deep-voiced male singer, slowly and melodiously. The lyrics depict the sorrow of people after the war."
}
}
}
}
}
},
"responses": {
"200": {
"description": "success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"type": "string",
"description": "Text description for music, with details like title, album cover, lyrics, and more."
}
}
}
}
}
}
}
}
},
"/api/custom_generate": {
"post": {
"summary": "Generate Audio - Custom Mode",
"description": "The custom mode enables users to provide additional details about the music, such as music genre, lyrics, and more.\n\n 2 audio files will be generated for each request, consuming a total of 10 credits. \n\n `wait_audio` can be set to API mode:\n\n\u2022 By default, it is set to false, which indicates the background mode. It will only return audio task information, and you will need to call the get API to retrieve detailed audio information.\n\n\u2022 If set to true, it simulates synchronous mode. The API will wait for a maximum of 100s until the audio is generated, and will directly return the audio link and other information. Recommend using in GPTs and other agents.",
"tags": ["default"],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"required": ["prompt", "tags", "title"],
"properties": {
"prompt": {
"type": "string",
"description": "Detailed prompt, including information such as music lyrics.",
"example": "[Verse 1]\nCruel flames of war engulf this land\nBattlefields filled with death and dread\nInnocent souls in darkness, they rest\nMy heart trembles in this silent test\n\n[Verse 2]\nPeople weep for loved ones lost\nBattered bodies bear the cost\nSeeking peace and hope once known\nOur grief transforms to hearts of stone\n\n[Chorus]\nSilent battlegrounds, no birds' song\nShadows of war, where we don't belong\nMay flowers of peace bloom in this place\nLet's guard this precious dream with grace\n\n[Bridge]\nThrough the ashes, we will rise\nHand in hand, towards peaceful skies\nNo more sorrow, no more pain\nTogether, we'll break these chains\n\n[Chorus]\nSilent battlegrounds, no birds' song\nShadows of war, where we don't belong\nMay flowers of peace bloom in this place\nLet's guard this precious dream with grace\n\n[Outro]\nIn unity, our strength will grow\nA brighter future, we'll soon know\nFrom the ruins, hope will spring\nA new dawn, we'll together bring"
},
"tags": {
"type": "string",
"description": "Music genre",
"example": "pop metal male melancholic"
},
"title": {
"type": "string",
"description": "Music title",
"example": "Silent Battlefield"
},
"make_instrumental": {
"type": "boolean",
+3
View File
@@ -18,6 +18,7 @@ We update quickly, please star us on Github: [github.com/gcui-art/suno-api](htt
## 🌟 Features
- Perfectly implements the creation API from \`app.suno.ai\`
- Compatible with the format of OpenAIs \`/v1/chat/completions\` API.
- Automatically keep the account active.
- Supports \`Custom Mode\`
- One-click deployment to Vercel
@@ -96,6 +97,8 @@ Suno API currently mainly implements the following APIs:
\`\`\`bash
- \`/api/generate\`: Generate music
- \`/v1/chat/completions\`: Generate music - Call the generate API in a format
that works with OpenAIs API.
- \`/api/custom_generate\`: Generate music (Custom Mode, support setting lyrics,
music style, title, etc.)
- \`/api/generate_lyrics\`: Generate lyrics based on prompt
+2 -2
View File
@@ -36,7 +36,7 @@ export async function POST(req: NextRequest) {
const audioInfo = await (await sunoApi).generate(userMessage.content, true, true);
const audio = audioInfo[0]
const data = `## 歌曲名称:${audio.title}\n![歌曲封面](${audio.image_url})\n### 歌词:\n${audio.lyric}\n### 听歌链接: ${audio.audio_url}`
const data = `## Song Title: ${audio.title}\n![Song Cover](${audio.image_url})\n### Lyrics:\n${audio.lyric}\n### Listen to the song: ${audio.audio_url}`
return new NextResponse(data, {
status: 200,
@@ -47,7 +47,7 @@ export async function POST(req: NextRequest) {
}
});
} catch (error: any) {
console.error('Error generating custom audio:', JSON.stringify(error.response.data));
console.error('Error generating audio:', JSON.stringify(error.response.data));
return new NextResponse(JSON.stringify({ error: 'Internal server error: ' + JSON.stringify(error.response.data.detail) }), {
status: 500,
headers: {