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

Giới thiệu Google Gemini API: Khám phá sức mạnh của các mô hình Gemini AI mới

Tìm hiểu cách sử dụng Gemini Python API và các hàm của nó để xây dựng ứng dụng hỗ trợ AI miễn phí.
· 13 phút đọc

Khám phá cùng AI

Google Bard đang đối mặt với sự cạnh tranh ngày càng tăng từ ChatGPT, nhưng với việc ra mắt các mô hình Gemini AI mới nhất, họ kỳ vọng sẽ lấy lại chỗ đứng trên thị trường. Nhằm cải thiện trải nghiệm người dùng, gần đây Google đã làm mới trợ lý Bard AI với các mô hình Gemini Pro, giúp người dùng dễ dàng nhập cả văn bản và hình ảnh để nhận phản hồi chính xác và tự nhiên hơn.

Trong hướng dẫn này, chúng ta sẽ khám phá Google Gemini API, cho phép bạn tạo các ứng dụng tiên tiến dựa trên AI. Bằng cách tận dụng các khả năng mạnh mẽ của nó, bạn có thể dễ dàng kết hợp cả đầu vào văn bản và hình ảnh để tạo ra các đầu ra chính xác và phù hợp với ngữ cảnh. Gemini Python API đơn giản hóa việc tích hợp vào các dự án hiện có của bạn, cho phép triển khai liền mạch các tính năng trí tuệ nhân tạo tiên tiến.

Gemini AI là gì?

Gemini AI là một mô hình trí tuệ nhân tạo tiên tiến được tạo ra nhờ nỗ lực chung của nhiều nhóm trong Google, như Google Research và Google DeepMind. Được thiết kế theo hướng đa phương thức, Gemini AI có thể hiểu và xử lý nhiều dạng dữ liệu, bao gồm văn bản, mã, âm thanh, hình ảnh và video.

Nỗ lực theo đuổi trí tuệ nhân tạo của Google DeepMind từ lâu đã được thúc đẩy bởi kỳ vọng sử dụng các năng lực này vì lợi ích chung của nhân loại. Trên tinh thần đó, Gemini AI đã có những bước tiến đáng kể trong việc tạo ra một thế hệ mô hình AI mới lấy cảm hứng từ cách con người cảm nhận và tương tác với thế giới.

Là mô hình AI tinh vi và lớn nhất mà Google từng sản xuất cho đến nay, Gemini AI được thiết kế để có tính linh hoạt cao và xử lý đa dạng các loại thông tin. Tính đa dụng của nó cho phép chạy hiệu quả trên nhiều hệ thống, từ các máy chủ trung tâm dữ liệu mạnh mẽ đến thiết bị di động.

Dưới đây là ba phiên bản của các mô hình Gemini được huấn luyện cho các trường hợp sử dụng cụ thể:

  1. Gemini Ultra: Phiên bản tiên tiến nhất, có khả năng xử lý các tác vụ phức tạp.
  2. Gemini Pro: Lựa chọn cân bằng, mang lại hiệu năng tốt và khả năng mở rộng.
  3. Gemini Nano: Tối ưu cho thiết bị di động, đem lại hiệu suất tối đa.

Gemini Ultra vs GPT4

Hình ảnh nguồn

Trong số các biến thể này, Gemini Ultra thể hiện hiệu năng vượt trội, vượt qua GPT-4 ở nhiều tiêu chí. Đây là mô hình đầu tiên vượt qua các chuyên gia con người trên thước đo Massive Multitask Language Understanding, đánh giá kiến thức thế giới và khả năng giải quyết vấn đề trên 57 lĩnh vực. Thành tựu này cho thấy khả năng hiểu và giải quyết vấn đề vượt trội của Gemini Ultra.

Nếu bạn mới làm quen với Trí tuệ nhân tạo, hãy khám phá lộ trình kỹ năng AI Fundamentals. Lộ trình bao quát các chủ đề AI phổ biến như ChatGPT, mô hình ngôn ngữ lớn và generative AI.

