bab*_*ins 2 javascript node.js reactjs openai-api chatgpt-api
我正在开发一个 ChatGPT-App,使用 React 和 Axios 向 OpenAI 的 GPT-3.5 API 发出 API 请求。但是,我在尝试发出请求时遇到 404 错误。我希望有人可以帮助我确定问题并指导我如何解决它。以下是 App.js 和 index.js 代码和错误消息:
应用程序.js
function App() {
const [messages, setMessages] = useState([]);
const [input, setInput] = useState("");
const sendMessage = async () => {
if (input.trim() === "") return;
const userInput = input; // Store user input in a temporary variable
setMessages([...messages, { type: "user", text: userInput }]);
setInput("");
try {
const response = await axios.post("http://localhost:5000/api/chat", { text: userInput });
const gptResponse = response.data.message;
setMessages((prevMessages) => [
...prevMessages,
{ type: "chatgpt", text: gptResponse },
]);
} catch (error) {
console.error("Error:", error);
}
};
Run Code Online (Sandbox Code Playgroud)
索引.js
const express = require("express");
const axios = require("axios");
const cors = require("cors");
const app = express();
app.use(express.json());
app.use(cors());
const openai_api_key = "MYOPENAI-APIKEY";
const headers = {
"Content-Type": "application/json",
"Authorization": `Bearer ${openai_api_key}`,
};
app.post("/api/chat", async (req, res) => {
try {
const input = req.body.text;
const response = await axios.post(
"https://api.openai.com/v1/engines/davinci-codex/completions",
{
prompt: `User: ${input}\nChatGPT: `,
max_tokens: 150,
temperature: 0.7,
n: 1,
},
{ headers }
);
const gptResponse = response.data.choices[0].text.trim();
res.json({ message: gptResponse });
} catch (error) {
console.error("Error:", error);
res.status(500).json({ error: "An error occurred while processing your request." });
}
});
const PORT = process.env.PORT || 5000;
app.listen(PORT, () => {
console.log(`Server started on port ${PORT}`);
});
Run Code Online (Sandbox Code Playgroud)
错误信息:
AxiosError: Request failed with status code 404
我已经验证 API 密钥是正确的,URL 也应该是正确的。谁能指出导致此错误的正确方向?任何帮助将不胜感激。谢谢你!
聊天完成 API(即 GPT-3.5 API)和完成 API(即 GPT-3 API)之间存在三个主要区别。
\n注意:OpenAI NodeJS SDK于2023年8月16日发布v4,是对SDK的完全重写。下面的代码根据您当前拥有的版本而有所不同。请参阅迁移指南。v3v4
差异如下:
\nv3:openai.createCompletionv4:openai.completions.createv3:openai.createChatCompletionv4:openai.chat.completions.createprompt(Completions API) 替换为messages参数 (Chat Completions API)v3:return response.data.choices[0].text;v4:return response.choices[0].text;v3:return response.data.choices[0].message.content;v4:return response.choices[0].message.content;\xe2\x80\xa2 如果您有 OpenAI NodeJS SDK v3:
const { Configuration, OpenAIApi } = require(\'openai\');\n\nconst configuration = new Configuration({\n apiKey: \'sk-xxxxxxxxxxxxxxxxxxxx\',\n});\n\nconst openai = new OpenAIApi(configuration);\n\nasync function getChatGptResponse(request) {\n try {\n const response = await openai.createChatCompletion({\n model: \'gpt-3.5-turbo\',\n messages: [{ role: \'user\', content: \'Hello!\' }],\n });\n\n console.log(response.data.choices[0].message.content);\n return response.data.choices[0].message.content;\n } catch (err) {\n console.log(\'Error: \' + err);\n return err;\n }\n}\n\ngetChatGptResponse();\nRun Code Online (Sandbox Code Playgroud)\n\xe2\x80\xa2 如果您有 OpenAI NodeJS SDK v4:
import OpenAI from \'openai\';\n\nconst openai = new OpenAI({\n apiKey: \'sk-xxxxxxxxxxxxxxxxxxxx\',\n});\n\nasync function getChatGptResponse(request) {\n try {\n const response = await openai.chat.completions.create({\n model: \'gpt-3.5-turbo\',\n messages: [{ role: \'user\', content: \'Hello!\' }],\n });\n\n console.log(response.choices[0].message.content);\n return response.choices[0].message.content;\n } catch (err) {\n console.log(\'Error: \' + err);\n return err;\n }\n}\n\ngetChatGptResponse();\nRun Code Online (Sandbox Code Playgroud)\n 差异如下:
\nhttps://api.openai.com/v1/completionshttps://api.openai.com/v1/chat/completionsprompt(Completions API) 替换为messages参数 (Chat Completions API)v3:const chatGptResponse = response.data.choices[0].text;v4:const chatGptResponse = response.choices[0].text;v3:const chatGptResponse = response.data.choices[0].message.content;v4:const chatGptResponse = response.choices[0].message.content;\xe2\x80\xa2 如果您有 OpenAI NodeJS SDK v3:
const express = require(\'express\');\nconst axios = require(\'axios\');\nconst cors = require(\'cors\');\n\nconst app = express();\napp.use(express.json());\napp.use(cors());\n\nconst openaiApiKey = \'sk-xxxxxxxxxxxxxxxxxxxx\';\n\nconst headers = {\n \'Content-Type\': \'application/json\',\n \'Authorization\': `Bearer ${openaiApiKey}`,\n};\n\napp.post(\'/api/chat\', async (req, res) => {\n try {\n const input = req.body.text;\n\n const response = await axios.post(\n \'https://api.openai.com/v1/chat/completions\',\n {\n model: \'gpt-3.5-turbo\',\n messages: [{role: \'user\', content: `${input}`}],\n },\n { headers }\n );\n\n const chatGptResponse = response.data.choices[0].message.content;\n\n console.log(chatGptResponse);\n res.status(200).json({ message: chatGptResponse });\n } catch (err) {\n console.log(\'Error: \' + err);\n res.status(500).json({ error: \'An error occurred while processing your request\' });\n }\n});\n\nconst PORT = process.env.PORT || 5000;\napp.listen(PORT, () => {\n console.log(`Server started on port ${PORT}`);\n});\nRun Code Online (Sandbox Code Playgroud)\n\xe2\x80\xa2 如果您有 OpenAI NodeJS SDK v4:
const express = require(\'express\');\nconst axios = require(\'axios\');\nconst cors = require(\'cors\');\n\nconst app = express();\napp.use(express.json());\napp.use(cors());\n\nconst openaiApiKey = \'sk-xxxxxxxxxxxxxxxxxxxx\';\n\nconst headers = {\n \'Content-Type\': \'application/json\',\n \'Authorization\': `Bearer ${openaiApiKey}`,\n};\n\napp.post(\'/api/chat\', async (req, res) => {\n try {\n const input = req.body.text;\n\n const response = await axios.post(\n \'https://api.openai.com/v1/chat/completions\',\n {\n model: \'gpt-3.5-turbo\',\n messages: [{role: \'user\', content: `${input}`}],\n },\n { headers }\n );\n\n const chatGptResponse = response.choices[0].message.content;\n\n console.log(chatGptResponse);\n res.status(200).json({ message: chatGptResponse });\n } catch (err) {\n console.log(\'Error: \' + err);\n res.status(500).json({ error: \'An error occurred while processing your request\' });\n }\n});\n\nconst PORT = process.env.PORT || 5000;\napp.listen(PORT, () => {\n console.log(`Server started on port ${PORT}`);\n});\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
6630 次 |
| 最近记录: |