Skip to content

Instantly share code, notes, and snippets.

@bplunkert
Created December 20, 2022 05:51
Show Gist options
  • Save bplunkert/d5b0f78f0fc94dd53aa231d084dfc7f7 to your computer and use it in GitHub Desktop.
Save bplunkert/d5b0f78f0fc94dd53aa231d084dfc7f7 to your computer and use it in GitHub Desktop.
A Javascript GPT3 interface, written by GPT3
<html>
<head>
<title>OpenAI API Test</title>
</head>
<body>
<form id="form">
API Key: <input type="text" id="apiKey"><br>
Model:
<select id="model">
<option value="text-davinci-003">text-davinci-003</option>
<option value="code-davinci-002">code-davinci-002</option>
</select><br>
Prompt: <input type="text" id="prompt"><br>
Temperature:
<input type="range" min="0.0" max="1.0" step="0.01" id="temperature"><br>
<span id="temperatureLabel"></span>
Max Tokens:
<input type="range" min="0" max="2000" step="1" id="maxTokens"><br>
<span id="maxTokensLabel"></span>
<input type="submit" value="Submit">
</form>
<br>
<textarea id="output" rows="10" cols="50"></textarea>
<div id="spinner" style="display:none">Loading...</div>
<script>
const form = document.getElementById('form');
form.addEventListener('submit', (event) => {
event.preventDefault();
const apiKey = document.getElementById('apiKey').value;
const model = document.getElementById('model').value;
const prompt = document.getElementById('prompt').value;
const temperature = parseInt(document.getElementById('temperature').value);
const maxTokens = parseInt(document.getElementById('maxTokens').value);
const data = {
model: model,
prompt: prompt,
max_tokens: maxTokens,
temperature: temperature
};
// Show spinner
document.getElementById('spinner').style.display = 'block';
const xhr = new XMLHttpRequest();
xhr.open('POST', 'https://api.openai.com/v1/completions');
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.setRequestHeader('Authorization', `Bearer ${apiKey}`);
xhr.onload = () => {
if (xhr.status === 200) {
const response = JSON.parse(xhr.responseText);
document.getElementById('output').value = response.choices[0].text;
} else {
console.error('Error:', xhr.statusText);
}
// Hide spinner
document.getElementById('spinner').style.display = 'none';
};
xhr.send(JSON.stringify(data));
});
// Update temperature and max tokens labels when values change
const temperatureInput = document.getElementById('temperature');
temperatureInput.addEventListener('input', () => {
document.getElementById('temperatureLabel').textContent = `Temperature: ${temperatureInput.value}`;
});
const maxTokensInput = document.getElementById('maxTokens');
maxTokensInput.addEventListener('input', () => {
document.getElementById('maxTokensLabel').textContent = `Max Tokens: ${maxTokensInput.value}`;
});
// Set initial values for temperature and max tokens labels
document.getElementById('temperatureLabel').textContent = `Temperature: ${temperatureInput.value}`;
document.getElementById('maxTokensLabel').textContent = `Max Tokens: ${maxTokensInput.value}`;
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment