51 lines
1.7 KiB
Python
51 lines
1.7 KiB
Python
|
# importing the requests library
|
||
|
import requests
|
||
|
import json
|
||
|
|
||
|
retCode, userPrompt = dialog.input_dialog('Gpt Snippet','Enter a prompt')
|
||
|
# exit if no input or user hits cancel
|
||
|
if userPrompt == '' or retCode == 1:
|
||
|
exit(0)
|
||
|
|
||
|
# use prompt as comment
|
||
|
cleanOutput = "// " + userPrompt + "\n"
|
||
|
|
||
|
# post to openai
|
||
|
API_Key = "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"
|
||
|
URL = "https://api.openai.com/v1/chat/completions"
|
||
|
prompt = 'Use the following input to create a code snippet. Only output ES6 Javascript no additional details or explanations, only code. No other output, only JS code. Create a clear, concise output with readable camel case variable names. Make sure the code is clear, understandable and maintainable. If its necessary use existing variable names with the output. Use 4 spaces per tab. The input is:'
|
||
|
|
||
|
HEADERS = {
|
||
|
"Content-Type": "application/json",
|
||
|
"Authorization": "Bearer "+API_Key
|
||
|
}
|
||
|
|
||
|
PARAMS = {
|
||
|
"model": "gpt-4",
|
||
|
"messages": [
|
||
|
{
|
||
|
"role": "user",
|
||
|
"content": prompt + userPrompt
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
|
||
|
response = requests.post(URL, data = json.dumps(PARAMS), headers = HEADERS)
|
||
|
data = response.json()
|
||
|
|
||
|
# Clean up chat GPT response
|
||
|
gptResponse = str(data['choices'][0]['message']['content'])
|
||
|
gptResponse = gptResponse.replace("```Javascript","")
|
||
|
gptResponse = gptResponse.replace("```javascript","")
|
||
|
gptResponse = gptResponse.replace("```","")
|
||
|
cleanOutput += gptResponse.strip()
|
||
|
#cleanOutput = cleanOutput.replace(" ","\t")
|
||
|
|
||
|
exitCode, userInput = dialog.info_dialog('Gpt Snippet Review',"Generated: \n\n" + cleanOutput + "\n\npress ESC to cancel")
|
||
|
|
||
|
# Dont paste output if user hit escape
|
||
|
if exitCode == 0:
|
||
|
keyboard.send_keys(cleanOutput)
|
||
|
|
||
|
|