เมื่อใช้ Gemini API คุณจะสร้างการสนทนาแบบอิสระได้หลายรอบ Vertex AI in Firebase SDK ลดความซับซ้อนของกระบวนการด้วยการจัดการสถานะการสนทนา คุณจึงไม่ต้องจัดเก็บประวัติการสนทนาด้วยตนเองเหมือนที่ใช้ generateContentStream()
หรือ generateContent()
ตัวเลือกอื่นๆ สำหรับการทำงานกับ Gemini API
หากต้องการ ให้ลองใช้ Gemini API
เวอร์ชัน "Google AI" อื่น คุณสามารถรับสิทธิ์เข้าถึงได้แบบไม่มีค่าใช้จ่าย (ภายในขีดจำกัดและเมื่อพร้อมให้บริการ) โดยใช้ Google AI Studio และ Google AI SDK ของไคลเอ็นต์ SDK เหล่านี้ควรใช้สำหรับการสร้างต้นแบบเท่านั้นในแอปบนอุปกรณ์เคลื่อนที่และเว็บเมื่อคุ้นเคยกับวิธีการทำงานของ Gemini API แล้ว ให้เปลี่ยนไปใช้ Vertex AI in FirebaseSDK (เอกสารประกอบนี้) ซึ่งมีฟีเจอร์เพิ่มเติมมากมายที่สําคัญสําหรับแอปบนอุปกรณ์เคลื่อนที่และเว็บ เช่น การปกป้อง API จากการละเมิดโดยใช้ Firebase App Check และรองรับไฟล์สื่อขนาดใหญ่ในคําขอ
เรียกใช้ Vertex AI Gemini API ฝั่งเซิร์ฟเวอร์ (เช่น ด้วย Python, Node.js หรือ Go)
ใช้ Vertex AI SDK ฝั่งเซิร์ฟเวอร์, Firebase Genkit หรือ Firebase Extensions สำหรับ Gemini API (ไม่บังคับ)
ก่อนเริ่มต้น
ทําตามคู่มือการเริ่มต้นใช้งาน 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.")
ดูวิธีเลือกโมเดลและตำแหน่ง (ไม่บังคับ) ที่เหมาะสมกับกรณีการใช้งานและแอป
คุณทำอะไรได้อีกบ้าง
- ดูวิธีนับโทเค็นก่อนส่งพรอมต์แบบยาวไปยังโมเดล
- ตั้งค่า Cloud Storage for Firebase เพื่อให้คุณรวมไฟล์ขนาดใหญ่ในคำขอแบบหลายรูปแบบได้ และมีโซลูชันที่มีการจัดการมากขึ้นสำหรับการแสดงไฟล์ในพรอมต์ ไฟล์อาจรวมถึงรูปภาพ, PDF, วิดีโอ และเสียง
- เริ่มคิดเกี่ยวกับการเตรียมความพร้อมสำหรับเวอร์ชันที่ใช้งานจริง ซึ่งรวมถึงการตั้งค่า Firebase App Check เพื่อปกป้อง Gemini API จากการละเมิดโดยลูกค้าที่ไม่ได้รับอนุญาต นอกจากนี้ โปรดอ่านรายการตรวจสอบเวอร์ชันที่ใช้งานจริง
ลองใช้ความสามารถอื่นๆ ของ Gemini API
- สร้างข้อความจากพรอมต์แบบข้อความเท่านั้น
- สร้างข้อความจากพรอมต์แบบหลายรูปแบบ (รวมถึงข้อความ รูปภาพ PDF วิดีโอ และเสียง)
- สร้างเอาต์พุตที่มีโครงสร้าง (เช่น JSON) จากทั้งพรอมต์แบบข้อความและแบบมัลติโมเดล
- ใช้การเรียกฟังก์ชันเพื่อเชื่อมต่อโมเดล Generative กับระบบและข้อมูลภายนอก
ดูวิธีควบคุมการสร้างเนื้อหา
- ทำความเข้าใจการออกแบบพรอมต์ ซึ่งรวมถึงแนวทางปฏิบัติแนะนำ กลยุทธ์ และตัวอย่างพรอมต์
- กําหนดค่าพารามิเตอร์ของโมเดล เช่น อุณหภูมิและโทเค็นเอาต์พุตสูงสุด (สําหรับ Gemini) หรือสัดส่วนภาพ และการสร้างบุคคล (สําหรับ Imagen)
- ใช้การตั้งค่าความปลอดภัยเพื่อปรับความเป็นไปได้ที่จะได้รับคำตอบที่อาจถือว่าอันตราย
ดูข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบที่รองรับ
ดูข้อมูลเกี่ยวกับรูปแบบที่ใช้ได้กับกรณีการใช้งานต่างๆ รวมถึงโควต้าและราคาแสดงความคิดเห็นเกี่ยวกับประสบการณ์การใช้งาน Vertex AI in Firebase