Bygga en AI-applikation på 10 minuter: en steg-för-steg-guide

Gemini
Nodejs
AI
Guide
Bygga en AI-applikation på 10 minuter: en steg-för-steg-guide cover image

Sedan ChatGPT och Google Gemini uppträdde har vi sett många appar lanseras som utnyttjar dessa modeller. Tekniken kallas arbitrage, en metod som tar en av de många uppgifterna AI kan göra, förbättrar den med effektiva uppmaningar och sedan tillhandahåller den till kunderna som en funktion.

Den här artikeln kommer att vara en steg-för-steg-guide om hur du integrerar Google Gemini-modellen i vår Node.js-applikation. Vi kommer att se hur man använder både Gemini-pro som hanterar generativ text och Gemini-pro-vision som hanterar bilder.

Vi börjar först med att sätta upp projektet och sedan använda det som ett eget exempel.

Krav

Komma igång

Skapa först ett nytt Node.js-projekt i en tom mapp:

mkdir gemini-node  
cd gemini-node
npm init -y

Nu kommer vi att installera de nödvändiga paketen för miljöfilen och Gemini SDK:

npm install dotenv @google/generative-ai

API Key Setup

På din Google AI-plattform klickar du på knappen Hämta API-nyckel för att hämta API-nyckeln och sparar sedan den i din miljöfil (.env) i rotkatalogen:

API_KEY=YOUR_GEMINI_KEY

Skapa en ny lib-mapp och skapa en config.js-fil i den, och för nästa steg kommer vi att exportera vår API-nyckel:

const  dotenv  =  require("dotenv");
dotenv.config();

const  API_KEY  =  process.env.API_KEY;

module.exports  = { API_KEY };

Gemini SDK Setup

I det här steget kommer vi att ställa in våra modeller så att vi kan använda dem i vår kod. Inuti vår lib-mapp, låt oss skapa 2 filer, gemini.js för hantering av text och gemini-vision.js för hantering av bilder.

1- Google Gemini Pro

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 };

Vi kommer att använda den exporterade funktionen för att generera text från en prompt. Vi kan använda det för att bygga ett chattsystem, textöversättning och många fler användningsfall.

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 };

Vi kommer att använda den exporterade funktionen för att generera text från en bild.

Bygger appen

Skapa en ny index.js-fil och klistra in den här koden:

const main = async () => {
  console.log("Hello world!");
};

main();

Nu kan vi importera våra exporterade funktioner och använda dem för att generera text, antingen från en fråga eller en bildprompt.

Funktionen tar en filsökväg som ett argument, så du måste lägga till en bildfil i din projektmapp för att testa den.

Vår kod kommer att konverteras till:

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();

Vad kommer härnäst

Nu kan du använda ExpressJS för att bygga ett API istället för ett skript. Du kan också söka efter bästa praxis för att skriva uppmaningar för dina användningsfall.

Det här är några exempel på appar du kan bygga:

  • SEO-metadatagenerator med Unsplash API

  • Återuppta granskare genom att lägga till ett extra skript som hämtar innehåll från PDF

  • Instagram bioskribent från en bild

Är du intresserad av att bygga bättre appar? Gå med i vårt bootcamp för webbutveckling och lär dig hur du bygger en fullt fungerande produkt!


By Omar Mokhfi

Career Services background pattern

Karriärtjänster

Contact Section background image

Låt oss hålla kontakten

Code Labs Academy © 2024 Alla rättigheter förbehållna.