DEV Community

Cover image for API Gemini Miễn Phí Không Giới Hạn
Sebastian Petrus
Sebastian Petrus

Posted on • Originally published at apidog.com

API Gemini Miễn Phí Không Giới Hạn

Dòng mô hình Gemini của Google có chi phí tương đối hiệu quả cho khối lượng công việc lớn, nhưng với ứng dụng miễn phí công khai, dự án phụ hoặc sản phẩm hackathon, chi phí vẫn có thể tăng nhanh khi có vài nghìn người dùng gọi endpoint của bạn. Puter.js đảo ngược mô hình này: bạn có thể gọi Gemini và Gemma từ trình duyệt mà không cần khóa Google API; chi phí sử dụng được gắn với người dùng cuối qua tài khoản Puter thay vì tài khoản thanh toán của bạn.

Dùng thử Apidog hôm nay

Tóm tắt

  • Puter.js cho phép gọi Gemini/Gemma từ trình duyệt mà không cần Google API key, Google Cloud project hoặc backend riêng.
  • Các phiên bản Gemini được hỗ trợ gồm: 2.5 Pro, 2.5 Flash, 2.5 Flash Lite, 2.0 Flash, 2.0 Flash Lite, 3 Flash Preview và một số bản preview cũ hơn.
  • Các phiên bản Gemma được hỗ trợ gồm: Gemma 2, 3, 4 với nhiều kích cỡ như 4B, 12B, 27B, 31B, 26B-A4B.
  • Chỉ cần một thẻ <script> và một lệnh gọi hàm để bắt đầu chat với Gemini.
  • Có thể dùng streaming, input hình ảnh và temperature trực tiếp trong trình duyệt.
  • Người dùng cuối thanh toán chi phí sử dụng từ tài khoản Puter của họ; phía developer không cần quản lý billing.
  • Có thể dùng Apidog để so sánh prototype Puter với API Gemini chính thức khi lập kế hoạch migration.

Cách mô hình “miễn phí không giới hạn” hoạt động

Với API Gemini chính thức, bạn giữ Google API key và chịu toàn bộ chi phí token. Với Puter.js, người dùng cuối đăng nhập vào Puter và lệnh gọi AI được tính vào tài khoản Puter của họ. Tài khoản mới có tín dụng khởi điểm; người dùng có thể nạp thêm nếu cần dùng nhiều hơn.

Điều này có vài hệ quả thực tế:

  • Không cần Google Cloud project hoặc AI Studio key.
  • Không cần quản lý quota, rotation key hoặc billing Google.
  • Không có giới hạn sử dụng từ phía developer theo kiểu một API key duy nhất.
  • Phù hợp với ứng dụng browser-first, ví dụ static site, demo, hackathon app hoặc browser extension.

Đánh đổi quan trọng: Puter ưu tiên ngữ cảnh trình duyệt và phiên người dùng. Nếu bạn cần cron job, batch job, webhook hoặc service backend không có user session, hãy dùng API Gemini chính thức.

Bước 1: Cài đặt Puter.js

Cách nhanh nhất là dùng CDN:

<script src="https://js.puter.com/v2/"></script>
Enter fullscreen mode Exit fullscreen mode

Nếu bạn đang dùng bundler:

npm install @heyputer/puter.js
Enter fullscreen mode Exit fullscreen mode
import { puter } from '@heyputer/puter.js';
Enter fullscreen mode Exit fullscreen mode

Với static HTML hoặc Dev.to demo snippet, CDN thường là đủ.

Bước 2: Chọn model Gemini hoặc Gemma

ID model Khi nào nên dùng
google/gemini-2.5-pro Tác vụ suy luận sâu, phân tích phức tạp, ngữ cảnh dài
google/gemini-2.5-flash Model mặc định cho hầu hết ứng dụng; cân bằng tốc độ và chất lượng
google/gemini-2.5-flash-lite Biến thể nhẹ hơn; phù hợp phân loại, tagging, tác vụ khối lượng lớn
google/gemini-2.0-flash Nền tảng ổn định, hành vi dễ dự đoán
google/gemini-3-flash-preview Bản preview mới hơn, phù hợp thử nghiệm
google/gemma-3-27b-it Gemma mã nguồn mở, instruction-tuned, phù hợp baseline mở
google/gemma-4-31b-it Gemma mã nguồn mở lớn hơn, phù hợp thử nghiệm chất lượng cao hơn

