การตั้งค่าความปลอดภัย

คู่มือนี้จะอธิบายการตั้งค่าความปลอดภัยที่ปรับแต่งได้สำหรับ Gemini API ในขั้นตอนการสร้างต้นแบบ คุณจะปรับการตั้งค่าความปลอดภัยใน 4 มิติเพื่อประเมินได้อย่างรวดเร็วว่าแอปพลิเคชันต้องใช้การกำหนดค่าที่เข้มงวดมากขึ้นหรือน้อยลง โดยค่าเริ่มต้น การตั้งค่าความปลอดภัยจะบล็อกเนื้อหา (รวมถึงข้อความแจ้ง) ที่มีแนวโน้มว่าไม่ปลอดภัยในระดับปานกลางหรือสูงกว่าในทุกมิติข้อมูล ความปลอดภัยพื้นฐานนี้ออกแบบมาให้เหมาะกับ Use Case ส่วนใหญ่ คุณจึงควรปรับการตั้งค่าความปลอดภัยเมื่อจำเป็นต่อแอปพลิเคชันของคุณอย่างสม่ำเสมอเท่านั้น

ตัวกรองความปลอดภัย

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

ตัวกรองความปลอดภัยแบบปรับได้ครอบคลุมหมวดหมู่ต่อไปนี้

  • การคุกคาม
  • วาจาสร้างความเกลียดชัง
  • เกี่ยวกับเรื่องเพศอย่างโจ่งแจ้ง
  • อันตราย

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

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

ความน่าจะเป็นกับความรุนแรง

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

  1. หุ่นยนต์ต่อยฉัน
  2. หุ่นยนต์ทับฉัน

ประโยคที่ 1 อาจทำให้มีแนวโน้มสูงว่าไม่ปลอดภัยแต่คุณอาจพิจารณาว่าประโยคที่ 2 มีความร้ายแรงกว่าในแง่ของความรุนแรง

ด้วยเหตุนี้ นักพัฒนาซอฟต์แวร์แต่ละรายจึงต้องทดสอบอย่างรอบคอบและพิจารณาว่าการบล็อกในระดับที่เหมาะสมในระดับใดที่จำเป็นต่อการรองรับ Use Case ที่สำคัญของตน ขณะเดียวกันก็ลดอันตรายต่อผู้ใช้ปลายทางให้เหลือน้อยที่สุด

การตั้งค่าความปลอดภัย

การตั้งค่าความปลอดภัยเป็นส่วนหนึ่งของคำขอที่คุณส่งไปยังบริการ Generative คุณปรับการตั้งค่าได้สำหรับคำขอไปยัง API แต่ละรายการ ตารางต่อไปนี้แสดงหมวดหมู่ที่คุณสามารถตั้งค่าและอธิบายประเภทของอันตรายที่แต่ละหมวดหมู่ครอบคลุม

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

คำจำกัดความเหล่านี้ก็อยู่ในเอกสารอ้างอิง API ด้วยเช่นกัน รุ่น Gemini รองรับเฉพาะ HARM_CATEGORY_HARASSMENT, HARM_CATEGORY_HATE_SPEECH, HARM_CATEGORY_SEXUALLY_EXPLICIT และ HARM_CATEGORY_DANGEROUS_CONTENT เท่านั้น หมวดหมู่อื่นๆ จะใช้โดยโมเดล PaLM 2 (เดิม)

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

หากไม่ได้ตั้งค่า การตั้งค่าการบล็อกเริ่มต้นจะเป็นบล็อกบางรายการสำหรับทุกหมวดหมู่

เกณฑ์ (Google AI Studio) เกณฑ์ (API) คำอธิบาย
ไม่บล็อกเลย BLOCK_NONE แสดงเสมอโดยไม่คำนึงถึงความน่าจะเป็นของเนื้อหาที่ไม่ปลอดภัย
บล็อกเพียงไม่กี่รายการ BLOCK_ONLY_HIGH บล็อกเมื่อมีโอกาสสูงที่เนื้อหาที่ไม่ปลอดภัย
บล็อกบางรายการ BLOCK_MEDIUM_AND_ABOVE บล็อกเมื่อมีแนวโน้มปานกลางหรือสูงเกี่ยวกับเนื้อหาที่ไม่ปลอดภัย
บล็อกส่วนใหญ่ BLOCK_LOW_AND_ABOVE บล็อกเมื่อมีแนวโน้มต่ำ ปานกลาง หรือสูงเกี่ยวกับเนื้อหาที่ไม่ปลอดภัย
HARM_BLOCK_THRESHOLD_UNSPECIFIED ไม่ได้ระบุเกณฑ์ โปรดบล็อกโดยใช้เกณฑ์เริ่มต้น

คุณตั้งค่าเหล่านี้สำหรับคำขอแต่ละรายการที่ทำกับ Generative Service ได้ โปรดดูรายละเอียดในHarmBlockThreshold เอกสารอ้างอิง API

ความคิดเห็นด้านความปลอดภัย

generateContent แสดงผล GenerateContentResponse ซึ่งรวมความคิดเห็นด้านความปลอดภัย

ความคิดเห็นของข้อความแจ้งจะรวมอยู่ใน promptFeedback หากตั้งค่า promptFeedback.blockReason ระบบจะบล็อกเนื้อหาของข้อความแจ้ง

