十分钟搭建一个免费的 OpenAI 服务 |
您所在的位置:网站首页 › trainstation的汉语 › 十分钟搭建一个免费的 OpenAI 服务 |
最近 chatGPT 非常火,也出现了很多基于 chatGPT 写的插件,本次文章准备讲解一下基于 OpenAI 如何搭建一个 gpt 服务,并实现如下两个功能: 实现内容对话 实现根据内容生成 AI 图片源码地址:github.com/MRwangqi/ch… 效果演示:如下是效果演示: 内容对话:http-nodejs-production-32b8.up.railway.app/chat?prompt…1、OpenAI API 接入文档: platform.openai.com/docs/api-re… 2、获取 OpenAI API Keys 和 Organization 组织 ID (前提是有 OpenAI 账号) 点击链接 platform.openai.com/account/api… 获取 API Keys,如果没有,可点击 Create new secret key进行创建: 点击链接 platform.openai.com/account/org… 获取组织 ID: OpenAI API 文档提供了三种接入方式: Http 请求 Python Node.js无论用哪种方式接入,所对应的使用方式都差不多,仅仅只是技术栈不同而已,我们来看个 Http 请求的示例 : curl https://api.openai.com/v1/completions \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer YOUR_API_KEY' \ -d '{ "model": "text-davinci-003", "prompt": "今天星期几?", "max_tokens": 7, "temperature": 0 }'请求参数: model :模型 Id,此处的文本生成模型为 GPT-3 prompt:提示语 max_tokens:回复结果的最大 tokens 数量,根据模型所定,有的最大2048,有的 4096,根据官网 tokenizer 描述,对于普通英文文本,100 个 tokens 差不多等于 75 个单词,具体计算规则可查看 platform.openai.com/tokenizer temperature:采样精确度,介于 0~2 之间,值越低约精确。以官方示例为准,我们使用 Node.js 开始开发(需要安装 Node 环境,可自行搜索安装)。 执行初始化环境命令,根据提示完成项目创建 npm init 执行安装 openai 依赖命令: npm install openai 安装完成后,我们在当前目录创建个 index.js 文件,为了能加载 ES 模块,我们还需在 package.json 中添加下 "type": "module",拷贝官方示例到该文件下,并替换掉 organization 组织 Id 与 apiKey 即可,配置效果如下: 如果 API KEY 和组织 Id 配置正确的话,我们可以执行运行命令: node index.js 如果控制台没有任何报错的话,则表示配置成功,如果控制台有打印日志,则需要查看是 API KEY 配置不正确,还是组织 ID 配置不正确。 接下来,我们在此基础上,使用 gpt-3 文本模型开发功能: // ... 省略上面代码 const res = await openai.createCompletion({ // text 模型 model: "text-davinci-003", prompt: "周杰伦有多少张专辑?", max_tokens: 2048, temperature: 0.2 }) // 打印结果 console.log(res.data.choices)这里我们询问 周杰伦有多少张专辑?,并执行 node index.js,查看打印的结果: 一个简单的问答结果出来了,接下来,我们暂时注释掉该段代码,尝试下 AI 作画的能力,编辑如下代码: // ... 省略上面代码 const res = await openai.createImage({ model: "image-alpha-001", prompt: "空山新雨后,天气晚来秋", size: "256x256", n: 1 }) // 打印图片 url var url = res.data.data[0].url console.log(url) model 为 AI 图片模型 prompt 为描述的内容,这里,我们引用古诗,来查看最终的效果 size 为生成的图片大小 n 为生成的张数,这里我们就填写一张执行成功后,会打印图片的 url: 我们将其拷贝出来到浏览器查看: 为了使这两个功能通过服务的方式访问,我们还需要安装两个依赖 koa 和 koa-router,执行如下命令安装: npm install koa koa-router 重新编辑 index.js 文件,引入 koa 和 koa-router: import Koa from "koa" import Router from "koa-router"; // ... 省略 openai 初始化代码 const app = new Koa() const router = new Router(); router.get("/chat", async (ctx, next) => { // 获取请求中的 prompt 参数 const { prompt } = ctx.request.query; const res = await openai.createCompletion({ model: "text-davinci-003", prompt: prompt, max_tokens: 2048, temperature: 0.2 }) // 将生成的内容返回给客户端 ctx.body = res.data.choices }); // 启用路由 app.use(router.routes()).use(router.allowedMethods()); // 启动服务器,端口暂时设置为 3000 app.listen(3000, () => { console.log("Server is started "); });总体过程就是启用个端口为 3000 的服务,将原来执行的代码放到了 /chat 路由路径中,访问该路径即可执行该代码返回结果,接下来,我们继续执行 node index.js命令,然后访问如下链接: http://localhost:3434/chat?prompt=周杰伦是谁 具体操作代码可直接查看源码,这里就不贴了,避免代码太多影响阅读,接下来,我们需要开始部署应用了。 部署应用访问 railway.app/dashboard 链接,建议使用 Github 快捷登录 Railway ,并点击 New Project创建项目: 我们选择该项目,先不着急部署,我们先把前面的环境变量先设置上: 我们拿到该链接,就可以开始访问了,拷贝此链接,我们来访问下 AI 作画(链接+路由): chatgpt-nodejs-production.up.railway.app/image?promp… |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |