共计 5075 个字符,预计需要花费 13 分钟才能阅读完成。
hello 大家好,我是 superZidan,这篇文章想跟大家聊聊 Node.js 利用集成谷歌生成式 AI Gemini
,如果大家遇到任何问题,欢送 分割我 或者间接微信增加 superZidan41
🔥🔥🔥 后方高能,干货满满,倡议点赞➕关注➕珍藏;
介绍
在过来一年,生成式 AI 曾经成为技术圈最热门的话题。每个人都是用它来构建我的项目。Google 也领有本人的生成式 AI,叫做 Gemini。
最近,Google 曾经为开发者公布了 Gemini 的 API。它蕴含了一些库和框架,开发者能够将其集成到本人的利用中去。
在本篇文章中,咱们将构建一个简略的 Node.js 利用并将 Google Gemni 集成进来。咱们将通过 Google Gemini SDK 来实现。
让咱们马上开始吧!
什么是 Gemini ?
Google Gemini 是 Google 团队开发的一个弱小且多面的 AI 模型。Gemini 不仅仅能够解决文字,还能够了解和解决多种格局比方:代码,音频,图片和视频。这为你的 Node.js 我的项目带来了有限的可能性。
我的项目创立
-
创立 Node.js 我的项目
咱们须要先创立 Node.js 环境来开始咱们的我的项目。所以,让咱们先创立一个 node 我的项目。在终端运行上面的命令
npm init
这个将会初始化一个新的 Node.js 我的项目
-
装置依赖
当初,咱们将装置我的项目必要的依赖
npm install express body-parser @google/generative-ai dotenv
这个将会装置以下的依赖包:
- express: 一个风行的 Node.js Web 利用框架
- body-parser: 解析申请体的中间件
- @google/generative-ai: 对接 Gemini 模型能力
- dotenv: 从 .env 文件加载环境变量
-
设置环境变量
接下来,咱们将创立一个 .env 文件来寄存咱们的敏感信息,比方 API 凭证信息。
// .env API_KEY=YOUR_API_KEY PORT=3000
-
获取 API Key
在应用 Gemini 之前,咱们须要从 Google 开发者控制台创立 API 凭证。为此,你须要登录 Google 账号并创立一个 API key
一旦你登录胜利,跳转到 https://makersuite.google.com/app/apikey 咱们将看到相似这样的内容
而后咱们点击「Create API key」按钮,这就能够生成一个惟一的 API key。咱们将应用这个 API key 来跟 Google Generative AI API 进行权限认证
你能够应用 Curl 命令来测试你的 API
curl \ -H 'Content-Type: application/json' \ -d '{"contents":[{"parts":[{"text":"Write a story about a magic backpack"}]}]}' \ -X POST https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=YOUR_API_KEY
将 YOUR_API_KEY 替换成你实在生成的 API Key。同时咱们将生成的 API key 更新到
.env
文件中。 -
创立 Express 服务 咱们在根目录下创立一个
index.js
文件并设置一个根底的 express 服务。看看上面的代码const express = require("express"); const dotenv = require("dotenv"); dotenv.config(); const app = express(); const port = process.env.PORT; app.get("/", (req, res) => {res.send("Hello World"); }); app.listen(port, () => {console.log(`Server running on port ${port}`); });
这里,咱们应用“dotenv”这个包来通过
.env
文件拜访 PORT 端口号在文件的最顶部,咱们应用
dotenv.config()
来加载环境变量,使得咱们能够在这个文件中拜访到这些变量 -
运行我的项目
在这一步,咱们须要在我的项目中增加
package.json
文件,而后在改文件中增加上面的内容"scripts": {"start": "node index.js"}
package.json
文件 看起来应该像上面这样在查看所有都没问题之后,咱们能够应用上面的命令来运行我的项目
npm run start
这个将会启动 Express 服务。当初如果咱们拜访 URL http://localhost:3000/,则能够看到
十分好!这个我的项目曾经失常运行起来了。在下一章节,咱们将把 Gemini 集成到咱们的我的项目中去。
增加 Google Gemini
-
增加路由和中间件
咱们将在我的项目中创立一个
/generate
路由来与 Gemini AI 进行通信对此咱们须要在
index.js
文件中增加上面的内容const bodyParser = require("body-parser"); const {generateResponse} = require("./controllers/index.js"); // 将申请体内容解析为 JSON 的中间件 app.use(bodyParser.json()); app.post("/generate", generateResponse);
这里咱们应用
body-parser
中间件将申请体的内容格式化为 JSON -
配置 Google 生成式 AI
咱们创立一个名为
controller
的目录,在目录外面创立一个index.js
文件。接下来咱们将创立一个新的 controller 函数来解决下面代码申明的generated
路由const {GoogleGenerativeAI} = require("@google/generative-ai"); const dotenv = require("dotenv"); dotenv.config(); // GoogleGenerativeAI 配置 const configuration = new GoogleGenerativeAI(process.env.API_KEY); // 模型初始化 const modelId = "gemini-pro"; const model = configuration.getGenerativeModel({model: modelId});
这里咱们为 Google Generative AI API 创立一个配置对象,并且将环境变量中的 API Key 传给这个对象。
而后,咱们通过向配置对象的
getGenerativeModel
办法提供模型 ID(“gemini-pro”)来初始化模型。模型配置 咱们也能够依据本人的需要配置模型参数。这些参数值管制模型如何生成响应。例如:
const generationConfig = {stopSequences: ["red"], maxOutputTokens: 200, temperature: 0.9, topP: 0.1, topK: 16, }; const model = configuration.getGenerativeModel({model: modelId, generationConfig});
平安设置 咱们能够应用平安设置来防止出现无害的响应。默认状况下,平安设置配置为阻止在各个维度上具备中等到高可能性不平安的内容。
例如
const {HarmBlockThreshold, HarmCategory} = require("@google/generative-ai"); const safetySettings = [ { category: HarmCategory.HARM_CATEGORY_HARASSMENT, threshold: HarmBlockThreshold.BLOCK_ONLY_HIGH, }, { category: HarmCategory.HARM_CATEGORY_HATE_SPEECH, threshold: HarmBlockThreshold.BLOCK_MEDIUM_AND_ABOVE, }, ]; const model = genAI.getGenerativeModel({model: "MODEL_NAME", safetySettings});
通过这些平安设置,咱们能够最大限度地缩小无害内容生成的可能性,以此来加强安全性。
-
治理历史对话
为了追踪历史对话记录,咱们创立一个
history
数组并导出它const history = [] exports.history = history;
-
实现 Controller 函数
当初,咱们将编写一个 Controller 函数 `generateResponse` 来解决生成路由(/generate)并生成对用户申请的响应。```js /** * 基于给定的提醒生成响应。* @param {Object} req - 申请对象. * @param {Object} res - 响应对象. * @returns {Promise} */ const generateResponse = async (req, res) => { try {const { prompt} = req.body; const result = await model.generateContent(prompt); const response = await result.response; const text = response.text(); console.log(text); history.push(text); console.log(history); res.send({response: text}); } catch (err) {console.error(err); res.status(500).json({message: "Internal server error"}); } }; exports.generateResponse = generateResponse; ``` 在这里,咱们从申请体中获取 prompt,并应用 `model.generateContent` 办法依据 prompt 生成响应。为了跟踪响应,咱们将响应 push 到 `history` 数组。
-
查看响应历史
咱们将创立一个路由来查看咱们的响应历史记录。这个端点返回历史数组。
在
index.js
文件中增加上面这些代码app.get("/generate", (req, res) => {res.send(history); });
-
运行我的项目
当初咱们检查一下咱们的我的项目是否能失常工作!
让咱们应用以下命令来运行我的项目:
npm run start
运行失常!
-
性能查看
接下来,咱们将应用 Postman 收回 Post 申请来验证咱们的性能。
咱们将应用以下的参数给 **http://localhost:3000/generate** 发送一个 post 申请
{"prompt": "Write 3 Javascript Tips for Beginners"}
咱们能够失去上面的响应内容
{"response": "1. ** 从根底开始:** 花工夫透彻地理解变量、数据类型、运算符和控制流等外围概念。奠定松软的根底将使你更容易了解更高级的主题。\n\n2. ** 实际、实际、再实际:** 编程是一种实践性技能。通过编写大量的代码并解决问题,你会进步你的熟练程度和解决问题的能力。在在线平台上查找练习、代码挑战和我的项目。\n\n3. ** 寻求帮忙和反馈:** 不要胆怯向别人寻求帮忙。退出在线社区、加入研讨会或与导师分割。取得反馈和倡议将帮忙你辨认改良畛域并进步你的技能。"}
十分完满!咱们的 Gemini AI 集成正在按预期工作!
此外,咱们能够拜访 http://localhost:3000/generate 这个路由来查看对话历史记录
这样,咱们就将 Gemini AI 集成到了 Node.js 应用程序中。在接下来的文章中,咱们将摸索 Gemini AI 的更多用例。
请继续关注吧!
仓库地址
总结
如果你发现这篇博文有帮忙,欢送与其他人分享。你还能够关注我,理解无关 Javascript、React 和其余 Web 开发主题的更多内容。与平常一样,如果你有任何疑难,请随时与我分割或发表评论。祝你编程欢快!
本文为翻译文,原文地址:https://arindam1729.hashnode.dev/how-to-use-google-gemini-wit…