admin 管理员组文章数量: 887021
本人早先买了一个外网服务器,闲置没用,最近ChatGPT爆火,突发奇想,是否可以利用外网服务器,搭建服务端+网页端来实现国内访问。
说干就干,首先需要准备以下工具:
- chatgpt API 密钥
- 外网服务器(配置nodejs,网上有教程)
获取API Key
- 登录chatgpt官网,点击右上角的登陆,输入邮箱与密码
- 点击“Personal”,选择 View API keys
- 进入 API keys 账户后,点击 Create new secret key 生成密钥
- 在弹出的keys窗口中将密钥复制即可
注意:API key生成一次后就看不到了,所以在第一次生成时注意保存下来
搭建服务端
- 下载依赖模块
npm i openai
npm i dotenv
npm i express
npm i http
npm i socket.io
- 开发服务端程序
const { Configuration, OpenAIApi } = require("openai");//引入openai模块用于配置API key
require('dotenv').config()//引入dotenv模块用于导入API key
const configuration = new Configuration({
apiKey: process.env.OPENAI_API_KEY,//导入API key
});
const openai = new OpenAIApi(configuration);
填充请求结构体,并接收对话消息
const completion = await openai.createCompletion({
model: "text-davinci-003",//模型
prompt: message,//输入消息
temperature: 0.5,
max_tokens: 3500,//最大token数量
top_p: 1,
frequency_penalty: 0,
presence_penalty: 0,
});
return completion.data.choices[0].text;//chatgpt返回文本结果
// 监听连接事件
io.on('connection', function(socket) {
console.log('a user connected');
// 监听 chat 事件
socket.on('chat', async function(msg) {
console.log('Me:' + msg);
io.emit('chat', "ChatGPT:"+log); // 将消息广播给所有客户端
});
// 监听断开连接事件
socket.on('disconnect', function() {
console.log('user disconnected');
});
});
// 启动服务器
server.listen(3000, function() {
console.log('listening on *:3000');
});
搭建网页端
- 开发网页端程序
//引入表单格式
const socket = io();
const chatOutput = document.getElementById('chat-output');
const chatForm = document.getElementById('chat-form');
const chatInput = document.getElementById('chat-input');
const chatSubmit = document.getElementById('chat-submit');
// 监听来自服务器的 chat 事件
socket.on('chat', function(msg) {
const newMsg = document.createElement('div');
newMsg.textContent = msg;
newMsg.className = 'chat-msg'; // 添加类名
newMsg.classList.add('chat-msg', 'received');
chatOutput.appendChild(newMsg);
});
// 监听表单提交事件
chatForm.addEventListener('submit', function(e) {
e.preventDefault();
const msg = chatInput.value;
chatInput.value = '';
const newMsg = document.createElement('div');
newMsg.textContent = "Me:"+msg;
newMsg.className = 'chat-msg'; // 添加类名
newMsg.classList.add('chat-msg', 'sent');
chatOutput.appendChild(newMsg);
socket.emit('chat', msg); // 将消息发送给服务器
});
运行
- 服务端运行
node server.js
- 网页端打开页面
https://服务器IP:3000
至此,基于chatGPT API的服务端和网页端搭建完毕,以下是效果展示:
本文标签: 可直接 模块 魔法 OpenAI ChatGpt
版权声明:本文标题:使用openai模块接入chatGPT,无需魔法可直接畅聊 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1724526303h756339.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论