Chuyển đến nội dung chính

Xây dựng ứng dụng AI đa phương thức với Gemini 2.0 Pro

Xây dựng ứng dụng chat có thể hiểu văn bản, hình ảnh, âm thanh và tài liệu, đồng thời thực thi mã Python. Thực sự là một ứng dụng đa phương thức tiến gần hơn tới AGI.
Đã cập nhật 5 thg 10, 2026  · 11 phút đọc

Khám phá cùng AI

ChatGPTClaudePerplexity

Google đã trở lại đường đua AI với việc ra mắt Gemini 2.0 Pro, mô hình tối tân nhất của họ tính đến nay. Hiện mô hình đang trong giai đoạn thử nghiệm, nghĩa là chỉ nhà phát triển mới có thể truy cập qua API. 

Gemini 2.0 Pro vượt trội về hiệu năng lập trình và có khả năng xử lý các prompt phức tạp với tư duy nâng cao và hiểu biết về thế giới. Mô hình sở hữu cửa sổ ngữ cảnh khổng lồ 2 triệu token, cho phép xử lý và phân tích lượng thông tin rất lớn. Nó cũng có khả năng sử dụng các công cụ như Google Search và thực thi mã, giúp tăng tính linh hoạt.

Trong hướng dẫn này, chúng ta sẽ học cách truy cập các tính năng khác nhau của Gemini 2.0 Pro thông qua gói GenAI Python mới của Google. Sau đó, chúng ta sẽ xây dựng một ứng dụng Gradio để bất kỳ ai cũng có thể truy cập và trải nghiệm các tính năng này bằng các nút bấm. Cuối cùng, chúng ta sẽ triển khai ứng dụng lên Space để công khai cho mọi người dùng.

Bạn có thể xem hướng dẫn của chúng tôi về Gemini 2.0 Flash Thinking Experimental để xem mô hình cạnh tranh với dòng o-series của OpenAI và dòng R-series của DeepSeek. Và để tìm hiểu thêm về cách xây dựng ứng dụng đa phương thức với Gemini 2.0, tôi khuyến nghị bài hướng dẫn của Adel Nehme:

Ứng dụng đa phương thức với Gemini 2.0 | Xây dựng công cụ sáng tạo nội dung YouTube cục bộ

Thiết lập Gemini 2.0 Pro

Hiện tại, Gemini 2.0 Pro chỉ có thể truy cập qua Google AI Studio, yêu cầu đăng nhập bằng tài khoản Google. Để bắt đầu, hãy làm theo các bước sau:

1. Đăng nhập Google AI Studio

Truy cập trang Google AI Studio và đăng nhập bằng thông tin tài khoản Google của bạn. Sau khi đăng nhập, bạn sẽ được chuyển đến bảng điều khiển của Google AI Studio.

2. Tạo khóa API

  • Trên bảng điều khiển, tìm và nhấp vào nút “Get API Key” ở góc trên bên trái.
  • Tiếp theo, nhấp nút “Create API Key” để tạo khóa API đầu tiên của bạn.

Google Studio Generate API key

Nguồn: Google AI Studio 

3. Thiết lập biến môi trường

Tạo một biến môi trường tên là GEMINI_API_KEY và gán giá trị là khóa API bạn vừa tạo.

4. Cài đặt các gói Python cần thiết

Cài đặt các gói Python cần thiết bằng cách chạy lệnh sau trong terminal:

pip install google-genai 
pip install gradio

Kiểm thử các tính năng của Gemini 2.0 Pro

Bây giờ, chúng ta sẽ dùng client Python của Gemini để truy cập các tính năng khác nhau của mô hình Gemini 2.0 Pro. Các tính năng này gồm hiểu văn bản, xử lý hình ảnh, phân tích âm thanh và hiểu tài liệu. 

Ngoài ra, chúng ta sẽ kiểm thử tính năng thực thi mã, cho phép tạo mã và chạy trực tiếp trong nhân Python trên đám mây.

1. Sinh văn bản

Chúng ta sẽ tải khóa API từ biến môi trường và khởi tạo client bằng khóa đó. Client này sẽ đóng vai trò giao diện để truy cập các mô hình và tính năng.

