mirror of
https://github.com/ikechan8370/chatgpt-plugin.git
synced 2025-12-16 13:27:08 +00:00
48 lines
1.4 KiB
JavaScript
48 lines
1.4 KiB
JavaScript
|
||
/**
|
||
* 示例后处理器。你可以在example下面写一个新的。默认会调用所有此key的处理器
|
||
*/
|
||
export class ChatGPTResponsePostHandler extends plugin {
|
||
constructor () {
|
||
super({
|
||
name: 'chatgpt文本回复后处理器',
|
||
priority: -100,
|
||
namespace: 'chatgpt-plugin',
|
||
handler: [{
|
||
key: 'chatgpt.response.post', // key必须是chatgpt.response.post
|
||
fn: 'postHandler'
|
||
}]
|
||
})
|
||
}
|
||
|
||
async postHandler (e, options, reject) {
|
||
const { content, use, prompt } = options
|
||
// 你可以在这里处理返回的文本,比如使用自定义的语音api来合成语音
|
||
// const audio = customTTS(content)
|
||
// e.reply(segment.record(audio))
|
||
// 返回值会被忽略
|
||
const response = await fetch('https://api.fish.audio/v1/tts', {
|
||
method: 'POST',
|
||
headers: {
|
||
Authorization: 'Bearer 5e614bcc80a34789837fdb0f1269b2c4',
|
||
'Content-Type': 'application/json'
|
||
},
|
||
body: JSON.stringify({
|
||
text: content,
|
||
reference_id: '1aacaeb1b840436391b835fd5513f4c4',
|
||
format: 'mp3',
|
||
latency: 'normal'
|
||
})
|
||
})
|
||
|
||
if (!response.ok) {
|
||
throw new Error(`无法从服务器获取音频数据:${response.statusText}`)
|
||
}
|
||
|
||
const audio = await response.blob()
|
||
// to Buffer
|
||
const buffer = await audio.arrayBuffer()
|
||
e.reply(segment.record(Buffer.from(buffer)))
|
||
// e.reply(segment.record(audio))
|
||
}
|
||
}
|