สร้างข้อความโดยใช้ Gemini API

Gemini API สามารถสร้างเอาต์พุตที่เป็นข้อความจากอินพุตประเภทต่างๆ เช่น ข้อความ รูปภาพ วิดีโอ และเสียง คุณสามารถใช้การสร้างข้อความสำหรับ แอปพลิเคชัน ซึ่งรวมถึง:

  • การเขียนเชิงสร้างสรรค์
  • การอธิบายหรือตีความเนื้อหาสื่อ
  • การเติมข้อความ
  • สรุปข้อความรูปแบบอิสระ
  • การแปลระหว่างภาษา
  • แชทบ็อต
  • กรณีการใช้งานนิยายของคุณเอง

คู่มือนี้แสดงวิธีสร้างข้อความโดยใช้ generateContent และ streamGenerateContent API โดยจะโฟกัสที่เอาต์พุตข้อความจากอินพุตแบบข้อความอย่างเดียว รวมถึงข้อความและรูปภาพ ถึง เรียนรู้เพิ่มเติมเกี่ยวกับการแจ้งผ่านสื่อหลากรูปแบบโดยใช้ไฟล์วิดีโอและไฟล์เสียง โปรดดู กลยุทธ์การแจ้งไฟล์

ก่อนเริ่มต้น: ตั้งค่าโปรเจ็กต์และคีย์ API

ก่อนที่จะเรียกใช้ Gemini API คุณต้องตั้งค่าโปรเจ็กต์และกำหนดค่า คีย์ API

สร้างข้อความจากการป้อนข้อมูลแบบข้อความเท่านั้น

วิธีที่ง่ายที่สุดในการสร้างข้อความโดยใช้ Gemini API คือการระบุโมเดล ด้วยอินพุตแบบข้อความอย่างเดียวเท่านั้น ตามที่แสดงในตัวอย่างนี้:

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

ในกรณีนี้ ข้อความแจ้ง ("เขียนเรื่องราวเกี่ยวกับกระเป๋าเป้สะพายหลังสุดมหัศจรรย์") จะไม่แสดง รวมทั้งตัวอย่างเอาต์พุต คำสั่งของระบบ หรือข้อมูลการจัดรูปแบบ โดยจะเป็นศูนย์ ของเรา สำหรับกรณีการใช้งานบางกรณี one-shot หรือ ข้อความแจ้งน้อยครั้ง อาจให้ผลลัพธ์ที่สอดคล้องกับความคาดหวังของผู้ใช้มากขึ้น ในบางกรณี คุณอาจต้องระบุ คำแนะนำของระบบเพื่อช่วยโมเดล ทำความเข้าใจงานหรือปฏิบัติตามหลักเกณฑ์เฉพาะ

สร้างข้อความจากการป้อนข้อความและรูปภาพ

Gemini API รองรับอินพุตในหลายโมดัลที่รวมข้อความเข้ากับไฟล์สื่อ ตัวอย่างต่อไปนี้แสดงวิธีการสร้างข้อความจากการป้อนข้อความและรูปภาพ

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)

การสร้างพรอมต์แบบหลายโมดัลอาจใช้วิธีการหลายอย่างได้เช่นเดียวกับการใช้พรอมต์แบบข้อความเท่านั้น และการปรับแต่ง ทั้งนี้ขึ้นอยู่กับผลลัพธ์ที่ได้จากตัวอย่างนี้ คุณอาจต้องการ เพิ่มขั้นตอนให้กับข้อความแจ้งหรือระบุวิธีการอย่างเจาะจงมากขึ้น หากต้องการทราบข้อมูลเพิ่มเติม ดูกลยุทธ์การแสดงข้อความแจ้งไฟล์

สร้างสตรีมข้อความ

โดยค่าเริ่มต้น โมเดลจะส่งการตอบกลับหลังจากกรอกข้อความทั้งหมดเสร็จแล้ว กระบวนการสร้าง คุณสามารถสร้างการโต้ตอบที่เร็วขึ้นโดยไม่ต้องรอ ผลลัพธ์ทั้งหมด และใช้สตรีมมิงเพื่อจัดการกับผลลัพธ์บางส่วนแทน

ตัวอย่างต่อไปนี้แสดงวิธีใช้งานสตรีมมิงโดยใช้ streamGenerateContent เพื่อ สร้างข้อความจากพรอมต์การป้อนข้อมูลแบบข้อความเท่านั้น

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)

สร้างแชทแบบอินเทอร์แอกทีฟ

