const openaiURL ="https://api.openai.com/v1/chat/completions";// can POST to this 3rd party URLconst themodel ="gpt-3.5-turbo";// the OpenAI model we are going to talk to // Default API key and prompt:const staticApiKey ="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";
let apikey = staticApiKey;
let theprompt ="hello";// Default body has margin 0 and padding 0; give it more whitespace:
$('body').css("margin","200px");
$('body').css("padding","20px");
document.write(`<!DOCTYPE html><html><head><title>ColorfulTorus and GPT Interaction</title><script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script><script src="https://code.jquery.com/jquery-3.6.0.min.js"></script></head><body><h1>HelloWorld</h1><div style="width:45vw; background-color:white; border: 1px solid black; margin:20px; padding: 20px;"><h3>Enter a "prompt"</h3><input style="width:40vw;" id="me"><button onclick="sendchat();"class="ab-normbutton">Send</button></div><div style="width:45vw; background-color:#ffffcc; border: 1px solid black; margin:20px; padding: 20px;"><h3>GPT Response</h3><div id="them"></div></div><div id="sceneContainer" style="width: 800px; height: 600px;"></div><script>// Three.js code for setting up the scene and torusconst scene =new THREE.Scene();const camera =new THREE.PerspectiveCamera(75,800/600,0.1,1000);
camera.position.z =10;const renderer =new THREE.WebGLRenderer();
renderer.setSize(800,600);
document.getElementById('sceneContainer').appendChild(renderer.domElement);const geometry =new THREE.TorusGeometry(1,0.4,16,100);const material =new THREE.MeshBasicMaterial({ color:0x00ff00});const torus =new THREE.Mesh(geometry, material);
scene.add(torus);function animate(){
requestAnimationFrame(animate);// Rotate the torus
torus.rotation.x +=0.01;
torus.rotation.y +=0.01;
renderer.render(scene, camera);}
animate();`);function setkey(){
apikey = jQuery("input#apikey").val();
apikey = apikey.trim();
$("#enterkey").html("<b> API key has been set. </b>");}// Enter will also send chat:
document.getElementById('me').onkeydown =function(event){if(event.keyCode ==13) sendchat();};// --- Send my line of text ----------------------------------------------------------------function sendchat(){
theprompt = $("#me").val();// Construct request as JSONvar thedata ={"model": themodel,"temperature":0.7,"messages":[{"role":"user","content": theprompt
}]};// Then as a string representing that JSON:var thedatastring = JSON.stringify(thedata);// HTTP headers must be set up with API key:
$.ajaxSetup({
headers:{"Content-Type":"application/json","Authorization":"Bearer "+ apikey
}});// POST to 3rd party URL:
$.ajax({
type:"POST",
url: openaiURL,
data: thedatastring,
dataType:"json",
success:function(d, rc){
successfn(d, rc);},
error:function(){
errorfn();}});}// Global variable to examine return data in console var a;function successfn(data, rc){
a = data;var answer = a["choices"][0].message.content;
$("#them").html(answer);}function errorfn(){if(apikey =="") $("#them").html("<font color=red><b> Enter API key to be able to chat. </b></font>");else $("#them").html("<font color=red><b> Unknown error. </b></font>");}