Tiếp theo, chúng ta đưa cho mô hình một câu hỏi và tạo phản hồi dạng streaming. Nghĩa là ngay khi token được tạo, chúng sẽ hiển thị dần trong terminal, cung cấp phản hồi theo thời gian thực.

import os
from google import genai

API_KEY = os.environ.get("GEMINI_API_KEY")

client = genai.Client(api_key=API_KEY)

response = client.models.generate_content_stream(
    model="gemini-2.0-pro-exp-02-05",
    contents=["Explain how Stock Market works"])
for chunk in response:
    print(chunk.text, end="")

Mô hình đã tạo ra một phản hồi chi tiết và chính xác. 

The stock market is a complex system, but here's a breakdown of how it works in a simplified way, covering the key concepts:

**1. What are Stocks (Shares)?**

*   **Ownership:** Stocks, also called shares or equities, represent ownership in a company.  When you buy a stock, you're buying a tiny piece of that company.
*   **Claim on Assets and Earnings:** As a shareholder, you have a claim on the company's assets and earnings.  You're entitled to a portion of the company's profits (often distributed as dividends, though not always) and, in theory, a share of the company's value if it were to be liquidated.
*   **Voting Rights (Sometimes):**  Many stocks (but not all) come with voting rights, allowing you to have a say in certain company decisions (like electing the board of directors).

**2. Why Companies Issue Stock (Go Public)?**

2. Hiểu hình ảnh

Để hiểu hình ảnh, chúng ta sẽ tải ảnh bằng thư viện Pillow trong Python và thêm vào đối số contents. contents sẽ gồm các câu hỏi về hình cùng với đối tượng hình ảnh.

from google import genai
from google.genai import types

import PIL.Image

image = PIL.Image.open('image.png')

response = client.models.generate_content_stream(
    model="gemini-2.0-pro-exp-02-05",
    contents=["Explain the image", image])

for chunk in response:
    print(chunk.text, end="")

Mô hình đã hiểu chính xác hình ảnh và cung cấp cả những chi tiết nhỏ. 

The image is a stylized, abstract graphic. It looks like a simplified diagram or node network, with a black background.

Here's a breakdown:

*   **Nodes:**  There are four circular nodes.  Each node is a different color:
    *   Light Blue (Top Left)
    *   Light Green (Bottom Left)
    *   White (Top Right)
    *    Red (Bottom Right)
*    **Node outline:** There is a thick outline around each of the circles.
*  **Shadow:** Each circle appears to be casting a white shadow.

3. Hiểu âm thanh

Gemini 2.0 Pro có thể hiểu âm thanh trực tiếp mà không cần chuyển thành văn bản. Chỉ cần tải tệp âm thanh và cung cấp nó cho đối số content cùng với câu hỏi liên quan.

with open('audio.wav', 'rb') as f:
    audio_bytes = f.read()

response = client.models.generate_content_stream(
  model='gemini-2.0-pro-exp-02-05',
  contents=[
    'Describe this audio',
    types.Part.from_bytes(
      data=audio_bytes,
      mime_type='audio/wav',
    )
  ]
)

for chunk in response:
    print(chunk.text, end="")

Một lần nữa, mô hình đưa ra mô tả âm thanh rất chính xác. 

The audio appears to be a collection of short, spoken phrases or sentences. There is only one speaker, a male, and he seems to be reading or reciting these phrases, possibly as part of a list or exercise. The content focuses on food and related concepts like smell and temperature.

4. Hiểu tài liệu

Thay vì dùng Langchain hay bất kỳ khung RAG nào, chúng ta có thể cung cấp tài liệu cho Gemini 2.0 Pro để mô hình phân tích và lập chỉ mục, cho phép bắt đầu đặt câu hỏi về chúng. 

Chúng ta đã tải một tệp PDF và đặt câu hỏi dựa trên nội dung của nó. Đơn giản vậy thôi.

from google import genai
from google.genai import types
import pathlib

prompt = "What the document is about"
response = client.models.generate_content_stream(
  model="gemini-2.0-pro-exp-02-05",
  contents=[
      types.Part.from_bytes(
        data=pathlib.Path('cv.pdf').read_bytes(),
        mime_type='application/pdf',
      ),
      prompt])

