Tạo văn bản bằng API Gemini

Gemini API có thể tạo văn bản đầu ra từ nhiều loại dữ liệu đầu vào, bao gồm văn bản, hình ảnh, video và âm thanh. Bạn có thể sử dụng tính năng tạo văn bản cho nhiều ứng dụng, bao gồm:

  • Viết mẫu quảng cáo
  • Mô tả hoặc diễn giải tài sản đa phương tiện
  • Hoàn tất văn bản
  • Tóm tắt văn bản dạng tự do
  • Dịch giữa các ngôn ngữ
  • chatbot
  • Các trường hợp sử dụng mới của riêng bạn

Hướng dẫn này chỉ cho bạn cách tạo văn bản bằng generateContentstreamGenerateContent API. Trọng tâm nằm ở đầu ra văn bản từ phương thức nhập chỉ có văn bản cũng như văn bản và hình ảnh. Người nhận tìm hiểu thêm về việc nhắc đa phương thức bằng tệp video và âm thanh, hãy xem Chiến lược nhắc tệp.

Trước khi bắt đầu: Thiết lập dự án và khoá API của bạn

Trước khi gọi Gemini API, bạn cần thiết lập dự án và định cấu hình khoá API của bạn.

Tạo văn bản từ dữ liệu đầu vào chỉ có văn bản

Cách đơn giản nhất để tạo văn bản bằng Gemini API là đưa ra mô hình bằng thông tin đầu vào chỉ bao gồm văn bản, như trong ví dụ sau:

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("Write a story about a magic backpack.")
print(response.text)

Trong trường hợp này, câu lệnh ("Viết câu chuyện về một chiếc ba lô kỳ diệu") sẽ không hãy thêm các ví dụ đầu ra, hướng dẫn hệ thống hoặc thông tin định dạng. Đây là ảnh 0-chụp phương pháp tiếp cận. Đối với một số trường hợp sử dụng, một lần hoặc Lời nhắc một vài lần có thể tạo ra đầu ra phù hợp hơn với kỳ vọng của người dùng. Trong một số trường hợp, có thể bạn cũng nên cung cấp hướng dẫn hệ thống để giúp mô hình hiểu nhiệm vụ hoặc làm theo các nguyên tắc cụ thể.

Tạo văn bản bằng dữ liệu đầu vào là văn bản và hình ảnh

Gemini API hỗ trợ dữ liệu đầu vào đa phương thức kết hợp văn bản với tệp đa phương tiện. Ví dụ sau đây cho thấy cách tạo văn bản qua phương thức nhập văn bản và hình ảnh:

import PIL.Image

model = genai.GenerativeModel("gemini-1.5-flash")
organ = PIL.Image.open(media / "organ.jpg")
response = model.generate_content(["Tell me about this instrument", organ])
print(response.text)

Tương tự như với câu lệnh chỉ bằng văn bản, nhắc đa phương thức có thể bao gồm nhiều phương pháp và nhãn tinh lọc. Tuỳ thuộc vào kết quả từ ví dụ này, bạn có thể muốn thêm các bước vào câu lệnh hoặc nêu hướng dẫn cụ thể hơn. Để tìm hiểu thêm, hãy xem Chiến lược nhắc tệp.

Tạo luồng văn bản

Theo mặc định, mô hình trả về phản hồi sau khi hoàn tất toàn bộ văn bản trong quá trình tạo. Bạn có thể đạt được các tương tác nhanh hơn bằng cách không phải chờ đến toàn bộ kết quả và thay vào đó sử dụng tính năng truyền trực tuyến để xử lý một phần kết quả.

Ví dụ sau đây trình bày cách triển khai tính năng phát trực tuyến bằng cách sử dụng Phương thức streamGenerateContent để tạo văn bản từ câu lệnh nhập chỉ có văn bản.

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("Write a story about a magic backpack.", stream=True)
for chunk in response:
    print(chunk.text)
    print("_" * 80)

Xây dựng cuộc trò chuyện có tính tương tác

