เมื่อใช้ Gemini API คุณจะสร้างการสนทนาแบบอิสระได้หลายรอบ Vertex AI in Firebase SDK ลดความซับซ้อนของกระบวนการด้วยการจัดการสถานะการสนทนา คุณจึงไม่ต้องจัดเก็บประวัติการสนทนาด้วยตนเองเหมือนที่ใช้ generateContentStream()
หรือ generateContent()
ก่อนเริ่มต้น
ทําตามคู่มือการเริ่มต้นใช้งาน Vertex AI in FirebaseSDK ให้เสร็จสมบูรณ์ หากยังไม่ได้ดำเนินการ ตรวจสอบว่าคุณได้ทำสิ่งต่อไปนี้ทั้งหมดแล้ว
ตั้งค่าโปรเจ็กต์ Firebase ใหม่หรือที่มีอยู่ รวมถึงใช้แพ็กเกจราคา Blaze และเปิดใช้ API ที่จําเป็น
เชื่อมต่อแอปกับ Firebase ซึ่งรวมถึงการลงทะเบียนแอปและเพิ่มการกําหนดค่า Firebase ลงในแอป
เพิ่ม SDK และเริ่มต้นVertex AIบริการและโมเดล Generative ในแอป
หลังจากเชื่อมต่อแอปกับ Firebase, เพิ่ม SDK และเริ่มต้นบริการ Vertex AI และ Generative Model แล้ว คุณก็พร้อมเรียกใช้ Gemini API
ส่งคำขอพรอมต์แชท
หากต้องการสร้างการสนทนาแบบหลายรอบ (เช่น แชท) ให้เริ่มต้นด้วยการจัดเตรียมแชทโดยเรียกใช้ startChat()
จากนั้นใช้ sendMessageStream()
(หรือ sendMessage()
) เพื่อส่งข้อความใหม่สำหรับผู้ใช้ ซึ่งจะเพิ่มข้อความและการตอบกลับไปยังประวัติการแชทด้วย
role
ที่เชื่อมโยงกับเนื้อหาในการสนทนามี 2 ตัวเลือกดังนี้
user
: บทบาทที่ให้พรอมต์ ค่านี้เป็นค่าเริ่มต้นสําหรับการเรียกsendMessageStream()
(หรือsendMessage()
) และฟังก์ชันจะแสดงข้อยกเว้นหากมีการส่งบทบาทอื่นmodel
: บทบาทที่ให้คำตอบ บทบาทนี้ใช้ได้เมื่อเรียกใช้startChat()
ที่มีhistory
อยู่แล้ว
เลือกว่าต้องการสตรีมคำตอบ (sendMessageStream
) หรือรอคำตอบจนกว่าระบบจะสร้างผลลัพธ์ทั้งหมด (sendMessage
)
อุปกรณ์การสตรีม
คุณสามารถโต้ตอบได้เร็วขึ้นโดยไม่ต้องรอผลลัพธ์ทั้งหมดจากการสร้างโมเดล และใช้การสตรีมเพื่อจัดการผลลัพธ์บางส่วนแทน
ตัวอย่างนี้แสดงวิธีใช้ startChat()
และ sendMessageStream()
เพื่อสตรีมคำตอบจากโมเดล
import FirebaseVertexAI
// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()
// Initialize the generative model with a model that supports your use case
let model = vertex.generativeModel(modelName: "gemini-2.0-flash")
// Optionally specify existing chat history
let history = [
ModelContent(role: "user", parts: "Hello, I have 2 dogs in my house."),
ModelContent(role: "model", parts: "Great to meet you. What would you like to know?"),
]
// Initialize the chat with optional chat history
let chat = model.startChat(history: history)
// To stream generated text output, call sendMessageStream and pass in the message
let contentStream = try chat.sendMessageStream("How many paws are in my house?")
for try await chunk in contentStream {
if let text = chunk.text {
print(text)
}
}
โดยไม่สตรีม
หรือจะรอผลลัพธ์ทั้งหมดแทนการสตรีมก็ได้ โดยระบบจะแสดงผลลัพธ์หลังจากที่โมเดลสร้างภาพเสร็จสมบูรณ์แล้วเท่านั้น
ตัวอย่างนี้แสดงวิธีใช้ startChat()
และ sendMessage()
เพื่อส่งข้อความถึงผู้ใช้ใหม่
import FirebaseVertexAI
// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()
// Initialize the generative model with a model that supports your use case
let model = vertex.generativeModel(modelName: "gemini-2.0-flash")
// Optionally specify existing chat history
let history = [
ModelContent(role: "user", parts: "Hello, I have 2 dogs in my house."),
ModelContent(role: "model", parts: "Great to meet you. What would you like to know?"),
]
// Initialize the chat with optional chat history
let chat = model.startChat(history: history)
// To generate text output, call sendMessage and pass in the message
let response = try await chat.sendMessage("How many paws are in my house?")
print(response.text ?? "No text in response.")
ดูวิธีเลือกโมเดล Gemini และตำแหน่ง (ไม่บังคับ) ที่เหมาะสมกับ Use Case และแอปของคุณ
คุณทำอะไรได้อีกบ้าง
- ดูวิธีนับโทเค็นก่อนส่งพรอมต์แบบยาวไปยังโมเดล
- ตั้งค่า Cloud Storage for Firebase เพื่อให้คุณรวมไฟล์ขนาดใหญ่ในคำขอแบบหลายรูปแบบได้ และมีโซลูชันที่มีการจัดการมากขึ้นสำหรับการแสดงไฟล์ในพรอมต์ ไฟล์อาจรวมถึงรูปภาพ, PDF, วิดีโอ และเสียง
- เริ่มคิดเกี่ยวกับการเตรียมความพร้อมสำหรับเวอร์ชันที่ใช้งานจริง ซึ่งรวมถึงการตั้งค่า Firebase App Check เพื่อปกป้อง Gemini API จากการละเมิดโดยลูกค้าที่ไม่ได้รับอนุญาต
ลองใช้ความสามารถอื่นๆ ของ Gemini API
- สร้างข้อความจากพรอมต์แบบข้อความเท่านั้น
- สร้างข้อความจากพรอมต์แบบหลายรูปแบบ (รวมถึงข้อความ รูปภาพ PDF วิดีโอ และเสียง)
- สร้างเอาต์พุตที่มีโครงสร้าง (เช่น JSON) จากทั้งพรอมต์แบบข้อความและแบบมัลติโมเดล
- ใช้การเรียกฟังก์ชันเพื่อเชื่อมต่อโมเดล Generative กับระบบและข้อมูลภายนอก
ดูวิธีควบคุมการสร้างเนื้อหา
- ทำความเข้าใจการออกแบบพรอมต์ ซึ่งรวมถึงแนวทางปฏิบัติแนะนำ กลยุทธ์ และตัวอย่างพรอมต์
- กําหนดค่าพารามิเตอร์ของโมเดล เช่น อุณหภูมิและโทเค็นเอาต์พุตสูงสุด
- ใช้การตั้งค่าความปลอดภัยเพื่อปรับความเป็นไปได้ที่จะได้รับคำตอบที่อาจถือว่าอันตราย
ดูข้อมูลเพิ่มเติมเกี่ยวกับรุ่นต่างๆ ของ Gemini
ดูข้อมูลเกี่ยวกับรูปแบบที่ใช้ได้กับกรณีการใช้งานต่างๆ และโควต้าและราคาแสดงความคิดเห็นเกี่ยวกับประสบการณ์การใช้งาน Vertex AI in Firebase