1 | A função =GPT(prompt, val, Temp, Tokens) | |
---|---|---|
2 | prompt: A string com a pergunta. [Obrigatório] | |
3 | val: A parte da pergunta com o valor de referência. [Opcional] | |
4 | Temp: Ajuste da temperatura entre 0 e 2. (Por omissão: 0.7) [Opcional] | |
5 | Tokens: Máximo de tokens permitido. (Por omissão: 700) [Opcional] | |
6 | ||
7 | O código explicado | |
8 | //Colocar aqui a sua chave API, entre " " | |
9 | const apiKey = "a minha chave API secreta"; | |
10 | ||
11 | //Valor de tokens se não for especificado | |
12 | const Tokens = 700; | |
13 | // Temperature inicial. Determina a aleatoriedade do resultado. | |
14 | const Temp = 0.7; | |
15 | ||
16 | // Cria o menu em cima | |
17 | const onOpen = () => { | |
18 | const ui = SpreadsheetApp.getUi(); | |
19 | ui.createMenu("GPT") | |
20 | .addItem("Lock results as text", "Lock") | |
21 | .addToUi(); | |
22 | }; | |
23 | ||
24 | // Guarda as formulas como texto ASCII | |
25 | function Lock() { | |
26 | var ss = SpreadsheetApp.getActiveSheet() | |
27 | var data = ss.getDataRange().getValues() | |
28 | ss.getRange(1, 1, data.length, data[0].length).setValues(data) | |
29 | } | |
30 | ||
31 | // Gera o texto baseado na entrada do utilizador | |
32 | function GPT(prompt, val, Temp, Tokens) { | |
33 | var ss = SpreadsheetApp.getActiveSheet() | |
34 | var data = { | |
35 | "messages": [ | |
36 | {"role": "user", "content": prompt + val}, | |
37 | ], | |
38 | "model": "gpt-3.5-turbo", | |
39 | "temperature": Temp, | |
40 | "max_tokens": Tokens, | |
41 | }; | |
42 | var options = { | |
43 | method' : 'post', | |
44 | contentType': 'application/json', | |
45 | payload' : JSON.stringify(data), | |
46 | headers': { | |
47 | Authorization: 'Bearer ' + apiKey, | |
48 | }, | |
49 | }; | |
50 | ||
51 | // Envia o pedido API para o ChatGPT | |
52 | var response = UrlFetchApp.fetch( | |
53 | https://api.openai.com/v1/chat/completions', | |
54 | options | |
55 | ); | |
56 | Logger.log(response.getContentText()); | |
57 | ||
58 | // Analisa a resposta para extrair o texto gerado | |
59 | var result = JSON.parse(response.getContentText())['choices'][0]['message']['content']; | |
60 | Logger.log(result); | |
61 | return result; | |
62 | } | |
63 |