С момента появления 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 нажмите кнопку Получить ключ 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 – Google Близнецы Про
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- Google Gemini Vision
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 вместо скрипта. Вы также можете узнать о лучших практиках написания подсказок для ваших вариантов использования.
Вот несколько примеров приложений, которые вы можете создать:
-
Генератор метаданных SEO с использованием Unsplash API
-
Возобновите работу рецензента, добавив дополнительный скрипт, который получает контент из PDF.
-
Автор биографии Instagram по изображению
Вы заинтересованы в создании лучших приложений? Присоединяйтесь к нашему учебному курсу по веб-разработке и узнайте, как создать полнофункциональный продукт!