X

Gemini API: Hướng dẫn lập trình AI với Gemini API bằng Python

Giới thiệu về Gemini API

Gemini API là một giao diện lập trình ứng dụng (API) do Google cung cấp, cho phép các nhà phát triển tích hợp mô hình trí tuệ nhân tạo (AI) Gemini vào các ứng dụng của họ. Gemini là một mô hình AI đa phương tiện tiên tiến, có khả năng xử lý và tạo nội dung từ văn bản, hình ảnh và âm thanh, mang đến những khả năng mới cho các ứng dụng của bạn. Hướng dẫn này sẽ giúp bạn từng bước lập trình với Gemini API bằng Python, từ việc thiết lập môi trường đến sử dụng các tính năng nâng cao như streaming, chat và embeddings.

Cài đặt và Sử dụng Cơ Bản

Để bắt đầu, bạn cần cài đặt gói Python google-genai và lấy API key từ Google AI Studio. Sau đó, bạn có thể tạo nội dung từ một prompt đơn giản hoặc xử lý đầu vào đa phương tiện như hình ảnh và văn bản. Ví dụ, để tạo văn bản, bạn có thể dùng mã sau:

from google import genai
client = genai.Client(api_key=os.environ["GOOGLE_API_KEY"])
response = client.models.generate_content(model='gemini-2.0-flash', contents='Kể một câu chuyện ngắn.')
print(response.text)

Đối với hình ảnh, bạn cần tạo một PromptPart và gửi cùng prompt văn bản, như được giải thích trong phần chi tiết dưới đây.

Tính Năng Nâng Cao và Mẹo

Gemini API hỗ trợ streaming để nhận phản hồi từng phần, hữu ích cho các tác vụ dài, và tính năng chat để tạo các cuộc hội thoại. Bạn cũng có thể sử dụng embeddings cho các tác vụ như tìm kiếm semantic, nhưng cần lưu ý chọn mô hình phù hợp như 'text-embedding-005'. Một mẹo quan trọng là quản lý API key an toàn qua biến môi trường và tối ưu hóa prompt để đạt kết quả tốt nhất.

Báo cáo Chi tiết về Hướng Dẫn Lập Trình AI với Gemini API Bằng Python

Gemini API là một giao diện lập trình ứng dụng (API) do Google cung cấp, cho phép các nhà phát triển tích hợp mô hình trí tuệ nhân tạo (AI) Gemini vào các ứng dụng của họ. Gemini là một mô hình AI đa phương tiện tiên tiến, có khả năng xử lý và tạo ra nội dung từ văn bản, hình ảnh và âm thanh. Với Gemini API, bạn có thể tận dụng sức mạnh của AI để cung cấp các trải nghiệm người dùng độc đáo và tự động hóa các quy trình trong ứng dụng của mình. Hướng dẫn này được thiết kế để đăng lên các blog công nghệ, tối ưu hóa cho SEO, và cung cấp hướng dẫn chi tiết từng bước để lập trình với Gemini API bằng Python, phù hợp cho cả người mới bắt đầu và nhà phát triển có kinh nghiệm.

Chuẩn Bị Môi Trường Phát Triển

Để bắt đầu sử dụng Gemini API với Python, bạn cần thực hiện các bước sau:

1. Cài Đặt Gói Python

Gemini API cung cấp một gói Python để tương tác với API. Gói mới nhất là google-genai, được khuyến nghị sử dụng cho các mô hình Gemini 2.0. Bạn có thể cài đặt nó bằng pip:

pip install -U -q "google-genai"

Gói này hỗ trợ các tính năng mới như streaming audio và video, sử dụng công cụ (code execution, function calling) và tạo media (Imagen), đảm bảo tương thích với tất cả các mô hình Gemini API.

2. Lấy API Key

Để sử dụng Gemini API, bạn cần có một API key. Bạn có thể tạo API key từ Google AI Studio:

  • Truy cập Google AI Studio.
  • Đăng nhập với tài khoản Google của bạn.
  • Chọn "API keys" từ menu bên trái.
  • Nhấn "Create API key" để tạo một API key mới.
  • Lưu API key của bạn an toàn, vì bạn sẽ sử dụng nó để xác thực các yêu cầu API.
3. Cấu Hình API Key Trong Python

Sau khi có API key, bạn có thể cấu hình nó trong Python bằng cách sử dụng biến môi trường hoặc trực tiếp trong mã. Điều này giúp bảo mật API key, tránh việc hardcode trong mã nguồn:

Sử dụng biến môi trường:

export GOOGLE_API_KEY=your_api_key_here

 Hoặc, trong mã Python:

import os
os.environ["GOOGLE_API_KEY"] = "your_api_key_here"

Sau đó, bạn có thể tạo một client để tương tác với API:

from google import genai
client = genai.Client()

 

Lưu ý: Không nên kiểm tra API key vào hệ thống kiểm soát phiên bản (version control) để tránh rủi ro bảo mật.

Sau khi thiết lập, bạn có thể bắt đầu sử dụng Gemini API cho các tác vụ cơ bản như tạo nội dung từ prompt và xử lý đầu vào đa phương tiện.

1. Tạo Nội Dung Từ Một Prompt Đơn Giản

Để tạo nội dung từ một prompt văn bản, bạn có thể sử dụng phương thức generate_content của client. Ví dụ:

response = client.models.generate_content(
    model='gemini-2.0-flash',
    contents='Kể một câu chuyện ngắn về một chú mèo.'
)
print(response.text)

Tham số model: Tên của mô hình Gemini bạn muốn sử dụng. Ví dụ, 'gemini-2.0-flash' là một mô hình nhanh và hiệu quả, phù hợp cho các tác vụ đơn giản. Các mô hình khác bao gồm 'gemini-2.0-pro', mạnh mẽ hơn cho các tác vụ phức tạp.

Tham số contents: Prompt văn bản để mô hình xử lý.

Danh sách các mô hình có sẵn được liệt kê tại Gemini models, bao gồm Gemini 1.5 Flash, Gemini 1.5 Pro, và các phiên bản mới nhất như Gemini 2.0 Flash và Pro, với các tính năng như bidirectional streaming và tool use.

2. Xử Lý Đầu Vào Đa Phương Tiện (Văn Bản và Hình Ảnh)

Gemini có thể xử lý đầu vào đa phương tiện, bao gồm văn bản và hình ảnh. Để gửi một hình ảnh cùng với prompt văn bản, bạn cần tạo một PromptPart cho hình ảnh. Ví dụ:

 

from google.genai.types import PromptPart, PromptPartData

# Load the image from a file
with open('path/to/your/image.jpg', 'rb') as f:
    image_bytes = f.read()

# Create a part for the image
image_part = PromptPart(
    data=PromptPartData(
        type='image/jpeg',
        data=image_bytes,
    )
)

# Generate content with the image and a text prompt
response = client.models.generate_content(
    model='gemini-2.0-pro',
    contents=[image_part, 'Mô tả hình ảnh này.']
)
print(response.text)

 

PromptPart: Đối tượng để đại diện cho một phần của prompt, có thể là văn bản hoặc tệp tin.

PromptPartData: Chứa thông tin về loại (type) và dữ liệu (data) của phần prompt.

Lưu ý: Thêm nhiều hình ảnh vào yêu cầu có thể tăng độ trễ phản hồi, như được ghi nhận trong tài liệu Generate content with Gemini.

Tính Năng Nâng Cao

Gemini API cung cấp nhiều tính năng nâng cao để mở rộng khả năng ứng dụng, bao gồm streaming, chat và embeddings.

1. Streaming Responses

Bạn có thể stream kết quả từ mô hình để xem phản hồi từng phần, đặc biệt hữu ích cho các prompt dài hoặc yêu cầu phản hồi nhanh. Ví dụ:

for chunk in client.models.generate_content_stream(
    model='gemini-2.0-flash',
    contents='Kể một câu chuyện dài 300 từ về một chuyến phiêu lưu.'
):
    print(chunk.text, end='')

 

  • Streaming cho phép bạn nhận dữ liệu từng phần, cải thiện trải nghiệm người dùng cho các ứng dụng thời gian thực.
  • Phương thức generate_content_stream được hỗ trợ trong SDK mới, đảm bảo tương thích với các mô hình Gemini 2.0.

2. Tính Năng Chat

Gemini API hỗ trợ tính năng chat, cho phép bạn tạo các session chat và trao đổi tin nhắn, phù hợp cho các ứng dụng chatbot. Ví dụ

# Create a chat session
chat = client.chats.create(model='gemini-2.0-flash')

# Send a message
response = chat.send_message(message='Xin chào, bạn khỏe không?')
print(response.text)

# Send another message
response = chat.send_message(message='Thời tiết hôm nay thế nào?')
print(response.text)
  • Tính năng chat hỗ trợ multi-turn conversations, duy trì ngữ cảnh qua các tin nhắn, giúp tạo ra các cuộc hội thoại tự nhiên hơn.
  • Bạn có thể sử dụng chat.send_message để tiếp tục cuộc trò chuyện, với mỗi tin nhắn được xử lý dựa trên lịch sử trước đó.