Khuyến nghị triển khai:

  • Dùng google/gemini-2.5-flash làm mặc định.
  • Chuyển sang google/gemini-2.5-pro cho prompt khó, cần reasoning tốt hơn.
  • Dùng google/gemini-2.5-flash-lite cho phân loại, gắn nhãn, QA đơn giản hoặc workload lớn.

Bước 3: Gọi Gemini từ trình duyệt

Ví dụ tối thiểu:

<!DOCTYPE html>
<html>
<body>
  <script src="https://js.puter.com/v2/"></script>

  <script>
    puter.ai.chat(
      "Giải thích học máy trong ba câu",
      { model: "google/gemini-2.5-flash" }
    ).then(response => {
      puter.print(response);
    });
  </script>
</body>
</html>
Enter fullscreen mode Exit fullscreen mode

Luồng chạy:

  1. Mở file HTML trong trình duyệt.
  2. Puter xử lý phiên đăng nhập của người dùng.
  3. Lệnh gọi được gửi tới model đã chọn.
  4. Phản hồi được in ra trang bằng puter.print().

Bạn không cần:

  • API key
  • .env
  • Backend proxy
  • Billing Google Cloud

Bước 4: Streaming phản hồi

Với UI chat hoặc câu trả lời dài, nên bật streaming để người dùng thấy kết quả ngay khi model sinh token.

const response = await puter.ai.chat(
  "Giải thích chi tiết quá trình quang hợp",
  {
    model: "google/gemini-2.5-flash",
    stream: true,
  }
);

for await (const part of response) {
  if (part?.text) {
    outputDiv.innerHTML += part.text;
  }
}
Enter fullscreen mode Exit fullscreen mode

Ví dụ HTML đơn giản:

<div id="output"></div>

<script src="https://js.puter.com/v2/"></script>
<script>
  const outputDiv = document.getElementById("output");

  async function run() {
    const response = await puter.ai.chat(
      "Viết hướng dẫn ngắn về cách tối ưu API latency",
      {
        model: "google/gemini-2.5-flash",
        stream: true,
      }
    );

    for await (const part of response) {
      if (part?.text) {
        outputDiv.innerHTML += part.text;
      }
    }
  }

  run();
</script>
Enter fullscreen mode Exit fullscreen mode

Mỗi part.text là một phần của phản hồi. Bạn chỉ cần append nó vào UI.

Bước 5: Gửi hình ảnh cho Gemini

Gemini hỗ trợ input đa phương thức. Với Puter, bạn có thể truyền URL hình ảnh làm tham số thứ hai:

puter.ai.chat(
  "Bạn thấy gì trong hình ảnh này? Mô tả màu sắc, vật thể và tâm trạng.",
  "https://assets.puter.site/doge.jpeg",
  { model: "google/gemini-2.5-flash" }
).then(response => {
  puter.print(response);
});
Enter fullscreen mode Exit fullscreen mode

Các use case thực tế:

  • Tạo alt text cho ảnh
  • QA hình ảnh
  • Phân tích ảnh chụp màn hình
  • OCR cơ bản
  • Công cụ hỗ trợ tiếp cận
  • Gắn thẻ hình ảnh sản phẩm

Gemini mạnh với ảnh tự nhiên và biểu đồ. Với ảnh chụp màn hình chứa nhiều văn bản dày đặc, một số model khác có thể cho kết quả tốt hơn tùy trường hợp.

Bước 6: Điều chỉnh temperature

Bạn có thể truyền các tham số model trong object options:

const response = await puter.ai.chat(
  "Viết một câu chuyện ngắn sáng tạo về một đầu bếp robot",
  {
    model: "google/gemini-2.5-flash",
    temperature: 0.2,
  }
);

console.log(response);
Enter fullscreen mode Exit fullscreen mode

Cách chọn nhanh:

  • temperature: 0.0–0.3: đầu ra ổn định, thực tế, có cấu trúc.
  • temperature: 0.7–1.0: đầu ra sáng tạo hơn, phù hợp viết nội dung.
  • Với chatbot thông thường, có thể bắt đầu quanh 0.7 rồi điều chỉnh theo kết quả.

Bước 7: Xây dựng hội thoại nhiều lượt

Truyền một mảng message để giữ ngữ cảnh hội thoại:

const messages = [
  {
    role: "user",
    content: "Tôi đang xây dựng một ứng dụng Next.js với Postgres."
  },
  {
    role: "assistant",
    content: "Đã hiểu. Bạn cần trợ giúp về điều gì?"
  },
  {
    role: "user",
    content: "Tôi nên cấu trúc các migration như thế nào?"
  },
];

