Xây dựng ứng dụng AI trong 10 phút: Hướng dẫn từng bước

Song Tử
Nodejs
AI
Hướng dẫn
Xây dựng ứng dụng AI trong 10 phút: Hướng dẫn từng bước cover image

Kể từ khi ChatGPT và Google Gemini xuất hiện, chúng tôi đã thấy nhiều ứng dụng được ra mắt dựa trên các mô hình này. Kỹ thuật này được gọi là kinh doanh chênh lệch giá, một phương pháp thực hiện một trong nhiều nhiệm vụ mà AI có thể thực hiện, nâng cao nhiệm vụ đó bằng những lời nhắc hiệu quả và sau đó cung cấp cho khách hàng dưới dạng một tính năng.

Bài viết này sẽ là hướng dẫn từng bước về cách tích hợp mô hình Google Gemini vào ứng dụng Node.js của chúng tôi. Chúng ta sẽ xem cách sử dụng cả Gemini-pro để xử lý văn bản tổng quát và Gemini-pro-vision để xử lý hình ảnh.

Đầu tiên chúng ta sẽ bắt đầu bằng việc thiết lập dự án, sau đó sử dụng nó trên một ví dụ của riêng chúng ta.

Yêu cầu

Bắt đầu

Đầu tiên, tạo một dự án Node.js mới bên trong một thư mục trống:

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

Bây giờ, chúng tôi sẽ cài đặt các gói cần thiết cho tệp môi trường và SDK Gemini:

npm install dotenv @google/generative-ai

Thiết lập khóa API

Trên Nền tảng AI của Google, hãy nhấp vào nút Nhận khóa API để lấy Khóa API, sau đó lưu nó vào tệp môi trường của bạn (.env) trong thư mục gốc:

API_KEY=YOUR_GEMINI_KEY

Tạo thư mục lib mới và tạo tệp config.js bên trong thư mục đó, sau đó ở bước tiếp theo, chúng tôi sẽ xuất Khóa API của mình:

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

const  API_KEY  =  process.env.API_KEY;

module.exports  = { API_KEY };

Thiết lập SDK Gemini

Trong bước này, chúng ta sẽ thiết lập các mô hình để có thể sử dụng chúng trong mã của mình. Trong thư mục lib của chúng ta, hãy tạo 2 tệp, gemini.js để xử lý văn bản và gemini-vision.js để xử lý hình ảnh.

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

Chúng tôi sẽ sử dụng chức năng xuất để tạo văn bản từ lời nhắc. Chúng ta có thể sử dụng nó để xây dựng hệ thống trò chuyện, dịch văn bản và nhiều trường hợp sử dụng khác.

2- Tầm nhìn Song Tử của Google

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

Chúng tôi sẽ sử dụng chức năng xuất để tạo văn bản từ hình ảnh.

Xây dựng ứng dụng

Tạo một tệp index.js mới và dán mã này:

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

main();

Giờ đây, chúng ta có thể nhập các hàm đã xuất và sử dụng chúng để tạo văn bản, từ câu hỏi hoặc lời nhắc hình ảnh.

Hàm lấy đường dẫn tệp làm đối số, vì vậy bạn sẽ cần thêm tệp hình ảnh vào thư mục dự án của mình để kiểm tra.

Mã của chúng tôi sẽ chuyển đổi thành:

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

Cái gì tiếp theo

Bây giờ, bạn có thể sử dụng ExpressJS để xây dựng API thay vì tập lệnh. Bạn cũng có thể nghiên cứu về các phương pháp hay nhất về cách viết lời nhắc cho các trường hợp sử dụng của mình.

Sau đây là một số ví dụ về ứng dụng bạn có thể xây dựng:

  • Trình tạo dữ liệu Meta SEO sử dụng API Unsplash

  • Tiếp tục người đánh giá bằng cách thêm tập lệnh bổ sung lấy nội dung từ PDF

  • Người viết tiểu sử Instagram từ một hình ảnh

Bạn có quan tâm đến việc xây dựng các ứng dụng tốt hơn không? Tham gia chương trình đào tạo Phát triển Web của chúng tôi và tìm hiểu cách xây dựng một sản phẩm có đầy đủ chức năng!


By Omar Mokhfi

Career Services background pattern

Dịch vụ nghề nghiệp

Contact Section background image

Hãy giữ liên lạc

Code Labs Academy © 2024 Đã đăng ký Bản quyền.