ความคิดเห็นของผู้สมัครรับเลือกตั้งจะรวมอยู่ใน finishReason และsafetyRatings หากเนื้อหาตอบกลับถูกบล็อกและ finishReason มีค่าเป็น SAFETY คุณตรวจสอบ safetyRatings เพื่อดูรายละเอียดเพิ่มเติมได้ คะแนนความปลอดภัยประกอบด้วยหมวดหมู่ และความน่าจะเป็นของการจัดประเภทอันตราย เนื้อหาที่ถูกบล็อก จะไม่ถูกส่งกลับ

ความน่าจะเป็นที่ส่งคืนจะสอดคล้องกับระดับความเชื่อมั่นของการบล็อกดังที่แสดงในตารางต่อไปนี้

Probability คำอธิบาย
ไม่เสมอกัน เนื้อหามีแนวโน้มต่ำว่าจะไม่ปลอดภัย
ต่ำ เนื้อหามีแนวโน้มต่ำว่าจะไม่ปลอดภัย
ปานกลาง เนื้อหามีแนวโน้มปานกลางที่จะไม่ปลอดภัย
สูง เนื้อหามีโอกาสที่จะไม่ปลอดภัยสูง

เช่น หากเนื้อหาถูกบล็อกเนื่องจากหมวดหมู่การคุกคามมีความเป็นไปได้สูง คะแนนความปลอดภัยที่ส่งกลับมาจะมีหมวดหมู่เท่ากับ HARASSMENT และมีการตั้งค่าความน่าจะเป็นของอันตรายเป็น HIGH

การตั้งค่าความปลอดภัยใน Google AI Studio

นอกจากนี้ คุณยังปรับการตั้งค่าความปลอดภัยใน Google AI Studio ได้ด้วย แต่จะปิดไม่ได้ โดยในการตั้งค่าการเรียกใช้ ให้คลิกแก้ไขการตั้งค่าความปลอดภัย แล้วทำดังนี้

ปุ่มการตั้งค่าความปลอดภัย

และใช้ปุ่มเพื่อปรับการตั้งค่าแต่ละแบบ ดังนี้

ปุ่มการตั้งค่าความปลอดภัย

ข้อความ ไม่มีเนื้อหา จะปรากฏขึ้นหากเนื้อหาถูกบล็อก หากต้องการดูรายละเอียดเพิ่มเติม ให้วางเคอร์เซอร์เหนือไม่มีเนื้อหา และคลิก ความปลอดภัย

ตัวอย่างโค้ด

ส่วนนี้จะแสดงวิธีใช้การตั้งค่าความปลอดภัยในโค้ดโดยใช้ไลบรารีของไคลเอ็นต์ Python

ตัวอย่างคำขอ

ต่อไปนี้เป็นข้อมูลโค้ด Python ที่แสดงวิธีตั้งค่าความปลอดภัยในการเรียกใช้ GenerateContent การดำเนินการนี้จะกำหนดหมวดหมู่อันตราย Harassment และ Hate speech เป็น BLOCK_LOW_AND_ABOVE ซึ่งบล็อกเนื้อหาที่มีความเป็นไปได้สูงที่จะเกิดการคุกคามหรือวาจาสร้างความเกลียดชัง

from google.generativeai.types import HarmCategory, HarmBlockThreshold

model = genai.GenerativeModel(model_name='gemini-pro-vision')
response = model.generate_content(
    ['Do these look store-bought or homemade?', img],
    safety_settings={
        HarmCategory.HARM_CATEGORY_HATE_SPEECH: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
        HarmCategory.HARM_CATEGORY_HARASSMENT: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
    }
)

ตัวอย่างการตอบกลับ

ข้อมูลต่อไปนี้จะแสดงข้อมูลโค้ดสำหรับการแยกวิเคราะห์ความคิดเห็นด้านความปลอดภัยจากคำตอบ

try:
  print(response.text)
except ValueError:
  # If the response doesn't contain text, check if the prompt was blocked.
  print(response.prompt_feedback)
  # Also check the finish reason to see if the response was blocked.
  print(response.candidates[0].finish_reason)
  # If the finish reason was SAFETY, the safety ratings have more details.
  print(response.candidates[0].safety_ratings)

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

  • โปรดดูที่เอกสารอ้างอิง API เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับ API เต็มรูปแบบ
  • อ่านคำแนะนำด้านความปลอดภัยเพื่อดูภาพรวมทั่วไปของข้อควรพิจารณาด้านความปลอดภัยเมื่อพัฒนาโดยใช้ LLM
  • ดูข้อมูลเพิ่มเติมเกี่ยวกับการประเมินความน่าจะเป็นเทียบกับความรุนแรงจากทีม Jigsaw
  • ดูข้อมูลเพิ่มเติมเกี่ยวกับผลิตภัณฑ์ที่ส่งผลต่อโซลูชันด้านความปลอดภัย เช่น Perspective API
  • คุณใช้การตั้งค่าความปลอดภัยเหล่านี้เพื่อสร้างตัวแยกประเภทสารพิษได้ โปรดดูตัวอย่างการแยกประเภทเพื่อเริ่มต้นใช้งาน