看官网写的这么简单,看其他博主,几行代码就成功请求到数据
但是我就会报Error connect 或者是404,405,400都有过
在我快要放弃时,自己捣鼓捣鼓竟然还是弄出来了,想哭
首先你得有外网代理,和openai 的apikey,不然这篇就不用看了
node.js部分
创建项目
1. 创建一个server文件夹
2.执行命令
npm init
安装包
package.json里直接复制以下代码就行
{
"name": "server",
"version": "1.0.0",
"description": "",
"type": "module",
"scripts": {
"server": "nodemon server"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"axios": "^1.6.8",
"cors": "2.8.5",
"dotenv": "16.0.3",
"express": "4.18.2",
"nodemon": "2.0.20",
"openai": "^3.0.0"
}
}
安装包说明
"cors": "^2.8.5"
处理跨域请求
"dotenv": "^16.4.5"
这对于管理项目的配置和敏感信息(如数据库连接字符串、API密钥等)
"express": "^4.19.2",
Express 是一个流行的 Node.js Web 框架,用于构建 Web 应用程序和 API。
它提供了一组强大的功能和工具,简化了在 Node.js 中构建 Web 应用程序的过程,包括路由、中间件、模板引擎等。
"nodemon": "^3.1.0"
用于监视文件的更改并自动重启 Node.js 应用程序
"openai": "^4.33.0"
OpenAI 公司提供的 Node.js SDK 或 API
然后执行命令
npm install
创建server.js文件
源代码
import express from 'express'
import * as dotenv from 'dotenv'
import cors from 'cors'
import { Configuration, OpenAIApi } from 'openai'
dotenv.config()
const configuration = new Configuration({
apiKey: process.env.OPENAI_API_KEY,
baseOptions:{
proxy:{
host:'127.0.0.1',// 这里在window上搜索代理可查看自己的代理地址和端口,一般应该是一样的
port:7890
}
}
});
const openai = new OpenAIApi(configuration);
const app = express()
app.use(cors())
app.use(express.json())
app.get('/', async (req, res) => {
res.status(200).send({
message: 'Hello from MY-OPENAI!'
})
})
app.post('/', async (req, res) => {
try {
const prompt = req.body.prompt;
const response = await openai.createChatCompletion({
messages: [{ role: "user", content: `${prompt}` }],
model: "gpt-3.5-turbo",
logprobs: true,
top_logprobs: 2,
});
res.status(200).send({
bot: response.data.choices[0].message.content
});
} catch (error) {
console.error(error)
res.status(500).send(error || 'Something went wrong');
}
})
app.listen(5000, () => console.log('AI server started on http://localhost:5000'))
查看代理设置
OPENAI_API_KEY的设置
建立 .env文件
OPENAI_API_KEY="你的openai key"
或者是在电脑上高级设置里系统变量中新建一个变量和值
以下就是整个文件的样子
执行
npm run server
查看是否运行成功
客户端
OK,node.js相关代码完成,可以再来试试客户端来请求locallhost:5000,试试
以下是客户端请求接口方法
function sendOpenai(){
const response = await fetch('http://localhost:5000',{
method:'POST',
headers:{
'Content-Type':'application/json'
},
body:JSON.stringify({prompt:'你问的问题'})
})
if(response.ok){
const data = await response.json()
const parsedData = data.bot.trim()
console.log('parsedData',parsedData)
}else{
const err = await response.text()
alert(err);
}
}
具体页面展示等,可以参考一下别人的源代码
project_openai_codex/server/server.js at main · adrianhajdin/project_openai_codex · GitHubBuild and Deploy Your Own ChatGPT AI Application That Will Help You Code - project_openai_codex/server/server.js at main · adrianhajdin/project_openai_codexhttps://github/adrianhajdin/project_openai_codex/blob/main/server/server.js
效果图
看官网写的这么简单,看其他博主,几行代码就成功请求到数据
但是我就会报Error connect 或者是404,405,400都有过
在我快要放弃时,自己捣鼓捣鼓竟然还是弄出来了,想哭
首先你得有外网代理,和openai 的apikey,不然这篇就不用看了
node.js部分
创建项目
1. 创建一个server文件夹
2.执行命令
npm init
安装包
package.json里直接复制以下代码就行
{
"name": "server",
"version": "1.0.0",
"description": "",
"type": "module",
"scripts": {
"server": "nodemon server"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"axios": "^1.6.8",
"cors": "2.8.5",
"dotenv": "16.0.3",
"express": "4.18.2",
"nodemon": "2.0.20",
"openai": "^3.0.0"
}
}
安装包说明
"cors": "^2.8.5"
处理跨域请求
"dotenv": "^16.4.5"
这对于管理项目的配置和敏感信息(如数据库连接字符串、API密钥等)
"express": "^4.19.2",
Express 是一个流行的 Node.js Web 框架,用于构建 Web 应用程序和 API。
它提供了一组强大的功能和工具,简化了在 Node.js 中构建 Web 应用程序的过程,包括路由、中间件、模板引擎等。
"nodemon": "^3.1.0"
用于监视文件的更改并自动重启 Node.js 应用程序
"openai": "^4.33.0"
OpenAI 公司提供的 Node.js SDK 或 API
然后执行命令
npm install
创建server.js文件
源代码
import express from 'express'
import * as dotenv from 'dotenv'
import cors from 'cors'
import { Configuration, OpenAIApi } from 'openai'
dotenv.config()
const configuration = new Configuration({
apiKey: process.env.OPENAI_API_KEY,
baseOptions:{
proxy:{
host:'127.0.0.1',// 这里在window上搜索代理可查看自己的代理地址和端口,一般应该是一样的
port:7890
}
}
});
const openai = new OpenAIApi(configuration);
const app = express()
app.use(cors())
app.use(express.json())
app.get('/', async (req, res) => {
res.status(200).send({
message: 'Hello from MY-OPENAI!'
})
})
app.post('/', async (req, res) => {
try {
const prompt = req.body.prompt;
const response = await openai.createChatCompletion({
messages: [{ role: "user", content: `${prompt}` }],
model: "gpt-3.5-turbo",
logprobs: true,
top_logprobs: 2,
});
res.status(200).send({
bot: response.data.choices[0].message.content
});
} catch (error) {
console.error(error)
res.status(500).send(error || 'Something went wrong');
}
})
app.listen(5000, () => console.log('AI server started on http://localhost:5000'))
查看代理设置
OPENAI_API_KEY的设置
建立 .env文件
OPENAI_API_KEY="你的openai key"
或者是在电脑上高级设置里系统变量中新建一个变量和值
以下就是整个文件的样子
执行
npm run server
查看是否运行成功
客户端
OK,node.js相关代码完成,可以再来试试客户端来请求locallhost:5000,试试
以下是客户端请求接口方法
function sendOpenai(){
const response = await fetch('http://localhost:5000',{
method:'POST',
headers:{
'Content-Type':'application/json'
},
body:JSON.stringify({prompt:'你问的问题'})
})
if(response.ok){
const data = await response.json()
const parsedData = data.bot.trim()
console.log('parsedData',parsedData)
}else{
const err = await response.text()
alert(err);
}
}
具体页面展示等,可以参考一下别人的源代码
project_openai_codex/server/server.js at main · adrianhajdin/project_openai_codex · GitHubBuild and Deploy Your Own ChatGPT AI Application That Will Help You Code - project_openai_codex/server/server.js at main · adrianhajdin/project_openai_codexhttps://github/adrianhajdin/project_openai_codex/blob/main/server/server.js
效果图