คุณสามารถใช้ Gemini API เพื่อสร้างประสบการณ์การแชทแบบอินเทอร์แอกทีฟสำหรับผู้ใช้ การใช้ฟีเจอร์แชทของ API ช่วยให้คุณรวบรวมคำถามได้หลายรอบ และคำตอบ ช่วยให้ผู้ใช้ค่อยๆ ตอบคำถามหรือขอความช่วยเหลือได้ กับโจทย์ที่มีหลายส่วน ฟีเจอร์นี้เหมาะสำหรับแอปพลิเคชันที่ต้องใช้ การสื่อสารอย่างต่อเนื่อง เช่น แชทบ็อต ติวเตอร์แบบอินเทอร์แอกทีฟ หรือการสนับสนุนลูกค้า ผู้ช่วย

ตัวอย่างโค้ดต่อไปนี้แสดงการใช้งานแชทขั้นพื้นฐาน

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)

กำหนดค่าการสร้างข้อความ

ทุกพรอมต์ที่คุณส่งไปยังโมเดลจะประกอบด้วย พารามิเตอร์ที่ ควบคุมวิธีสร้างคำตอบของโมเดล คุณสามารถใช้ GenerationConfig ถึง กำหนดค่าพารามิเตอร์เหล่านี้ หากไม่กำหนดค่าพารามิเตอร์ โมเดล จะใช้ตัวเลือกเริ่มต้น ซึ่งอาจแตกต่างกันไปตามรุ่น

ตัวอย่างต่อไปนี้แสดงวิธีกำหนดค่าตัวเลือกต่างๆ ที่ใช้ได้

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 ระบุจำนวนคำตอบที่สร้างขึ้นซึ่งจะส่งกลับมา ปัจจุบันค่านี้สามารถตั้งเป็น 1 เท่านั้น หากไม่ได้ตั้งค่า ระบบจะใช้ค่าเริ่มต้นเป็น 1

stopSequences ระบุชุดของลำดับอักขระ (สูงสุด 5 ชุด) ที่ หยุดการสร้างเอาต์พุต หากระบุ API จะหยุดเมื่อปรากฏครั้งแรก ของ stop_sequence ลำดับการหยุดจะไม่รวมเป็นส่วนหนึ่งของ คำตอบ

maxOutputTokens กำหนดจำนวนโทเค็นสูงสุดที่จะรวมไว้ในตัวเลือก

temperature จะควบคุมการสุ่มของเอาต์พุต ใช้ค่าที่สูงกว่าเพื่อให้ใช้งานได้มากขึ้น คำตอบครีเอทีฟโฆษณา และค่าที่ต่ำกว่าสำหรับคำตอบที่กำหนดมากขึ้น ค่า มีค่าตั้งแต่ [0.0, 2.0]

คุณยังกำหนดค่าการโทรแต่ละรายการไปยัง generateContent ได้ด้วย โดยทำดังนี้

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

ค่าที่กำหนดไว้ในการเรียกแต่ละรายการลบล้างในตัวสร้างโมเดล

ขั้นตอนถัดไป

คู่มือนี้แสดงวิธีใช้ generateContent และ streamGenerateContent เพื่อสร้างเอาต์พุตข้อความจากอินพุตแบบข้อความเท่านั้นและแบบข้อความและรูปภาพ เพื่อดูข้อมูลเพิ่มเติม เกี่ยวกับการสร้างข้อความด้วย Gemini API โปรดดูแหล่งข้อมูลต่อไปนี้

  • กลยุทธ์การแจ้งไฟล์: Gemini API รองรับพรอมต์ที่มีข้อมูลข้อความ รูปภาพ เสียง และวิดีโอ หรือที่เรียกกันว่าพรอมต์แบบหลายโมดัล
  • วิธีการของระบบ: ระบบ ช่วยให้คุณสามารถควบคุมลักษณะการทำงานของโมเดลตาม และกรณีการใช้งาน
  • คำแนะนำด้านความปลอดภัย: บางครั้ง Generative AI โมเดลจะสร้างเอาต์พุตที่ไม่คาดคิด เช่น เอาต์พุตที่ไม่ถูกต้อง มีอคติ หรือไม่เหมาะสม การประมวลผลหลังการประมวลผลและการประเมินโดยเจ้าหน้าที่เป็นสิ่งจำเป็นเพื่อ ลดความเสี่ยงที่จะเกิดอันตรายจากผลลัพธ์เหล่านั้น