Opbygning af en AI-applikation på 10 minutter: En trin-for-trin guide

Gemini
Nodejs
AI
Guide
Opbygning af en AI-applikation på 10 minutter: En trin-for-trin guide cover image

Siden fremkomsten af ​​ChatGPT og Google Gemini har vi set mange apps blive lanceret, der udnytter disse modeller. Teknikken kaldes arbitrage, en metode, der tager en af ​​de mange opgaver AI kan udføre, forbedrer den med effektive prompter og derefter giver den til kunderne som en funktion.

Denne artikel vil være en trin-for-trin guide til, hvordan du integrerer Google Gemini-modellen i vores Node.js-applikation. Vi vil se, hvordan man bruger både Gemini-pro, der håndterer generativ tekst, og Gemini-pro-vision, der håndterer billeder.

Vi starter først med at sætte projektet op og derefter bruge det på vores eget eksempel.

Krav

Kom godt i gang

Først skal du oprette et nyt Node.js-projekt i en tom mappe:

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

Nu vil vi installere de nødvendige pakker til miljøfilen og Gemini SDK:

npm install dotenv @google/generative-ai

API-nøgleopsætning

På din Google AI-platform skal du klikke på knappen Hent API-nøgle for at få API-nøglen, og gem den derefter i din miljøfil (.env) i rodmappen:

API_KEY=YOUR_GEMINI_KEY

Opret en ny lib-mappe og opret en config.js-fil i den, og til næste trin eksporterer vi vores API-nøgle:

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

const  API_KEY  =  process.env.API_KEY;

module.exports  = { API_KEY };

Gemini SDK-opsætning

I dette trin opsætter vi vores modeller, så vi kan bruge dem i vores kode. Inde i vores lib-mappe, lad os oprette 2 filer, gemini.js til håndtering af tekst og gemini-vision.js til håndtering af billeder.

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 bruge den eksporterede funktion til at generere tekst fra en prompt. Vi kan bruge det til at bygge et chatsystem, tekstoversættelse og mange flere use cases.

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 bruge den eksporterede funktion til at generere tekst fra et billede.

Opbygning af appen

Opret en ny index.js fil og indsæt denne kode:

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

main();

Nu kan vi importere vores eksporterede funktioner og bruge dem til at generere tekst, enten fra et spørgsmål eller en billedprompt.

Funktionen tager en filsti som et argument, så du bliver nødt til at tilføje en billedfil til din projektmappe for at teste den.

Vores kode vil konvertere 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();

Hvad er det næste

Nu kan du bruge ExpressJS til at bygge en API i stedet for et script. Du kan også undersøge bedste praksis for at skrive prompter til dine use cases.

Dette er et par eksempler på apps, du kan bygge:

  • SEO-metadatagenerator ved hjælp af Unsplash API

  • Genoptag anmelder ved at tilføje et ekstra script, der henter indhold fra PDF

  • Instagram bioskribent fra et billede

Er du interesseret i at bygge bedre apps? Tilmeld dig vores webudvikling bootcamp og lær, hvordan du bygger et fuldt funktionelt produkt!


By Omar Mokhfi

Career Services background pattern

Karriereservice

Contact Section background image

Lad os holde kontakten

Code Labs Academy © 2024 Alle rettigheder forbeholdes.