自从 ChatGPT 和 Google Gemini 出现以来,我们已经看到许多应用程序利用这些模型启动。这种技术被称为套利,这种方法采用人工智能可以完成的多项任务之一,通过有效的提示对其进行增强,然后将其作为一项功能提供给客户。
本文将逐步指导如何将 Google Gemini 模型集成到我们的 Node.js 应用程序中。我们将了解如何使用处理生成文本的 Gemini-pro 和处理图像的 Gemini-pro-vision。
我们将首先设置项目,然后在我们自己的示例中使用它。
## 要求
-
Node.js 版本 18+
-
Google AI Platform 帐户来获取我们的 API 密钥
## 入门
首先,在空文件夹中创建一个新的 Node.js 项目:
mkdir gemini-node
cd gemini-node
npm init -y
现在,我们将安装环境文件和 Gemini SDK 所需的包:
npm install dotenv @google/generative-ai
API 密钥设置
在您的 Google AI Platform 上,单击 获取 API 密钥 按钮以获取 API 密钥,然后将其保存到根目录中的环境文件 (.env) 中:
API_KEY=YOUR_GEMINI_KEY
创建一个新的 lib 文件夹并在其中创建一个 config.js 文件,然后在下一步中,我们将导出我们的 API 密钥:
const dotenv = require("dotenv");
dotenv.config();
const API_KEY = process.env.API_KEY;
module.exports = { API_KEY };
Gemini SDK 设置
在此步骤中,我们将设置模型,以便可以在代码中使用它们。在我们的 lib 文件夹中,我们创建 2 个文件,gemini.js 用于处理文本,gemini-vision.js 用于处理图像。
1- 谷歌双子座专业版
const { GoogleGenerativeAI } = require("@google/generative-ai");
const { API_KEY } = require("./config");
const googleAI = new GoogleGenerativeAI(API_KEY);
const geminiConfig = {
temperature: 0.9,
topP: 1,
topK: 1,
maxOutputTokens: 4096,
};
const geminiModel = googleAI.getGenerativeModel({
model: "gemini-pro",
geminiConfig,
});
const generateText = async (prompt) => {
try {
const result = await geminiModel.generateContent(prompt);
const response = result.response;
return response.text();
} catch (error) {
console.log("response error", error);
}
};
module.exports = { generateText };
我们将使用导出的函数根据提示生成文本。我们可以用它来构建聊天系统、文本翻译和更多用例。
2- 谷歌双子座愿景
const { GoogleGenerativeAI } = require("@google/generative-ai");
const { API_KEY } = require("./config");
const fs = require("fs");
const googleAI = new GoogleGenerativeAI(API_KEY);
const geminiConfig = {
temperature: 0.4,
topP: 1,
topK: 32,
maxOutputTokens: 4096,
};
const geminiModel = googleAI.getGenerativeModel({
model: "gemini-pro-vision",
geminiConfig,
});
const interactWithImage = async (filePath) => {
try {
const imageFile = fs.readFileSync(filePath);
const imageBase64 = imageFile.toString("base64");
const promptConfig = [
{ text: "Generate a caption from this image" },
{
inlineData: {
mimeType: "image/jpeg",
data: imageBase64,
},
},
];
const result = await geminiModel.generateContent({
contents: [{ role: "user", parts: promptConfig }],
});
return result.response.text();
} catch (error) {
console.log("response error", error);
}
};
module.exports = { interactWithImage };
我们将使用导出的函数从图像生成文本。
构建应用程序
创建一个新的 index.js 文件并粘贴以下代码:
const main = async () => {
console.log("Hello world!");
};
main();
现在,我们可以导入导出的函数并使用它们从问题或图像提示生成文本。
该函数采用文件路径作为参数,因此您需要将图像文件添加到项目文件夹中来测试它。
我们的代码将转换为:
const { generateText } = require("./lib/gemini");
const { interactWithImage } = require("./lib/gemini-vision");
const path = require("path");
const main = async () => {
// Text Generation
let textFromPrompt = await generateText(
"tell me about bootcamps in a sentence"
);
console.log(textFromPrompt);
// Caption Generation
const directoryName = path.join(__dirname, "fish.jpg");
let captionFromImage = await interactWithImage(directoryName);
console.log(captionFromImage);
};
main();
接下来是什么
现在,您可以使用 ExpressJS 来构建 API 而不是脚本。您还可以研究为您的用例编写提示的最佳实践。
以下是您可以构建的应用程序的一些示例:
-
使用 Unsplash API 的 SEO 元数据生成器
-
通过添加从 PDF 获取内容的额外脚本来恢复审阅者
-
来自图片的 Instagram 简历作者
您有兴趣构建更好的应用程序吗? 加入我们的 Web 开发训练营 并学习如何构建功能齐全的产品!