aboutsummaryrefslogtreecommitdiff
path: root/src/client/apis/gpt/GPT.ts
blob: 9403e4d3a5206b806b83f8653a49560892f5f7da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import { GPTCallOpts, GPTCallType, callTypeMap, openai } from './setup';

/**
 * Calls the OpenAI API.
 *
 * @param inputText Text to process
 * @returns AI Output
 */
const gptAPICall = async (inputText: string, callType: GPTCallType) => {
    if (callType === GPTCallType.SUMMARY) inputText += '.';
    const opts: GPTCallOpts = callTypeMap[callType];
    try {
        const response = await openai.createCompletion({
            model: opts.model,
            max_tokens: opts.maxTokens,
            temperature: opts.temp,
            prompt: `${opts.prompt}${inputText}`,
        });
        return response.data.choices[0].text;
    } catch (err) {
        console.log(err);
        return 'Error connecting with API.';
    }
};

const gptImageCall = async (prompt: string, n?: number) => {
    try {
        const response = await openai.createImage({
            prompt: prompt,
            n: n ?? 1,
            size: '1024x1024',
        });
        return response.data.data.map(data => data.url);
        // return response.data.data[0].url;
    } catch (err) {
        console.error(err);
        return;
    }
};

export { gptAPICall, gptImageCall, GPTCallType };