const response = await puter.ai.chat(messages, {
  model: "google/gemini-2.5-pro",
});

console.log(response);
Enter fullscreen mode Exit fullscreen mode

Pattern triển khai trong app chat:

const messages = [];

async function sendMessage(userText) {
  messages.push({
    role: "user",
    content: userText,
  });

  const response = await puter.ai.chat(messages, {
    model: "google/gemini-2.5-flash",
  });

  messages.push({
    role: "assistant",
    content: response,
  });

  return response;
}
Enter fullscreen mode Exit fullscreen mode

Mỗi lần user gửi tin nhắn, thêm message mới vào mảng. Mỗi lần nhận phản hồi, thêm phản hồi assistant vào mảng. Lệnh gọi tiếp theo sẽ có toàn bộ transcript trước đó.

So sánh Gemini với model khác trên cùng prompt

Puter cung cấp nhiều LLM qua một interface. Bạn có thể benchmark nhanh cùng một prompt trên nhiều model:

const models = [
  "google/gemini-2.5-flash",
  "claude-sonnet-4-6",
  "gpt-5.5",
  "x-ai/grok-4.3",
];

const prompt = "Tái cấu trúc thành phần React này để sử dụng hooks: ...";

for (const model of models) {
  const start = performance.now();

  const response = await puter.ai.chat(prompt, { model });

  const elapsed = performance.now() - start;

  console.log(`${model}: ${elapsed.toFixed(0)}ms`);
  console.log(response);
  console.log("---");
}
Enter fullscreen mode Exit fullscreen mode

Khi đánh giá, đừng chỉ nhìn latency. Hãy kiểm tra:

  • Độ đúng của câu trả lời
  • Khả năng tuân thủ format
  • Chiều sâu reasoning
  • Chất lượng code
  • Tính nhất quán qua nhiều lần chạy
  • Trải nghiệm thực tế trong UI

Gemini Flash thường phù hợp khi cần tốc độ. Các model khác có thể phù hợp hơn cho code, viết dài hoặc tối ưu chi phí tùy bài toán.

Bạn nhận được gì và không nhận được gì

Bạn nhận được

  • Gemini 2.5/2.0/3 Flash và Gemini 2.5 Pro
  • Dòng Gemma mã nguồn mở 2/3/4
  • Hội thoại nhiều lượt
  • Streaming response
  • Input hình ảnh qua URL
  • Tham số như temperature, max_tokens, system prompt
  • Mô hình triển khai phù hợp với ứng dụng browser-first

Bạn có thể không nhận được, tùy phiên bản Puter

  • Function calling gốc trên Gemini
  • Công cụ thực thi code
  • Grounding qua Google Search
  • Ngữ cảnh dài tới đầy đủ giới hạn 2 triệu token của Gemini
  • Server-side usage không có browser session
  • Khả năng quan sát trực tiếp rate limit từ Google

Nếu bạn cần agent workflow phức tạp, code execution, grounding hoặc ngữ cảnh cực dài, API Google AI Studio chính thức vẫn là lựa chọn phù hợp hơn. Nếu bạn cần chat, QA, tạo nội dung hoặc phân tích hình ảnh cơ bản trong trình duyệt, Puter thường đủ để triển khai prototype hoặc app công khai.

Khi nào dùng Puter, khi nào dùng API Gemini chính thức

Dùng Puter khi

  • Bạn đang phát hành ứng dụng miễn phí công khai và không muốn tự chịu billing token.
  • Bạn đang prototype và không muốn thiết lập Google Cloud.
  • Bạn muốn gọi Gemini từ static site, hackathon app hoặc browser extension.
  • Bạn không muốn đặt API key trong frontend.
  • Người dùng của bạn chấp nhận đăng nhập Puter.

Dùng API Gemini chính thức khi

  • Bạn cần gọi từ server: cron, batch, webhook, queue worker.
  • Bạn cần code execution, grounding qua Search hoặc ngữ cảnh rất dài.
  • Bạn cần quan hệ hợp đồng trực tiếp với Google vì compliance.
  • Bạn cần tinh chỉnh trên dữ liệu riêng.
  • Bạn không muốn thêm bước đăng nhập Puter cho người dùng.

Để xem thêm hướng dẫn về Gemini 3 Flash, đọc Cách sử dụng API Gemini 3 Flash Preview.

Kiểm tra tích hợp với Apidog

