mindcraft/utils/gpt.js

44 lines
1.1 KiB
JavaScript
Raw Normal View History

2023-08-17 00:00:57 -07:00
import { Configuration, OpenAIApi } from 'openai';
2023-08-15 23:39:02 -07:00
var openAiConfig = null;
if (process.env.OPENAI_ORG_ID) {
openAiConfig = new Configuration({
organization: process.env.OPENAI_ORG_ID,
apiKey: process.env.OPENAI_API_KEY,
});
} else {
openAiConfig = new Configuration({
apiKey: process.env.OPENAI_API_KEY,
});
}
const openai = new OpenAIApi(openAiConfig);
2023-08-17 00:00:57 -07:00
export async function sendRequest(turns, systemMessage, stop_seq) {
2023-08-15 23:39:02 -07:00
2023-08-17 00:00:57 -07:00
let messages = [{'role': 'system', 'content': systemMessage}];
2023-08-15 23:39:02 -07:00
for (let i = 0; i < turns.length; i++) {
if (i % 2 == 0) {
2023-08-17 00:00:57 -07:00
messages.push({'role': 'user', 'content': turns[i]});
2023-08-15 23:39:02 -07:00
} else {
2023-08-17 00:00:57 -07:00
messages.push({'role': 'assistant', 'content': turns[i]});
2023-08-15 23:39:02 -07:00
}
}
let res = null;
try {
let completion = await openai.createChatCompletion({
2023-08-17 00:00:57 -07:00
model: 'gpt-3.5-turbo',
2023-08-15 23:39:02 -07:00
messages: messages,
2023-08-17 00:00:57 -07:00
stop: stop_seq,
2023-08-15 23:39:02 -07:00
});
res = completion.data.choices[0].message.content;
}
catch (err) {
console.log(err);
2023-08-17 00:00:57 -07:00
res = 'I amm sorry, I do not know how to respond to that.';
2023-08-15 23:39:02 -07:00
}
return res;
}