{"id":8859,"date":"2023-07-20T17:14:41","date_gmt":"2023-07-20T08:14:41","guid":{"rendered":"https:\/\/www.auctionpro.co.kr\/?p=8859"},"modified":"2024-10-31T17:09:17","modified_gmt":"2024-10-31T08:09:17","slug":"gpt-api-key","status":"publish","type":"post","link":"https:\/\/www.auctionpro.co.kr\/?p=8859","title":{"rendered":"GPT Api Key"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">Overview :  \uce74\ub4dc\ubc88\ud638\ub97c \ub123\uace0 5$\uc744 \uacb0\uc81c\ud574\uc57c \uc0ac\uc6a9\uac00\ub2a5<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Endpoint : https:\/\/platform.openai.com\/account\/api-keys<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.auctionpro.co.kr\/wp-content\/uploads\/2023\/07\/image-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"509\" src=\"https:\/\/www.auctionpro.co.kr\/wp-content\/uploads\/2023\/07\/image-1-1024x509.png\" alt=\"\" class=\"wp-image-8862\" srcset=\"https:\/\/www.auctionpro.co.kr\/wp-content\/uploads\/2023\/07\/image-1-1024x509.png 1024w, https:\/\/www.auctionpro.co.kr\/wp-content\/uploads\/2023\/07\/image-1-300x149.png 300w, https:\/\/www.auctionpro.co.kr\/wp-content\/uploads\/2023\/07\/image-1-768x382.png 768w, https:\/\/www.auctionpro.co.kr\/wp-content\/uploads\/2023\/07\/image-1-660x328.png 660w, https:\/\/www.auctionpro.co.kr\/wp-content\/uploads\/2023\/07\/image-1.png 1298w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.auctionpro.co.kr\/wp-content\/uploads\/2023\/07\/image-2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"572\" src=\"https:\/\/www.auctionpro.co.kr\/wp-content\/uploads\/2023\/07\/image-2-1024x572.png\" alt=\"\" class=\"wp-image-8864\" srcset=\"https:\/\/www.auctionpro.co.kr\/wp-content\/uploads\/2023\/07\/image-2-1024x572.png 1024w, https:\/\/www.auctionpro.co.kr\/wp-content\/uploads\/2023\/07\/image-2-300x168.png 300w, https:\/\/www.auctionpro.co.kr\/wp-content\/uploads\/2023\/07\/image-2-768x429.png 768w, https:\/\/www.auctionpro.co.kr\/wp-content\/uploads\/2023\/07\/image-2-660x369.png 660w, https:\/\/www.auctionpro.co.kr\/wp-content\/uploads\/2023\/07\/image-2.png 1092w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.auctionpro.co.kr\/wp-content\/uploads\/2023\/07\/image.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"381\" src=\"https:\/\/www.auctionpro.co.kr\/wp-content\/uploads\/2023\/07\/image-1024x381.png\" alt=\"\" class=\"wp-image-8860\" srcset=\"https:\/\/www.auctionpro.co.kr\/wp-content\/uploads\/2023\/07\/image-1024x381.png 1024w, https:\/\/www.auctionpro.co.kr\/wp-content\/uploads\/2023\/07\/image-300x112.png 300w, https:\/\/www.auctionpro.co.kr\/wp-content\/uploads\/2023\/07\/image-768x286.png 768w, https:\/\/www.auctionpro.co.kr\/wp-content\/uploads\/2023\/07\/image-660x246.png 660w, https:\/\/www.auctionpro.co.kr\/wp-content\/uploads\/2023\/07\/image.png 1242w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\ucc38\uc870 : https:\/\/www.codeproject.com\/Articles\/5350454\/Chat-GPT-in-JavaScript<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:xhtml decode:true \">&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n    &lt;title&gt;Chat GPT&lt;\/title&gt;\n    &lt;script src=\"ChatGPT.js?v=14\"&gt;&lt;\/script&gt;\n&lt;\/head&gt;\n&lt;body onload=\"OnLoad()\"&gt;\n\n    &lt;div id=\"idContainer\"&gt;\n        &lt;textarea id=\"txtOutput\" rows=\"10\" style=\"margin-top: 10px; width: 100%;\" placeholder=\"Output\"&gt;&lt;\/textarea&gt;\n\n        &lt;div&gt;\n            &lt;button type=\"button\" onclick=\"Send()\" id=\"btnSend\"&gt;Send&lt;\/button&gt;\n            &lt;label id=\"lblSpeak\"&gt;&lt;input id=\"chkSpeak\" type=\"checkbox\" onclick=\"SpeechToText()\" \/&gt;Listen&lt;\/label&gt;\n            &lt;label id=\"lblMute\"&gt;&lt;input id=\"chkMute\" type=\"checkbox\" onclick=\"Mute(this.checked)\"\/&gt;Mute&lt;\/label&gt;\n\n            &lt;select id=\"selModel\"&gt;\n                &lt;option value=\"text-davinci-003\"&gt;text-davinci-003&lt;\/option&gt;\n                &lt;option value=\"text-davinci-002\"&gt;text-davinci-002&lt;\/option&gt;\n                &lt;option value=\"code-davinci-002\"&gt;code-davinci-002&lt;\/option&gt;\n            &lt;\/select&gt;\n\n            &lt;select id=\"selLang\" onchange=\"ChangeLang(this)\"&gt;\n                &lt;option value=\"en-US\"&gt;English (United States)&lt;\/option&gt;\n                &lt;option value=\"fr-FR\"&gt;French (France)&lt;\/option&gt;\n                &lt;option value=\"ru-RU\"&gt;Russian (Russia)&lt;\/option&gt;\n                &lt;option value=\"pt-BR\"&gt;Portuguese (Brazil)&lt;\/option&gt;\n                &lt;option value=\"es-ES\"&gt;Spanish (Spain)&lt;\/option&gt;\n                &lt;option value=\"de-DE\"&gt;German (Germany)&lt;\/option&gt;\n                &lt;option value=\"it-IT\"&gt;Italian (Italy)&lt;\/option&gt;\n                &lt;option value=\"pl-PL\"&gt;Polish (Poland)&lt;\/option&gt;\n                &lt;option value=\"nl-NL\"&gt;Dutch (Netherlands)&lt;\/option&gt;\n            &lt;\/select&gt;\n\n            &lt;select id=\"selVoices\"&gt;&lt;\/select&gt;\n        &lt;\/div&gt;\n\n        &lt;textarea id=\"txtMsg\" rows=\"5\" wrap=\"soft\" style=\"width: 98%; margin-left: 3px; margin-top: 6px\" placeholder=\"Input Text\"&gt;&lt;\/textarea&gt;\n\n        &lt;div id=\"idText\"&gt;&lt;\/div&gt;\n    &lt;\/div&gt;\n\n&lt;\/body&gt;\n&lt;\/html&gt;\n<\/pre><\/div>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:js decode:true \">var OPENAI_API_KEY = \"&lt;MY_API_KEY&gt;\";\nvar bTextToSpeechSupported = false;\nvar bSpeechInProgress = false;\nvar oSpeechRecognizer = null\nvar oSpeechSynthesisUtterance = null;\nvar oVoices = null;\n\nfunction OnLoad() {\n    if (\"webkitSpeechRecognition\" in window) {\n    } else {\n        \/\/speech to text not supported\n        lblSpeak.style.display = \"none\";\n    }\n\n    if ('speechSynthesis' in window) {\n        bTextToSpeechSupported = true;\n\n        speechSynthesis.onvoiceschanged = function () {\n            oVoices = window.speechSynthesis.getVoices();\n            for (var i = 0; i &lt; oVoices.length; i++) {\n                selVoices[selVoices.length] = new Option(oVoices[i].name, i);\n            }\n        };\n    }\n}\n\nfunction ChangeLang(o) {\n    if (oSpeechRecognizer) {\n        oSpeechRecognizer.lang = selLang.value;\n        \/\/SpeechToText()\n    }\n}\n\nfunction Send() {\n\n    var sQuestion = txtMsg.value;\n    if (sQuestion == \"\") {\n        alert(\"Type in your question!\");\n        txtMsg.focus();\n        return;\n    }\n\n    var oHttp = new XMLHttpRequest();\n    oHttp.open(\"POST\", \"https:\/\/api.openai.com\/v1\/completions\");\n    oHttp.setRequestHeader(\"Accept\", \"application\/json\");\n    oHttp.setRequestHeader(\"Content-Type\", \"application\/json\");\n    oHttp.setRequestHeader(\"Authorization\", \"Bearer \" + OPENAI_API_KEY)\n\n    oHttp.onreadystatechange = function () {\n        if (oHttp.readyState === 4) {\n            \/\/console.log(oHttp.status);\n            var oJson = {}\n            if (txtOutput.value != \"\") txtOutput.value += \"\\n\";\n\n            try {\n                oJson = JSON.parse(oHttp.responseText);\n            } catch (ex) {\n                txtOutput.value += \"Error: \" + ex.message\n            }\n\n            if (oJson.error &amp;&amp; oJson.error.message) {\n                txtOutput.value += \"Error: \" + oJson.error.message;\n            } else if (oJson.choices &amp;&amp; oJson.choices[0].text) {\n                var s = oJson.choices[0].text;\n\n                if (selLang.value != \"en-US\") {\n                    var a = s.split(\"?\\n\");\n                    if (a.length == 2) {\n                        s = a[1];\n                    }\n                }\n\n                if (s == \"\") s = \"No response\";\n                txtOutput.value += \"Chat GPT: \" + s;\n                TextToSpeech(s);\n            }            \n        }\n    };\n\n    var sModel = selModel.value;\/\/ \"text-davinci-003\";\n    var iMaxTokens = 2048;\n    var sUserId = \"1\";\n    var dTemperature = 0.5;    \n\n    var data = {\n        model: sModel,\n        prompt: sQuestion,\n        max_tokens: iMaxTokens,\n        user: sUserId,\n        temperature:  dTemperature,\n        frequency_penalty: 0.0, \/\/Number between -2.0 and 2.0  Positive value decrease the model's likelihood to repeat the same line verbatim.\n        presence_penalty: 0.0,  \/\/Number between -2.0 and 2.0. Positive values increase the model's likelihood to talk about new topics.\n        stop: [\"#\", \";\"] \/\/Up to 4 sequences where the API will stop generating further tokens. The returned text will not contain the stop sequence.\n    }\n\n    oHttp.send(JSON.stringify(data));\n\n    if (txtOutput.value != \"\") txtOutput.value += \"\\n\";\n    txtOutput.value += \"Me: \" + sQuestion;\n    txtMsg.value = \"\";\n}\n\nfunction TextToSpeech(s) {\n    if (bTextToSpeechSupported == false) return;\n    if (chkMute.checked) return;\n\n    oSpeechSynthesisUtterance = new SpeechSynthesisUtterance();\n\n    if (oVoices) {\n        var sVoice = selVoices.value;\n        if (sVoice != \"\") {\n            oSpeechSynthesisUtterance.voice = oVoices[parseInt(sVoice)];\n        }        \n    }    \n\n    oSpeechSynthesisUtterance.onend = function () {\n        \/\/finished talking - can now listen\n        if (oSpeechRecognizer &amp;&amp; chkSpeak.checked) {\n            oSpeechRecognizer.start();\n        }\n    }\n\n    if (oSpeechRecognizer &amp;&amp; chkSpeak.checked) {\n        \/\/do not listen to yourself when talking\n        oSpeechRecognizer.stop();\n    }\n\n    oSpeechSynthesisUtterance.lang = selLang.value;\n    oSpeechSynthesisUtterance.text = s;\n    \/\/Uncaught (in promise) Error: A listener indicated an asynchronous response by returning true, but the message channel closed \n    window.speechSynthesis.speak(oSpeechSynthesisUtterance);\n}\n\nfunction Mute(b) {\n    if (b) {\n        selVoices.style.display = \"none\";\n    } else {\n        selVoices.style.display = \"\";\n    }\n}\n\nfunction SpeechToText() {\n\n    if (oSpeechRecognizer) {\n\n        if (chkSpeak.checked) {\n            oSpeechRecognizer.start();\n        } else {\n            oSpeechRecognizer.stop();\n        }\n\n        return;\n    }    \n\n    oSpeechRecognizer = new webkitSpeechRecognition();\n    oSpeechRecognizer.continuous = true;\n    oSpeechRecognizer.interimResults = true;\n    oSpeechRecognizer.lang = selLang.value;\n    oSpeechRecognizer.start();\n\n    oSpeechRecognizer.onresult = function (event) {\n        var interimTranscripts = \"\";\n        for (var i = event.resultIndex; i &lt; event.results.length; i++) {\n            var transcript = event.results[i][0].transcript;\n\n            if (event.results[i].isFinal) {\n                txtMsg.value = transcript;\n                Send();\n            } else {\n                transcript.replace(\"\\n\", \"&lt;br&gt;\");\n                interimTranscripts += transcript;\n            }\n\n            var oDiv = document.getElementById(\"idText\");\n            oDiv.innerHTML = '&lt;span style=\"color: #999;\"&gt;' + interimTranscripts + '&lt;\/span&gt;';\n        }\n    };\n\n    oSpeechRecognizer.onerror = function (event) {\n\n    };\n}<\/pre><\/div>\n","protected":false},"excerpt":{"rendered":"<div class=\"mh-excerpt\"><p>Overview : \uce74\ub4dc\ubc88\ud638\ub97c \ub123\uace0 5$\uc744 \uacb0\uc81c\ud574\uc57c \uc0ac\uc6a9\uac00\ub2a5 \ucc38\uc870 : https:\/\/www.codeproject.com\/Articles\/5350454\/Chat-GPT-in-JavaScript<\/p>\n<\/div>","protected":false},"author":6,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[96],"tags":[],"class_list":["post-8859","post","type-post","status-publish","format-standard","hentry","category-openapi"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.auctionpro.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/8859","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.auctionpro.co.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.auctionpro.co.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.auctionpro.co.kr\/index.php?rest_route=\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.auctionpro.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=8859"}],"version-history":[{"count":0,"href":"https:\/\/www.auctionpro.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/8859\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.auctionpro.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8859"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.auctionpro.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=8859"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.auctionpro.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=8859"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}