for chunk in response:
    print(chunk.text, end="")

Kết quả là mô hình mô tả chính xác nội dung tổng quan của tài liệu.

Based on the OCR output, the document is **Abid Ali Awan's Curriculum Vitae (CV) or resume**. It details his:

*   **Contact Information:** Name, address, email, and phone number.
*   **Work Experience:** A chronological list of his professional roles, including job titles, companies, locations, dates of employment, and brief descriptions of his responsibilities. This includes experience in data science, freelancing, research, media, and network engineering.
*   **Education:** His academic background, listing degrees earned, institutions attended, graduation dates, GPAs, and areas of specialization.
*    **Gap Year:** Explaining the time that have taken for medical/personal issues.
*   **Professional Skills:** A list of his technical and soft skills, categorized and rated

5. Sinh và thực thi mã

Điểm nổi bật nhất của Gemini API là bạn có thể sinh mã và thực thi ngay bằng cùng một API. Điều này có nghĩa mã sẽ được tạo và kiểm thử; nếu có lỗi, mô hình sẽ sửa lỗi và chạy lại cho đến khi tạo ra kết quả đúng.

Chúng ta đã hỏi Gemini 2.0 Pro một câu hỏi về lập trình và yêu cầu thực thi mã ở cuối. Nếu bạn nhìn vào đối số config, bạn sẽ thấy chúng ta đã thêm công cụ thực thi mã để chạy mã trên đám mây.

from google import genai
from google.genai import types
from IPython.display import Markdown, HTML, Image, display

response = client.models.generate_content(
  model='gemini-2.0-pro-exp-02-05',
  contents="""
  Write a Python program to calculate the sum of the first 50 prime numbers. The program should:
   - Use a function to check if a number is prime.
   - Use another function to find and sum the first n prime numbers, where n is 50 in this case.
   - Ensure the code is efficient and readable.
   - Print the result clearly.
After writing the code, execute it to verify that the sum of the first 50 prime numbers is correct.
  """,
  config=types.GenerateContentConfig(
    tools=[types.Tool(
      code_execution=types.ToolCodeExecution
    )]
  )
)

def display_code_execution_result(response):
  for part in response.candidates[0].content.parts:
    if part.text is not None:
      display(Markdown(part.text))
    if part.executable_code is not None:
      code_html = f'<pre style="background-color: green;">{part.executable_code.code}</pre>' # Change code color
      display(HTML(code_html))
    if part.code_execution_result is not None:
      display(Markdown(part.code_execution_result.output))
    if part.inline_data is not None:
      display(Image(data=part.inline_data.data, format="png"))
    display(Markdown("---"))

display_code_execution_result(response)

Mô hình đã tạo mã nhưng chưa chạy được. Sau đó, nó tự sửa lỗi, chạy lại mã và hiển thị kết quả thành công. 

Gemini 2.0 code generation

Xây dựng ứng dụng Gemini 2.0 Pro

Giờ chúng ta sẽ xây dựng một ứng dụng web Gradio tích hợp tất cả các tính năng đã kiểm thử trước đó. Nhờ vậy, bất kỳ ai cũng có thể thử bằng cách tải tệp lên và đặt câu hỏi về hình ảnh, âm thanh, tài liệu, thậm chí thực thi mã. 

Mã cho app.py có trong kho GitHub Gemini-2-Pro-Chat. Bạn có thể xem để hiểu cách từng tính năng được triển khai.

Tóm lại, ứng dụng gồm có:

  • Xử lý đầu vào đa phương thức: Chatbot có thể xử lý văn bản, hình ảnh, âm thanh và tài liệu.
  • Sinh phản hồi động: Stream phản hồi bằng phương thức generate_content_stream từ Google GenAI.
  • Thực thi mã: Người dùng có thể sinh mã và yêu cầu chatbot thực thi mã rồi trả về kết quả.
  • Xử lý hình ảnh và âm thanh: Hình ảnh được thay đổi kích thước và chuyển sang base64 để nhúng vào HTML, trong khi tệp âm thanh được mã hóa và hiển thị với trình phát.
  • Tải tài liệu: Tệp PDF được xử lý và thêm vào lịch sử hội thoại.

