OpenAI聊天GPT API:提取数据时出现CORS策略错误

ve7v8dk2  于 2023-03-24  发布在  其他
关注(0)|答案(1)|浏览(275)

我正在尝试编写一个简单的JavaScript脚本,它使用ChatGPT API来提出问题并获得响应。
但是,我收到以下错误消息:
“CORS策略阻止了从源”https://wordpress-..... www.example.com“获取”https://api.chatgpt.com/answer?question = How%20are%20you?& api_key = sk-U3 BPK...“的访问权限cloudwaysapps.com:请求的资源上不存在“Access-Control-Allow-Origin”标头。如果不透明响应满足您的需要,请将请求的模式设置为“no-cors”以在禁用CORS的情况下提取资源。”
我已经在我的托管环境中启用了CORS标头服务器端。但是错误仍然存在。
此问题的原因是什么?如何解决此问题?
下面是我的代码:

<html>
<head>
  <script>
    function askQuestion() {
      var question = document.getElementById("questionInput").value;
      var apiKey = document.getElementById("apiKey").value;
      // access chatgpt's API and pass in the question and API key as parameters
      fetch("https://api.chatgpt.com/answer?question=" + question + "&api_key=" + apiKey)
        .then(response => {
          if (!response.ok) {
            throw new Error("Failed to fetch answer from API");
          }
          return response.json();
        })
        .then(data => {
          // get the answer from the API response and display it in the textbox
          document.getElementById("answerBox").value = data.answer;
        })
        .catch(error => {
          console.error("Error fetching answer from API: ", error);
        });
    }

    function askFollowUpQuestion() {
      var followUpQuestion = document.getElementById("followUpQuestionInput").value;
      var apiKey = document.getElementById("apiKey").value;
      // access chatgpt's API and pass in the follow-up question and API key as parameters
      fetch("https://api.chatgpt.com/answer?question=" + followUpQuestion + "&api_key=" + apiKey)
        .then(response => {
          if (!response.ok) {
            throw new Error("Failed to fetch answer from API");
          }
          return response.json();
        })
        .then(data => {
          // get the answer from the API response and display it in the textbox
          document.getElementById("followUpAnswerBox").value = data.answer;
        })
        .catch(error => {
          console.error("Error fetching answer from API: ", error);
        });
    }
  </script>
</head>
<body>
  <input type="text" id="questionInput" placeholder="Enter your question here"></input>
  <br>
  <input type="text" id="apiKey" placeholder="Enter your API key"></input>
  <br>
  <button onclick="askQuestion()">Ask</button>
  <br>
  <textarea id="answerBox" readonly></textarea>
  <br>
  <input type="text" id="followUpQuestionInput" placeholder="Enter your follow-up question here"></input>
  <br>
  <button onclick="askFollowUpQuestion()">Ask Follow-up</button>
  <br>
  <textarea id="followUpAnswerBox" readonly></textarea>
</body>
</html>
vq8itlhq

vq8itlhq1#

更新日期:2023年3月1日

ChatGPT API现已可用

如官方OpenAI blog中所述:

ChatGPT和Whisper模型现在可在我们的API上使用,让开发人员可以使用最先进的语言(不仅仅是聊天!)和语音到文本功能。通过一系列系统范围的优化,自去年12月以来,我们已经实现了ChatGPT成本降低90%;我们现在将这些节省的成本转嫁给API用户。开发人员现在可以在API中使用我们的开源Whisper large-v2模型,速度更快,成本效益更高。ChatGPT API用户可以期待持续的模型改进,并可以选择专用容量来更深入地控制模型。我们还密切听取了开发人员的反馈,并完善了我们的API服务条款,以更好地满足他们的需求。

参见documentation

ChatGPT API尚不可用

正如官方OpenAI Twitter profile所述:
我们从ChatGPT研究预览中学到了很多,并根据用户反馈进行了重要更新。ChatGPT将很快应用于我们的API和Microsoft Azure OpenAI服务。
你是指GPT-3 API吗?如果是,请阅读documentation,查看所有可用的GPT-3 models列表,并学习如何使用Completions endpoint编写代码。

相关问题