Các lệnh gọi Puter chạy trong trình duyệt, vì vậy bạn không thể test chúng như một backend API thông thường. Một workflow thực tế hơn:

  1. Tạo một trang static nhỏ dùng Puter.js.
  2. Cho phép truyền prompt qua query string, ví dụ ?prompt=....
  3. Dùng trang này làm prototype browser-first.
  4. Trong Apidog, tạo collection riêng cho API Gemini chính thức nếu sau này cần migration.
  5. Tách môi trường puter-prototypegemini-prod để so sánh hoặc chuyển đổi dễ hơn.

Ví dụ cấu trúc môi trường:

  • puter-prototype: URL localhost hoặc static page chứa Puter.js.
  • gemini-prod: https://generativelanguage.googleapis.com/v1.

Bạn có thể Tải Apidog và tạo hai môi trường này trong cùng một collection để giữ luồng test nhất quán. Với các mô hình test API rộng hơn, xem thêm công cụ kiểm thử API cho kỹ sư QA.

Các cách khác để dùng LLM miễn phí qua Puter

Cùng mô hình user-paid có thể áp dụng cho nhiều LLM khác:

Về mặt code, bạn chủ yếu thay chuỗi model:

const response = await puter.ai.chat("Viết unit test cho hàm này: ...", {
  model: "google/gemini-2.5-flash",
});
Enter fullscreen mode Exit fullscreen mode

Đổi model là đổi provider hoặc biến thể model.

Câu hỏi thường gặp

Đây có thực sự là không giới hạn không?

Không giới hạn từ phía developer theo nghĩa bạn không tự giữ API key và không tự chịu billing cho toàn bộ usage. Người dùng cuối có số dư trong tài khoản Puter của họ; tài khoản mới nhận tín dụng khởi điểm và có thể nạp thêm nếu cần.

Tôi có cần tài khoản Google hoặc Google Cloud project không?

Không. Puter xử lý phần gọi upstream. Bạn không cần tạo Google API key.

Có dùng được trong production không?

Có thể dùng cho ứng dụng dựa trên trình duyệt. Câu hỏi cần kiểm tra trước khi production là: người dùng của bạn có chấp nhận bước đăng nhập Puter không?

Gemini qua Puter có giống API chính thức không?

Model upstream là Gemini, nhưng đường gọi đi qua Puter. Hành vi model nhìn chung tương ứng với model được chọn; latency có thể khác do lớp trung gian và phiên người dùng.

Còn cửa sổ ngữ cảnh 2 triệu token của Gemini thì sao?

Puter không nhất thiết cung cấp đầy đủ giới hạn 2 triệu token cho mọi biến thể model. Nếu workload của bạn phụ thuộc vào ngữ cảnh cực dài, hãy dùng API Google AI Studio chính thức.

Có dùng được cho bot Discord hoặc backend service không?

Không phải là lựa chọn phù hợp nhất. Puter ưu tiên trình duyệt và giả định có phiên người dùng. Backend service nên dùng API Gemini chính thức.

Nên chọn model mặc định nào?

Bắt đầu với:

google/gemini-2.5-flash
Enter fullscreen mode Exit fullscreen mode

Dùng google/gemini-2.5-pro cho reasoning khó. Dùng google/gemini-2.5-flash-lite cho phân loại hoặc tác vụ khối lượng lớn.

Có hỗ trợ tạo hình ảnh bằng Imagen không?

Puter hiện cung cấp tạo hình ảnh qua các biến thể gpt-image-2 và DALL-E của OpenAI, không phải Imagen. Xem Nhận API GPT-5.5 không giới hạn miễn phí để biết thêm về tạo hình ảnh.

Tổng kết

Puter.js là cách nhanh để đưa Gemini vào ứng dụng browser-first mà không cần Google Cloud project, API key hoặc backend proxy. Với một thẻ script, bạn có thể gọi google/gemini-2.5-flash, stream phản hồi, gửi input hình ảnh và xây dựng hội thoại nhiều lượt.

Nếu bạn cần server-side jobs, fine-tuning, code execution hoặc ngữ cảnh Gemini cực dài, hãy dùng API Gemini chính thức. Nếu bạn đang xây dựng prototype, hackathon app, static site hoặc ứng dụng miễn phí công khai, Puter là lựa chọn triển khai nhanh hơn.

Bạn cũng có thể xây dựng request trong Apidog, so sánh luồng Puter với API chính thức và chọn hướng phù hợp cho sản phẩm.

Top comments (0)