Gemini-2-Pro-Chat code

Sau khi sao chép mã từ kho từ xa vào dự án cục bộ, bạn có thể chạy nó tại máy.

python app.py

Running locally

Kiểm thử ứng dụng Gemini 2.0 Pro

Chúng ta sẽ kiểm thử ứng dụng web để đảm bảo mọi thứ hoạt động đúng. Chúng ta sẽ đi qua từng tính năng bằng giao diện người dùng của ứng dụng web.

1. Gõ câu hỏi và nhấn phím [Enter]. Phản hồi sẽ bắt đầu được tạo và bạn sẽ có câu trả lời chỉ sau vài giây.

Testing the Gemini 2.0 Pro multi-modal chatbot

2. Để tải ảnh, nhấp nút “Upload Images” và chọn tệp từ thư mục. Sau đó đặt câu hỏi về ảnh, Gemini 2.0 Pro sẽ bắt đầu tạo phản hồi chính xác và rất chi tiết.

3. Tải âm thanh bằng cách nhấp “Upload Audio” và chọn tệp âm thanh. Sau đó đặt câu hỏi về âm thanh. Mô hình sẽ đưa ra phản hồi rất chính xác. 

Uploading audio to Gemini 2.0

4. Bạn cũng có thể tải tài liệu. Tải tệp PDF bằng cách nhấp “Upload Documents” và chọn tệp. Sau đó đặt câu hỏi về tài liệu.

Uploading documents to Gemini 2.0 pro

5. Thực thi mã hơi khác một chút. Tính năng này không có lịch sử để tránh xung đột, nghĩa là bạn cần yêu cầu sinh mã và thực thi trong cùng một prompt. 

Ví dụ, chúng ta yêu cầu sinh và thực thi đoạn mã Python mẫu để tạo ảnh ngẫu nhiên định dạng PNG, rồi nhấn nút “Run Code Execution”.

Gemini 2.0 Pro code execution

Chỉ trong vài giây, mô hình đã sinh mã, chạy và hiển thị hình ảnh trong ô chat.

Gemini 2.0 Pro code output

Tính năng thực thi mã cũng cung cấp phần kết luận ở cuối.

Gemini 2.0 Pro code conclusion

Triển khai ứng dụng Gemini 2.0 Pro

Hãy triển khai ứng dụng lên đám mây bằng Hugging Face Spaces. Truy cập Hugging Face Spaces và nhấp nút “+ New Space”. Nhập tên, mô tả và giấy phép cho space, đồng thời chọn SDK là Gradio.

Deploying Gemini 2.0 Pro app

Nguồn: Hugging Face

Sau khi tạo space, bạn sẽ nhận hướng dẫn về cách clone kho lưu trữ:

git clone https://huggingface.co/spaces/kingabzpro/Gemini-2-Pro-Chat
cd Gemini-2-Pro-Chat

Trong kho cục bộ, tạo tệp requirements.txt và thêm phụ thuộc Python sau:

google-genai==1.0.0

Tiếp theo, sửa tệp README.md để bao gồm nội dung sau:

---
title: Gemini 2 Pro Chat
emoji: ♊💬
colorFrom: green
colorTo: pink
sdk: gradio
sdk_version: 5.15.0
app_file: app.py
pinned: false
license: mit
short_description: 'Image, Audio, and Document understanding + Code Execution. '
---

Sau đó, thêm tệp app.py vào kho. Stage các thay đổi, commit và đẩy cập nhật lên kho từ xa:

git add .
git commit -m "deploying the app"   
git push 

Khi bạn đẩy các commit, bạn sẽ thấy space của mình đang dựng ảnh Docker và cài đặt các phụ thuộc.

Docker image and installing the dependencies

Nguồn: Gemini 2 Pro Chat

Sau khi mọi thứ hoàn tất, bạn có thể gặp thông báo lỗi. Đừng lo; đó là do thiếu biến môi trường mà chúng ta sẽ thêm trong Spaces.

Error message

Nguồn: Gemini 2 Pro Chat

Vào cài đặt Space của bạn và cuộn xuống phần "Variables and Secrets". Tạo secret mới bằng cách nhấp nút “New Secret”. Cung cấp tên và khóa API Gemini của bạn.

