วิธีการของระบบจะช่วยให้ผู้ใช้ควบคุมลักษณะการทำงานของโมเดลได้โดยอิงตามความต้องการและ 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 เพลงตามหัวข้อย่อย