Thiết lập môi trường

Trước khi bắt đầu sử dụng API, chúng ta cần lấy khóa API từ Google AI for Developers.

1. Nhấp vào nút “Get an API key”.

image1.png

2. Sau đó, tạo dự án và tạo khóa API.

image16.png

3. Sao chép khóa API và thêm một biến môi trường có tên "Gemini_API_KEY" trong hệ thống của bạn. Để tạo biến môi trường an toàn trên Kaggle, vào "Add-ons" và chọn "Secrets". Sau đó, nhấp vào nút "Add a new secret" để thêm nhãn và giá trị tương ứng, rồi lưu lại.

image6.png

4. Cài đặt gói Gemini Python API bằng pip.

%pip install google-generativeai

5. Cấu hình Gemini API bằng cách thêm khóa API. Để truy cập secret bạn phải tạo đối tượng UserSecretsClient rồi cung cấp nhãn cho nó.

import google.generativeai as genai
from kaggle_secrets import UserSecretsClient

user_secrets = UserSecretsClient()
gemini_key = user_secrets.get_secret("GEMINI_API_KEY")

genai.configure(api_key = gemini_key)

Tạo phản hồi

Trong phần này, chúng ta sẽ học cách tạo phản hồi bằng mô hình Gemini Pro. Nếu bạn gặp vấn đề khi tự chạy mã, bạn có thể theo dõi Notebook Kaggle của Gemini API.

Giờ chúng ta sẽ kiểm tra quyền truy cập mô hình khả dụng với API miễn phí. Để làm vậy, chạy đoạn mã dưới đây. Nó sẽ hiển thị các mô hình sinh nội dung được hỗ trợ bằng hàm list_models.

for m in genai.list_models():
    if 'generateContent' in m.supported_generation_methods:
        print(m.name)

Có vẻ như chúng ta chỉ có quyền truy cập vào hai mô hình, "gemini-pro" và "gemini-pro-vision".

models/gemini-pro
models/gemini-pro-vision

Hãy truy cập mô hình "Gemini Pro" và tạo phản hồi bằng cách cung cấp một prompt đơn giản.

model = genai.GenerativeModel('gemini-pro')

response = model.generate_content("Please provide a list of the most influential people in the world.")

print(response.text)

Chúng ta đã có thể tạo ra phản hồi rất chính xác chỉ với vài dòng mã.

image2.png

Gemini AI có thể tạo nhiều phản hồi gọi là ứng viên cho một prompt, cho phép bạn chọn phương án phù hợp nhất. Tuy nhiên, phiên bản miễn phí của API chỉ cung cấp một ứng viên.

response.candidates

image7.png

Đầu ra của chúng ta ở định dạng Markdown. Hãy xử lý bằng công cụ Markdown của IPython. Giờ chúng ta sẽ yêu cầu Gemini tạo mã Python.

from IPython.display import Markdown

response = model.generate_content("Build a simple Python web application.")

Markdown(response.text)

Mô hình đã làm rất tốt. Nó tạo ra hướng dẫn từng bước với giải thích cách xây dựng và chạy một ứng dụng web đơn giản bằng Flask.

image11.png

Streaming

Việc sử dụng streaming rất quan trọng để tăng tốc độ cảm nhận của ứng dụng. Bằng cách bật tham số 'stream', phản hồi sẽ được tạo và hiển thị ngay khi sẵn sàng. Đầu ra sẽ được tạo theo từng phần, vì vậy chúng ta phải lặp qua response.

from IPython.display import display

model = genai.GenerativeModel("gemini-pro")
response = model.generate_content(
    "How can I make authentic Italian pasta?", stream=True
)

for chunk in response:
    display(Markdown(chunk.text))
    display(Markdown("_" * 80))

Mỗi phần được ngăn cách bằng một dòng gạch ngang. Như có thể thấy bên dưới, nội dung của chúng ta được tạo theo từng phần. Streaming trong Gemini API tương tự OpenAI và Anthropic API.

image5.png