Create a new secret in Hugging Face Spaces

Nguồn: Gemini 2 Pro Chat

Sau khi thêm secret, space sẽ tự khởi động lại và ứng dụng của bạn sẽ chạy mượt mà, tương tự như khi chạy cục bộ.

Gemini 2.0 Pro app running

Nguồn: Gemini 2 Pro Chat

Kết luận

Việc xây dựng ứng dụng AI hiệu năng cao đã trở nên dễ dàng hơn đáng kể với API Gemini 2.0 Pro mới và các tính năng nâng cao của nó. Thay vì cài đặt nhiều gói Python để xử lý hình ảnh, âm thanh hoặc tài liệu, bạn chỉ cần cung cấp các đầu vào này cho endpoint API. Mô hình sẽ tạo kết quả trong vài giây, giúp quy trình liền mạch và hiệu quả.

Hiện quyền truy cập Gemini 2.0 Pro miễn phí nhưng giới hạn 50 yêu cầu mỗi ngày. Tuy nhiên, cần lưu ý rằng API không nên dùng cho mục đích thương mại để tránh nguy cơ bị khóa tài khoản.

Trong hướng dẫn này, chúng ta đã khám phá mô hình Gemini 2.0 Pro tối tân và các tính năng của nó. Chúng ta đã kiểm thử trong Jupyter Notebooks và tích hợp vào một ứng dụng Gradio. Cuối cùng, chúng ta đã triển khai ứng dụng lên đám mây để công khai cho mọi người dùng.

Nếu bạn muốn tìm hiểu thêm về việc tạo ứng dụng ứng dụng AI, hãy xem lộ trình kỹ năng Developing AI Applications để tìm hiểu về những công cụ dành cho nhà phát triển AI mới nhất.


Abid Ali Awan's photo
Author
Abid Ali Awan
LinkedIn
Twitter

Là một nhà khoa học dữ liệu được chứng nhận, tôi đam mê tận dụng công nghệ tiên tiến để tạo ra các ứng dụng học máy đổi mới. Với nền tảng vững chắc về nhận dạng giọng nói, phân tích và báo cáo dữ liệu, MLOps, AI hội thoại và NLP, tôi đã rèn giũa kỹ năng phát triển các hệ thống thông minh có thể tạo ra tác động thực sự. Bên cạnh chuyên môn kỹ thuật, tôi cũng là một người truyền đạt tốt, có khả năng chắt lọc các khái niệm phức tạp thành ngôn ngữ rõ ràng, súc tích. Nhờ đó, tôi trở thành một blogger được nhiều người quan tâm trong lĩnh vực khoa học dữ liệu, chia sẻ góc nhìn và kinh nghiệm với cộng đồng các chuyên gia dữ liệu ngày càng lớn. Hiện tại, tôi tập trung vào sáng tạo và biên tập nội dung, làm việc với các mô hình ngôn ngữ lớn để phát triển nội dung mạnh mẽ và hấp dẫn, giúp doanh nghiệp và cá nhân tận dụng tối đa dữ liệu của mình.

Chủ đề
Trí tuệ Nhân tạo
Mô hình Ngôn ngữ Lớn

Khóa học hàng đầu trên DataCamp

Lộ trình

Phát triển các mô hình ngôn ngữ quy mô lớn

16 giờ
Học cách phát triển các mô hình ngôn ngữ lớn (LLMs) bằng PyTorch và Hugging Face, áp dụng các kỹ thuật học sâu và xử lý ngôn ngữ tự nhiên (NLP) tiên tiến nhất.
Xem chi tiếtRight Arrow
Bắt Đầu Khóa Học
Xem thêmRight Arrow
Liên quan

blog

Claude Opus 4.6: Tính năng, Điểm chuẩn, Bài kiểm tra thực hành và hơn thế nữa

Mô hình mới nhất của Anthropic dẫn đầu ở mã hóa tác tử và lập luận phức tạp. Thêm vào đó, nó có cửa sổ ngữ cảnh 1M.
Matt Crabtree's photo

Matt Crabtree

10 phút

Xem ThêmXem Thêm