Bygge en AI-applikasjon på 10 minutter: en trinn-for-trinn-veiledning

Gemini
Nodejs
AI
Guide
Bygge en AI-applikasjon på 10 minutter: en trinn-for-trinn-veiledning cover image

Siden dukket opp ChatGPT og Google Gemini, har vi sett mange apper bli lansert som utnytter disse modellene. Teknikken kalles arbitrage, en metode som tar en av de mange oppgavene AI kan gjøre, forbedrer den med effektive meldinger, og deretter gir den til kundene som en funksjon.

Denne artikkelen vil være en trinn-for-trinn-veiledning for hvordan du integrerer Google Gemini-modellen i vår Node.js-applikasjon. Vi skal se hvordan du bruker både Gemini-pro som håndterer generativ tekst, og Gemini-pro-vision som håndterer bilder.

Vi starter først med å sette opp prosjektet, og deretter bruke det på et eget eksempel.

Krav

Starter

Først oppretter du et nytt Node.js-prosjekt i en tom mappe:

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

Nå vil vi installere de nødvendige pakkene for miljøfilen og Gemini SDK:

npm install dotenv @google/generative-ai

API-nøkkeloppsett

På Google AI-plattformen din, klikk på Hent API-nøkkel-knappen for å få API-nøkkelen, og lagre den i miljøfilen (.env) i rotkatalogen:

API_KEY=YOUR_GEMINI_KEY

Opprett en ny lib-mappe og lag en config.js-fil i den, og for neste trinn eksporterer vi API-nøkkelen vår:

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

const  API_KEY  =  process.env.API_KEY;

module.exports  = { API_KEY };

Gemini SDK-oppsett

I dette trinnet vil vi sette opp modellene våre slik at vi kan bruke dem i koden vår. Inne i lib-mappen vår, la oss lage 2 filer, gemini.js for håndtering av tekst og gemini-vision.js for håndtering 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 vil bruke den eksporterte funksjonen til å generere tekst fra en ledetekst. Vi kan bruke det til å bygge et chat-system, tekstoversettelse og mange flere brukssaker.

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 vil bruke den eksporterte funksjonen til å generere tekst fra et bilde.

Bygger appen

Opprett en ny index.js-fil og lim inn denne koden:

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

main();

Nå kan vi importere våre eksporterte funksjoner og bruke dem til å generere tekst, enten fra et spørsmål eller en bildeforespørsel.

Funksjonen tar en filbane som et argument, så du må legge til en bildefil i prosjektmappen for å teste den.

Koden vår konverteres til:

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

Hva blir det neste

Nå kan du bruke ExpressJS til å bygge et API i stedet for et skript. Du kan også undersøke om beste fremgangsmåter for å skrive forespørsler for brukstilfellene dine.

Dette er noen eksempler på apper du kan bygge:

  • SEO-metadatagenerator ved hjelp av Unsplash API

  • Fortsett anmelder ved å legge til et ekstra skript som henter innhold fra PDF

  • Instagram bioskribent fra et bilde

Er du interessert i å bygge bedre apper? Bli med på vår nettutviklings-bootcamp og lær hvordan du bygger et fullt funksjonelt produkt!


By Omar Mokhfi

Career Services background pattern

Karrieretjenester

Contact Section background image

La oss holde kontakten

Code Labs Academy © 2024 Alle rettigheter forbeholdes.