Tinh chỉnh phản hồi

Chúng ta có thể điều chỉnh phản hồi được tạo ra để phù hợp với yêu cầu của mình.

Trong ví dụ sau, chúng ta tạo một ứng viên với tối đa 1000 token và nhiệt độ 0,7. Ngoài ra, chúng ta đặt chuỗi dừng, để khi từ "time" xuất hiện trong văn bản sinh ra, quá trình tạo sẽ tự động dừng.

response = model.generate_content(
    'How to be productive during a burnout stage.',
    generation_config=genai.types.GenerationConfig(
        candidate_count=1,
        stop_sequences=['time'],
        max_output_tokens=1000,
        temperature=0.7)
)

Markdown(response.text)

image10.png

Dùng thử Gemini Pro Vision

Trong phần này, chúng ta sẽ dùng Gemini Pro Vision để khai thác khả năng đa phương thức của Gemini AI.

Chúng ta sẽ tải ảnh của Mayumi Maciel từ pexel.com bằng công cụ curl.

!curl -o landscape.jpg "https://images.pexels.com/photos/18776367/pexels-photo-18776367/free-photo-of-colorful-houses-line-the-canal-in-burano-italy.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2"

image3.png

Để nạp và hiển thị hình ảnh trong Kaggle Notebook, chúng ta sẽ dùng gói Python Pillow.

import PIL.Image

img = PIL.Image.open('landscape.jpg')
display(img)

image15.jpg

Để hiểu nội dung của hình ảnh này, trước tiên chúng ta phải nạp mô hình "gemini-pro-vision" và cung cấp cho nó một đối tượng hình ảnh.

model = genai.GenerativeModel('gemini-pro-vision')

response = model.generate_content(img)

Markdown(response.text)

Mô hình đã xác định chính xác địa điểm trong ảnh và cung cấp mô tả.

A beautiful day in Burano, Italy. The colorful houses and the calm water make this a perfect place to relax and enjoy the scenery.

Hãy đưa văn bản prompt và đối tượng hình ảnh vào hàm sinh để hỏi mô hình câu hỏi về bức ảnh.

response = model.generate_content(
    ["Can you provide the exact location with coordinates?", img]
)

Markdown(response.text)
45.4408° N, 12.3150° E

Mô hình đã cung cấp chính xác tọa độ địa điểm, và chúng ta cũng đã xác minh bằng cách thêm tọa độ vào Google Maps.

image13.png

Hội thoại trò chuyện

Bạn có thể trò chuyện với mô hình AI theo cách giữ lại ngữ cảnh đoạn chat, sử dụng lịch sử các cuộc trao đổi trước đó. Nhờ vậy, mô hình có thể ghi nhớ nội dung cuộc trò chuyện và đưa ra phản hồi phù hợp dựa trên các tương tác trước đó.

Chúng ta chỉ cần tạo một đối tượng chat bằng model.start_chat và cung cấp tin nhắn đầu tiên.

model = genai.GenerativeModel('gemini-pro')

chat = model.start_chat(history=[])

chat.send_message("Who created the Mona Lisa?")

for message in chat.history:
    display(Markdown(f'**{message.role}**: {message.parts[0].text}'))

image8.png

Hãy hỏi thêm một câu và hiển thị phản hồi theo định dạng chat.

chat.send_message("What else he created?")

for message in chat.history:
    display(Markdown(f'**{message.role}**: {message.parts[0].text}'))

Mô hình đã ghi nhớ ngữ cảnh và cung cấp phản hồi phù hợp.

image9.png

Embeddings

API cung cấp quyền truy cập vào các mô hình embedding, là công cụ phổ biến cho các ứng dụng nhận biết ngữ cảnh. Với hàm Python đơn giản, người dùng có thể chuyển prompt hoặc nội dung sang embedding, cho phép biểu diễn từ, câu hoặc toàn bộ tài liệu dưới dạng vector đặc, mã hóa ý nghĩa ngữ nghĩa.

