A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | AA | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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 | |||||||||||||||||||||||||||
64 | |||||||||||||||||||||||||||
65 | |||||||||||||||||||||||||||
66 | |||||||||||||||||||||||||||
67 | |||||||||||||||||||||||||||
68 | |||||||||||||||||||||||||||
69 | |||||||||||||||||||||||||||
70 | |||||||||||||||||||||||||||
71 | |||||||||||||||||||||||||||
72 | |||||||||||||||||||||||||||
73 | |||||||||||||||||||||||||||
74 | |||||||||||||||||||||||||||
75 | |||||||||||||||||||||||||||
76 | |||||||||||||||||||||||||||
77 | |||||||||||||||||||||||||||
78 | |||||||||||||||||||||||||||
79 | |||||||||||||||||||||||||||
80 | |||||||||||||||||||||||||||
81 | |||||||||||||||||||||||||||
82 | |||||||||||||||||||||||||||
83 | |||||||||||||||||||||||||||
84 | |||||||||||||||||||||||||||
85 | |||||||||||||||||||||||||||
86 | |||||||||||||||||||||||||||
87 | |||||||||||||||||||||||||||
88 | |||||||||||||||||||||||||||
89 | |||||||||||||||||||||||||||
90 | |||||||||||||||||||||||||||
91 | |||||||||||||||||||||||||||
92 | |||||||||||||||||||||||||||
93 | |||||||||||||||||||||||||||
94 | |||||||||||||||||||||||||||
95 | |||||||||||||||||||||||||||
96 | |||||||||||||||||||||||||||
97 | |||||||||||||||||||||||||||
98 | |||||||||||||||||||||||||||
99 | |||||||||||||||||||||||||||
100 |