3. Sử Dụng Embeddings

Embeddings là các biểu diễn số của dữ liệu văn bản hoặc hình ảnh, có thể được sử dụng cho các tác vụ như tìm kiếm semantic, phân loại hoặc clustering. Trong SDK mới, bạn có thể sử dụng phương thức embed_content để tạo embeddings. Ví dụ:

response = client.models.embed_content(
    model='text-embedding-005',
    contents=['Văn bản của bạn ở đây']
)
print(response.embeddings[0].values)​
  • Lưu ý: Model 'text-embedding-005' là một mô hình riêng cho embeddings, khác với các mô hình Gemini chính, và được hỗ trợ qua Vertex AI.
  • Embeddings có thể được sử dụng trong các ứng dụng như tìm kiếm tài liệu, như được giải thích trong Get text embeddings.

Các Thực Hành Tốt và Mẹo

Để tối ưu hóa việc sử dụng Gemini API, hãy tuân theo các thực hành tốt sau:

1. Chọn Mô Hình Phù Hợp

  • 'gemini-2.0-flash': Nhanh và hiệu quả, phù hợp cho các tác vụ đơn giản như tạo văn bản ngắn.
  • 'gemini-2.0-pro': Mạnh mẽ hơn, phù hợp cho các tác vụ phức tạp như lập trình hoặc xử lý prompt dài.
  • Kiểm tra Gemini models để biết thêm chi tiết về các mô hình và tính năng của chúng.

2. Quản Lý API Key An Toàn

Không chia sẻ API key của bạn trên các nền tảng công cộng.

Sử dụng biến môi trường để lưu API key thay vì hardcode trong mã, như:

export GOOGLE_API_KEY=your_api_key_here
  • Điều này giúp bảo vệ tài khoản của bạn và tuân thủ các chính sách bảo mật.

3. Xử Lý Giới Hạn Tốc Độ

  • Gemini API có giới hạn tốc độ, ví dụ, 60 yêu cầu mỗi phút cho mô hình Gemini-Pro.
  • Sử dụng các chiến lược retry để xử lý các lỗi do giới hạn tốc độ, như được đề cập trong Gemini API quickstart.

4. Tối Ưu Hóa Prompt

  • Cung cấp prompt rõ ràng và cụ thể để có kết quả tốt hơn, ví dụ: thay vì "Kể chuyện", hãy nói "Kể một câu chuyện ngắn 100 từ về một chú chó".
  • Thử nghiệm với các prompt khác nhau để tìm ra cách tốt nhất, như được hướng dẫn trong File prompting strategies.

5. Xử Lý Lỗi

  • Kiểm tra các phản hồi từ API để xử lý các lỗi có thể xảy ra, như lỗi xác thực hoặc giới hạn tốc độ.
  • Sử dụng try-except để bắt các ngoại lệ và xử lý chúng phù hợp, ví dụ:
try:
    response = client.models.generate_content(model='gemini-2.0-flash', contents='Kể chuyện.')
    print(response.text)
except Exception as e:
    print(f"Đã xảy ra lỗi: {e}")

Tài Nguyên Để Học Tập Thêm

Để tìm hiểu sâu hơn về Gemini API và phát triển AI với Python, bạn có thể tham khảo các tài nguyên sau:

Bảng Tổng Kết Các Mô Hình Gemini

Dưới đây là bảng tổng kết các mô hình Gemini phổ biến và ứng dụng của chúng:

Mô Hình Đặc Điểm Ứng Dụng Tốt Nhất
gemini-2.0-flash Nhanh, hiệu quả, hỗ trợ streaming Tạo văn bản ngắn, ứng dụng thời gian thực
gemini-2.0-pro Mạnh mẽ, context window 2M tokens Lập trình, xử lý prompt phức tạp
gemini-1.5-flash Nhanh, đa phương tiện Xử lý hình ảnh và văn bản cơ bản
gemini-1.5-pro Trung bình, lý tưởng cho reasoning Tìm kiếm semantic, phân loại

Kết Luận

Hướng dẫn này cung cấp một lộ trình chi tiết để bạn bắt đầu lập trình với Gemini API bằng Python, từ cài đặt đến sử dụng các tính năng nâng cao. Bằng cách tuân theo các bước và mẹo trên, bạn có thể tận dụng tối đa khả năng của Gemini API, tạo ra các ứng dụng AI sáng tạo và hiệu quả. Đừng quên thường xuyên kiểm tra tài liệu chính thức để cập nhật các thay đổi mới nhất, đặc biệt là với các phiên bản SDK và mô hình mới.