UNPKG

@ovotech/genesys-web-messaging-tester-cli

Version:
64 lines (63 loc) 2.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createChatCompletionClient = void 0; const openai_1 = require("openai"); function createChatCompletionClient({ model = 'gpt-3.5-turbo', temperature }, apiKey, maxRetries = 5) { const chatCompletion = new openai_1.OpenAI({ apiKey, maxRetries }).chat.completions; return { getProviderName() { return 'ChatGPT'; }, async preflightCheck() { try { await chatCompletion.create({ model, n: 1, // Number of choices temperature: 0, messages: [ { role: 'system', content: 'You help people with math problems', }, { role: 'user', content: 'What is 1+1?', }, ], }); return { ok: true }; } catch (error) { return { ok: false, reasonForError: error instanceof Error ? error.message : String(error), }; } }, async predict(context, conversationUtterances) { const messages = [ { role: 'system', content: context, }, ...conversationUtterances.map((u) => ({ role: u.role === 'bot' ? 'user' : 'assistant', content: u.content, })), ]; const { choices } = await chatCompletion.create({ model, n: 1, // Number of choices temperature, messages, }); if (choices[0]?.message?.content) { return { role: 'customer', content: choices[0].message.content }; } else { return null; } }, }; } exports.createChatCompletionClient = createChatCompletionClient;