ai-utils.js
Version:
Build AI applications, chatbots, and agents with JavaScript and TypeScript.
63 lines (62 loc) • 2.09 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ChatToOpenAIChatPromptMapping = exports.InstructionToOpenAIChatPromptMapping = void 0;
const validateChatPrompt_js_1 = require("./chat/validateChatPrompt.cjs");
const InstructionToOpenAIChatPromptMapping = () => ({
map: (instruction) => {
const messages = [];
if (instruction.system != null) {
messages.push({
role: "system",
content: instruction.system,
});
}
messages.push({
role: "user",
content: instruction.instruction,
});
return messages;
},
stopTokens: [],
});
exports.InstructionToOpenAIChatPromptMapping = InstructionToOpenAIChatPromptMapping;
const ChatToOpenAIChatPromptMapping = () => ({
map: (chatPrompt) => {
(0, validateChatPrompt_js_1.validateChatPrompt)(chatPrompt);
const messages = [];
for (let i = 0; i < chatPrompt.length; i++) {
const message = chatPrompt[i];
// system message:
if (i === 0 &&
"system" in message &&
typeof message.system === "string") {
messages.push({
role: "system",
content: message.system,
});
continue;
}
// user message
if ("user" in message) {
messages.push({
role: "user",
content: message.user,
});
continue;
}
// ai message:
if ("ai" in message) {
messages.push({
role: "assistant",
content: message.ai,
});
continue;
}
// unsupported message:
throw new Error(`Unsupported message: ${JSON.stringify(message)}`);
}
return messages;
},
stopTokens: [],
});
exports.ChatToOpenAIChatPromptMapping = ChatToOpenAIChatPromptMapping;