Bou 'n KI-toepassing in 10 minute: 'n Stap-vir-stap-gids

Tweeling
Nodejs
KI
Gids
Bou 'n KI-toepassing in 10 minute: 'n Stap-vir-stap-gids cover image

Sedert die verskyning van ChatGPT en Google Gemini, het ons gesien hoe baie toepassings bekendgestel word wat hierdie modelle gebruik. Die tegniek word arbitrage genoem, 'n metode wat een van die veelvuldige take neem wat KI kan doen, dit verbeter met doeltreffende aanwysings en dit dan as 'n kenmerk aan kliënte verskaf.

Hierdie artikel sal 'n stap-vir-stap gids wees oor hoe om die Google Gemini-model in ons Node.js-toepassing te integreer. Ons sal sien hoe om beide Gemini-pro te gebruik wat generatiewe teks hanteer, en Gemini-pro-vision wat beelde hanteer.

Ons sal eers begin deur die projek op te stel, en dit dan op 'n voorbeeld van ons eie gebruik.

Vereistes

Aan die gang

Skep eers 'n nuwe Node.js-projek binne 'n leë gids:

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

Nou sal ons die vereiste pakkette vir omgewingslêer en die Gemini SDK installeer:

npm install dotenv @google/generative-ai

API-sleutelopstelling

Op jou Google AI-platform, klik op die Kry API-sleutel-knoppie om die API-sleutel te kry en stoor dit dan in jou omgewinglêer (.env) in die wortelgids:

API_KEY=YOUR_GEMINI_KEY

Skep 'n nuwe lib-lêergids en skep 'n config.js-lêer daarin, dan sal ons vir die volgende stap ons API-sleutel uitvoer:

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

const  API_KEY  =  process.env.API_KEY;

module.exports  = { API_KEY };

Gemini SDK-opstelling

In hierdie stap sal ons ons modelle opstel sodat ons dit in ons kode kan gebruik. Binne ons lib-lêergids, kom ons skep 2 lêers, gemini.js vir die hantering van teks en gemini-vision.js vir die hantering van beelde.

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

Ons sal die uitgevoerde funksie gebruik om teks vanaf 'n prompt te genereer. Ons kan dit gebruik om 'n kletsstelsel, teksvertaling en vele meer gebruiksgevalle te bou.

2- Google Tweeling Visie

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

Ons sal die uitgevoerde funksie gebruik om teks uit 'n prent te genereer.

Bou die toepassing

Skep 'n nuwe index.js-lêer en plak hierdie kode:

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

main();

Nou kan ons ons uitgevoerde funksies invoer en dit gebruik om teks te genereer, hetsy vanaf 'n vraag of 'n prentopdrag.

Die funksie neem 'n lêerpad as 'n argument, so jy sal 'n beeldlêer by jou projeklêer moet voeg om dit te toets.

Ons kode sal omskep in:

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

Wat is volgende

Nou kan jy ExpressJS gebruik om 'n API te bou in plaas van 'n skrip. U kan ook navorsing doen oor beste praktyke oor die skryf van aansporings vir u gebruiksgevalle.

Hier is 'n paar voorbeelde van toepassings wat u kan bou:

  • SEO Meta data generator met behulp van Unsplash API

  • Hervat beoordelaar deur 'n ekstra skrif by te voeg wat inhoud vanaf PDF kry

  • Instagram-bioskrywer vanaf 'n beeld

Stel jy belang om beter toepassings te bou? Sluit aan by ons Webontwikkeling-bootcamp en leer hoe om 'n ten volle funksionele produk te bou!


By Omar Mokhfi

Career Services background pattern

Loopbaandienste

Contact Section background image

Kom ons bly in kontak

Code Labs Academy © 2024 Alle regte voorbehou.