Chúng ta sẽ cung cấp cho hàm embed_content tên mô hình, nội dung, loại tác vụ và tiêu đề.

result = genai.embed_content(
    model="models/embedding-001",
    content="Who created the Mona Lisa?",
    task_type="retrieval_document",
    title="Mona Lisa Research")

print(result['embedding'][:10])
[0.086675204, -0.027617611, -0.015689207, -0.00445945, 0.07286186, 0.00017529335, 0.07243656, -0.018299067, 0.018799499, 0.028495966]

Để chuyển nhiều nội dung sang embedding, bạn cần cung cấp một danh sách chuỗi cho tham số 'content'.

result = genai.embed_content(
    model="models/embedding-001",
    content=[
        "Who created the Mona Lisa?",
        "What else he created?",
        "When did he died?"
    ],
    task_type="retrieval_document",
    title="Mona Lisa Research 2")

for emb in result['embedding']:
    print(emb[:10],"\n")
[0.07942627, -0.032543894, -0.010346633, -0.0039942865, 0.071596086, -0.0016670177, 0.07821064, -0.011955016, 0.019478166, 0.03784406] 

[0.027897138, -0.030693276, -0.0012639443, 0.0018902065, 0.07171923, -0.011544562, 0.04235154, -0.024570161, 0.013215181, 0.03026724] 

[0.04341321, 0.013262799, -0.0152797215, -0.009688456, 0.07342798, 0.0033503908, 0.05274988, -0.010907041, 0.05933596, 0.019402765]

Đăng ký khóa học Introduction to Embeddings with the OpenAI API để tìm hiểu về các mô hình embedding cho những ứng dụng AI nâng cao như tìm kiếm ngữ nghĩa và hệ thống gợi ý.

Trường hợp sử dụng nâng cao

Để khai thác tối đa tiềm năng của Gemini API, nhà phát triển có thể cần đi sâu vào các tính năng nâng cao như cài đặt an toàn và API cấp thấp.

  • Cài đặt an toàn giúp người dùng cấu hình chặn hoặc cho phép nội dung trong prompt và phản hồi, bảo đảm tuân thủ hướng dẫn cộng đồng.
  • API cấp thấp cung cấp tính linh hoạt ngày càng cao cho việc tùy biến.
  • Hội thoại nhiều lượt có thể được mở rộng bằng lớp GenaiChatSession, nâng cao trải nghiệm hội thoại.

Việc sử dụng các tính năng nâng cao giúp nhà phát triển tạo ra ứng dụng hiệu quả hơn và mở khóa những khả năng tương tác mới cho người dùng.

Kết luận

Gemini API mở ra những khả năng thú vị cho nhà phát triển xây dựng các ứng dụng AI tiên tiến bằng cách sử dụng cả đầu vào văn bản và hình ảnh. Các mô hình hiện đại như Gemini Ultra đang mở rộng ranh giới về những gì hệ thống AI có thể hiểu và tạo sinh.

Google đã giúp việc tích hợp AI vào ứng dụng trở nên liền mạch hơn nhờ khả năng truy cập thuận tiện qua Python API. Gemini API cung cấp nhiều tính năng như tạo nội dung, embedding và hội thoại nhiều lượt, khiến AI trở nên dễ tiếp cận hơn. Gemini AI đánh dấu một bước tiến lớn trong hiểu biết đa phương thức.

Nếu bạn quan tâm tìm hiểu thêm, hãy bắt đầu hành trình phát triển ứng dụng dùng AI với OpenAI API bằng cách đăng ký khóa học ngắn Working with the OpenAI API. Khám phá cách thức hoạt động phía sau các ứng dụng AI phổ biến như ChatGPT và DataLab, sổ tay dữ liệu được hỗ trợ AI của DataCamp.

Nếu bạn là người dùng chuyên nghiệp và không cần khóa học thực hành, bạn có thể khám phá OpenAI API trong Python với cheat sheet của chúng tôi.

Abid Ali Awan

Tác giả

Abid Ali Awan

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ủ đề

Liên quan