วิธีการสำหรับระบบ

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

คุณใช้วิธีการของระบบได้หลายวิธีด้วยกัน เช่น

  • การกำหนดลักษณะตัวตนหรือบทบาท (เช่น สำหรับแชทบ็อต)
  • การกำหนดรูปแบบเอาต์พุต (มาร์กดาวน์, YAML ฯลฯ)
  • การกำหนดรูปแบบและโทนของเอาต์พุต (เช่น การพูดรายละเอียด ระดับความเป็นทางการ และระดับการอ่านเป้าหมาย)
  • การกำหนดเป้าหมายหรือกฎสำหรับงาน (เช่น การแสดงข้อมูลโค้ดโดยไม่มีคำอธิบายเพิ่มเติม)
  • การให้บริบทเพิ่มเติมสำหรับข้อความแจ้ง (เช่น การตัดความรู้)

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

ตัวอย่าง

ตัวอย่างพื้นฐานของวิธีการตั้งค่าคำสั่งของระบบโดยใช้ SDK สำหรับ Gemini API มีดังนี้

Python

model=genai.GenerativeModel(
    model_name="gemini-1.5-pro-latest",
    system_instruction="You are a cat. Your name is Neko.")

Go

model.SystemInstruction = &genai.Content{
    Parts: []genai.Part{genai.Text("You are a cat. Your name is Neko.")},
}

Node.js

const generativeModel = genAI.getGenerativeModel({
  model: "gemini-1.5-pro-latest",
  systemInstruction: "You are a cat. Your name is Neko."
});

เว็บไซต์

const generativeModel = genAI.getGenerativeModel({
  model: "gemini-1.5-pro-latest",
  systemInstruction: "You are a cat. Your name is Neko."
});

ลูกดอก (Flutter)

final model = GenerativeModel(
  model: 'gemini-1.5-pro-latest',
  apiKey: apiKey,
  systemInstruction: Content.system('You are a cat. Your name is Neko.'),
);

Swift

let generativeModel = GenerativeModel(
  name: "gemini-1.5-pro-latest",
  apiKey: apiKey,
  systemInstruction: "You are a cat. Your name is Neko."
)

Android

Kotlin:

val generativeModel = GenerativeModel(
  modelName = "gemini-1.5-pro-latest",
  apiKey = BuildConfig.apiKey,
  systemInstruction = content { text("You are a cat. Your name is Neko.") },
)

Java:

GenerativeModel model = new GenerativeModel(
  /* modelName */ "gemini-1.5-pro-latest",
  /* apiKey */ BuildConfig.apiKey,
  /* generationConfig (optional) */ null,
  /* safetySettings (optional) */ null,
  /* requestOptions (optional) */ new RequestOptions(),
  /* tools (optional) */ null,
  /* toolsConfig (optional) */ null,
  /* systemInstruction (optional) */ new Content.Builder().addText("You are a cat. Your name is Neko.").build()
)

ต่อไปนี้เป็นตัวอย่างพรอมต์ของระบบที่กำหนดลักษณะการทำงานที่คาดไว้ของโมเดล

การสร้างโค้ด

  • ระบบ: คุณคือผู้เชี่ยวชาญด้านการเขียนโค้ดที่เชี่ยวชาญด้านการแสดงโค้ดสำหรับอินเทอร์เฟซส่วนหน้า เมื่อฉันอธิบายคอมโพเนนต์ของเว็บไซต์ที่ต้องการสร้าง โปรดแสดงผล HTML และ CSS ที่จำเป็นในการสร้าง อย่าอธิบายโค้ดนี้ รวมถึงเสนอคำแนะนำในการออกแบบ UI ด้วย
  • ผู้ใช้: สร้างช่องที่อยู่ตรงกลางของหน้าซึ่งหมุนรูปภาพแต่ละรูปพร้อมคำบรรยายภาพ รูปภาพที่อยู่ตรงกลางหน้าเว็บควรมีเงาซ้อนอยู่ด้านหลังเพื่อให้โดดเด่น และควรลิงก์ไปยังหน้าอื่น ของเว็บไซต์ด้วย ปล่อย URL ว่างไว้เพื่อให้ฉันป้อนข้อมูลได้

การสร้างข้อมูลที่จัดรูปแบบ

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

    การตอบกลับต้องเป็นออบเจ็กต์ JSON ที่มีสูตรอาหาร 3 รายการ ออบเจ็กต์สูตรอาหารมีสคีมาต่อไปนี้

    • name: ชื่อสูตรอาหาร
    • ส่วนผสมที่ใช้: ส่วนผสมในสูตรที่ระบุไว้ในรายการ
    • ส่วนผสมอื่นๆ: ส่วนผสมในสูตรอาหารที่ไม่ได้ระบุไว้ในรายการ (ละเว้นถ้าไม่มีส่วนผสมอื่น)
    • คำอธิบาย: คำอธิบายสั้นๆ ของสูตรอาหาร โดยเขียนในทางที่ดีราวกับว่า จะขายสูตรอาหารนั้น
  • ผู้ใช้:

    • บรอกโคลีแช่แข็งถุง 1 ปอนด์
    • ครีมเฮฟวี่ 1 ไพนต์
    • ปลายชีสแพ็ก 1 ปอนด์และชิ้น

แชทบ็อตเพลง

  • ระบบ: คุณจะตอบกลับในฐานะนักประวัติศาสตร์ด้านดนตรี ซึ่งแสดงให้เห็นถึงความรู้ที่ครอบคลุมเกี่ยวกับแนวเพลงต่างๆ และการยกตัวอย่างที่เกี่ยวข้อง น้ำเสียงจะสดใสและกระตือรือร้น ช่วยสร้างความสุขให้กับเสียงดนตรี ถ้าคำถามไม่เกี่ยวกับเพลง คำตอบควรจะเป็น "นั่นไม่ใช่สิ่งที่ฉันรู้"
  • ผู้ใช้: หากคนเกิดในช่วงทศวรรษ 60 เพลงแนวใดที่มีการเล่นที่ได้รับความนิยมมากที่สุด ระบุ 5 เพลงตามหัวข้อย่อย