1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 使用openai模块接入chatGPT 无需魔法可直接畅聊

使用openai模块接入chatGPT 无需魔法可直接畅聊

时间:2024-03-21 08:23:45

相关推荐

使用openai模块接入chatGPT 无需魔法可直接畅聊

本人早先买了一个外网服务器,闲置没用,最近ChatGPT爆火,突发奇想,是否可以利用外网服务器,搭建服务端+网页端来实现国内访问。

说干就干,首先需要准备以下工具:

chatgpt API 密钥外网服务器(配置nodejs,网上有教程)

获取API Key

登录chatgpt官网,点击右上角的登陆,输入邮箱与密码点击“Personal”,选择 View API keys进入 API keys 账户后,点击 Create new secret key 生成密钥在弹出的keys窗口中将密钥复制即可

注意:API key生成一次后就看不到了,所以在第一次生成时注意保存下来

搭建服务端

下载依赖模块

npm i openainpm i dotenvnpm i expressnpm i httpnpm i socket.io

开发服务端程序

const {Configuration, OpenAIApi } = require("openai");//引入openai模块用于配置API keyrequire('dotenv').config()//引入dotenv模块用于导入API keyconst 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的服务端和网页端搭建完毕,以下是效果展示:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。