feat: OpenAI: 增加prompt支持

This commit is contained in:
Yuanzhe Liu
2023-03-13 13:26:20 +00:00
parent 849563ed4a
commit d01b716806
2 changed files with 22 additions and 2 deletions

View File

@@ -5,6 +5,11 @@ const configuration = new Configuration({
apiKey: process.env.OPENAI_API_KEY,
});
const openai = new OpenAIApi(configuration);
let prompt = { "role": "system", "content": "You are a helpful assistant." }
async function setprompt(content) {
prompt = { "role": "system", "content": content || "You are a helpful assistant." }
return prompt.content
}
async function completions(prompt) {
const completion = await openai.createCompletion({
@@ -15,7 +20,6 @@ async function completions(prompt) {
}
async function chat(content, messages) {
const prompt = { "role": "system", "content": "You are a helpful assistant." }
if (!messages || messages.length == 0) {
messages = [prompt]
}
@@ -25,7 +29,7 @@ async function chat(content, messages) {
"messages": messages,
});
messages.push(completion.data.choices[0].message);
// console.log(messages)
console.log(messages)
return [completion.data.choices[0].message.content, messages];
}
@@ -41,4 +45,5 @@ async function main() {
module.exports = {
completions,
chat,
setprompt,
}

View File

@@ -92,6 +92,13 @@ module.exports = (TOKEN) => {
bot.sendMessage(msg.chat.id, "已清空对话记录");
});
bot.onText(/\/prompt/, async (msg) => {
const prompt = msg.text.replace("/prompt ", "").replace("/prompt", "");
openai_messages[msg.chat.id] = [];
const res = await openai.setprompt(prompt);
bot.sendMessage(msg.chat.id, `已设置对话提示为:${res}`);
});
// 欢迎页面
bot.onText(/\/start/, (msg) => {
let name = [msg.from.first_name];
@@ -211,6 +218,14 @@ module.exports = (TOKEN) => {
command: "help",
description: "帮助"
},
{
command: "clear",
description: "清空OpenAI聊天记录"
},
{
command: "prompt",
description: "设置OpenAI聊天提示句"
}
];
const helpMsgText = helpMsg.map((item) => `/${item.command} - ${item.description}`)
.join("\n");