Bạn có thể sử dụng Gemini API để xây dựng trải nghiệm trò chuyện mang tính tương tác cho người dùng của mình. Việc sử dụng tính năng trò chuyện của API cho phép bạn thu thập nhiều vòng câu hỏi và phản hồi, giúp người dùng tìm được câu trả lời hoặc yêu cầu trợ giúp với bài toán nhiều phần. Tính năng này lý tưởng cho những ứng dụng yêu cầu giao tiếp liên tục, chẳng hạn như bot trò chuyện, gia sư tương tác hoặc hỗ trợ khách hàng Google Cloud.

Mã ví dụ sau đây minh hoạ cách triển khai tính năng trò chuyện cơ bản:

model = genai.GenerativeModel("gemini-1.5-flash")
chat = model.start_chat(
    history=[
        {"role": "user", "parts": "Hello"},
        {"role": "model", "parts": "Great to meet you. What would you like to know?"},
    ]
)
response = chat.send_message("I have 2 dogs in my house.")
print(response.text)
response = chat.send_message("How many paws are in my house?")
print(response.text)

Định cấu hình tạo văn bản

Mọi câu lệnh bạn gửi đến mô hình đều bao gồm tham số mà kiểm soát cách mô hình đó tạo ra câu trả lời. Bạn có thể sử dụng GenerationConfig đến định cấu hình các thông số này. Nếu bạn không định cấu hình các tham số, mô hình đều sử dụng các lựa chọn mặc định có thể khác nhau tuỳ theo mẫu thiết bị.

Ví dụ sau cho thấy cách định cấu hình một số tuỳ chọn có sẵn.

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content(
    "Tell me a story about a magic backpack.",
    generation_config=genai.types.GenerationConfig(
        # Only one candidate for now.
        candidate_count=1,
        stop_sequences=["x"],
        max_output_tokens=20,
        temperature=1.0,
    ),
)

print(response.text)

candidateCount chỉ định số lượng phản hồi được tạo cần trả về. Hiện tại, bạn chỉ có thể đặt giá trị này là 1. Nếu bạn không đặt chính sách này, giá trị mặc định sẽ là 1.

stopSequences chỉ định tập hợp chuỗi ký tự (tối đa 5) mà sẽ ngừng tạo đầu ra. Nếu được chỉ định, API sẽ dừng ở lần xuất hiện đầu tiên của stop_sequence. Trình tự dừng sẽ không được đưa vào như là một phần của của bạn.

maxOutputTokens đặt số lượng mã thông báo tối đa để đưa vào một ứng viên.

temperature kiểm soát tính ngẫu nhiên của dữ liệu đầu ra. Sử dụng giá trị cao hơn để nhận được nhiều giá trị hơn các câu trả lời sáng tạo và giá trị thấp hơn cho các câu trả lời có tính quyết định hơn. Giá trị có thể dao động từ [0.0, 2.0].

Bạn cũng có thể định cấu hình các lệnh gọi riêng lẻ thành generateContent:

response = model.generate_content(
    'Write a story about a magic backpack.',
    generation_config = genai.GenerationConfig(
        max_output_tokens=1000,
        temperature=0.1,
    )
)

Mọi giá trị được đặt cho từng lệnh gọi riêng lẻ sẽ ghi đè giá trị trên hàm khởi tạo của mô hình.

Các bước tiếp theo

Hướng dẫn này trình bày cách sử dụng generateContentstreamGenerateContent để tạo kết quả đầu ra văn bản từ đầu vào chỉ có văn bản cũng như văn bản và hình ảnh. Để tìm hiểu thêm về cách tạo văn bản bằng Gemini API, hãy xem các tài nguyên sau:

  • Chiến lược nhắc tệp: Gemini API hỗ trợ tính năng nhắc bằng dữ liệu văn bản, hình ảnh, âm thanh và video, đồng thời được gọi là nhắc đa phương thức.
  • Hướng dẫn về hệ thống: Hệ thống cho phép bạn định hướng hành vi của mô hình dựa trên và trường hợp sử dụng.
  • Hướng dẫn an toàn: Đôi khi có thể sử dụng AI tạo sinh các mô hình tạo ra kết quả không mong muốn, chẳng hạn như kết quả đầu ra không chính xác, thiên kiến hoặc phản cảm. Quy trình hậu xử lý và quy trình đánh giá thủ công có vai trò thiết yếu đối với việc hạn chế rủi ro thiệt hại từ các dữ liệu đầu ra đó.