คุณทำให้โฟลว์ Genkit เป็นปลายทาง HTTPS ได้โดยใช้ Cloud Run Cloud Run มีตัวเลือกต่างๆ ในการทำให้ใช้งานได้หลายวิธี รวมถึงการทำให้ใช้งานได้โดยอิงตามคอนเทนเนอร์ หน้านี้จะอธิบายวิธีทำให้โฟลว์ใช้งานได้โดยตรงจากโค้ด
ก่อนเริ่มต้น
- ติดตั้ง Google Cloud CLI
- คุณควรคุ้นเคยกับแนวคิดโฟลว์ของ Genkit และวิธีเขียนโฟลว์ หน้านี้จะถือว่าคุณมีเวิร์กโฟลว์ที่ต้องการทำให้ใช้งานได้แล้ว
- ประสบการณ์การใช้งาน Google Cloud และ Cloud Run มาก่อนจะเป็นประโยชน์ แต่ก็ไม่จำเป็น
1. ตั้งค่าโปรเจ็กต์ Google Cloud
หากยังไม่ได้ตั้งค่าโปรเจ็กต์ Google Cloud ให้ทำตามขั้นตอนต่อไปนี้
สร้างโปรเจ็กต์ Google Cloud ใหม่โดยใช้คอนโซล Cloud หรือเลือกโปรเจ็กต์ที่มีอยู่
ลิงก์โปรเจ็กต์กับบัญชีสำหรับการเรียกเก็บเงิน ซึ่งจำเป็นสำหรับ Cloud Run
กำหนดค่า CLI ของ Google Cloud เพื่อใช้โปรเจ็กต์ของคุณ โดยทำดังนี้
gcloud init
2. เตรียมโปรเจ็กต์ Node ให้พร้อมสําหรับการติดตั้งใช้งาน
คุณจะต้องทําการเปลี่ยนแปลงเล็กๆ น้อยๆ ในโค้ดโปรเจ็กต์เพื่อให้ทําให้การนําร่องใช้งานได้
เพิ่มสคริปต์เริ่มต้นและสร้างลงใน package.json
เมื่อทำให้โปรเจ็กต์ Node.js ใช้งานได้ใน Cloud Run เครื่องมือทำให้ใช้งานได้จะคาดหวังว่าโปรเจ็กต์ของคุณจะมีสคริปต์ start
และสคริปต์ build
(ไม่บังคับ) สําหรับโปรเจ็กต์ TypeScript ทั่วไป สคริปต์ต่อไปนี้มักจะเพียงพอ
"scripts": {
"start": "node lib/index.js",
"build": "tsc"
},
เพิ่มโค้ดเพื่อกําหนดค่าและเริ่มเซิร์ฟเวอร์โฟลว์
ในไฟล์ที่สคริปต์ start
เรียกใช้ ให้เพิ่มการเรียกใช้ startFlowServer
วิธีนี้จะเริ่มต้นเซิร์ฟเวอร์ Express ที่ตั้งค่าไว้เพื่อแสดงโฟลว์เป็นปลายทางของเว็บ
เมื่อโทร โปรดระบุขั้นตอนที่ต้องการแสดง
ai.startFlowServer({
flows: [menuSuggestionFlow],
});
นอกจากนี้ คุณยังระบุพารามิเตอร์ที่ไม่บังคับต่อไปนี้ได้ด้วย
port
: พอร์ตเครือข่ายที่จะฟัง หากไม่ระบุ เซิร์ฟเวอร์จะรอฟังพอร์ตที่กําหนดไว้ในตัวแปรสภาพแวดล้อมของพอร์ต และหากไม่ได้ตั้งค่าพอร์ต ค่าเริ่มต้นจะเป็น 3400cors
: นโยบาย CORS ของเซิร์ฟเวอร์การไหล หากจะเข้าถึงปลายทางเหล่านี้จากเว็บแอปพลิเคชัน คุณอาจต้องระบุข้อมูลนี้pathPrefix
: คำนำหน้าเส้นทางที่ไม่บังคับซึ่งจะเพิ่มไว้ก่อนปลายทางของโฟลว์jsonParserOptions
: ตัวเลือกที่จะส่งไปยังโปรแกรมแยกวิเคราะห์ข้อความ JSON ของ Express
ไม่บังคับ: กําหนดนโยบายการให้สิทธิ์
ขั้นตอนการทํางานที่ติดตั้งใช้งานทั้งหมดควรต้องมีการให้สิทธิ์ในรูปแบบใดรูปแบบหนึ่ง ไม่เช่นนั้นทุกคนจะเรียกใช้ขั้นตอนการทํางาน Generative AI ที่มีราคาแพงได้
เมื่อติดตั้งใช้งานโฟลว์ด้วย Cloud Run คุณจะมี 2 ตัวเลือกในการให้สิทธิ์ ดังนี้
การให้สิทธิ์ตาม Cloud IAM: ใช้เครื่องมือการจัดการการเข้าถึงในตัวของ Google Cloud เพื่อควบคุมการเข้าถึงอุปกรณ์ปลายทาง ดูข้อมูลเกี่ยวกับการระบุข้อมูลเข้าสู่ระบบเหล่านี้ได้ในหัวข้อการตรวจสอบสิทธิ์ในเอกสารประกอบของ Cloud Run
นโยบายการให้สิทธิ์ที่กําหนดไว้ในโค้ด: ใช้ฟีเจอร์นโยบายการให้สิทธิ์ของขั้นตอน Genkit เพื่อยืนยันข้อมูลการให้สิทธิ์โดยใช้โค้ดที่กําหนดเอง ซึ่งมักจะเป็นการให้สิทธิ์ตามโทเค็น แต่ก็ไม่จำเป็น
หากต้องการกำหนดนโยบายการให้สิทธิ์ในโค้ด ให้ใช้พารามิเตอร์ authPolicy
ในการกำหนดการไหล
const myFlow = ai.defineFlow(
{
name: "myFlow",
authPolicy: (auth, input) => {
if (!auth) {
throw new Error("Authorization required.");
}
// Custom checks go here...
},
},
async () => {
// ...
}
);
พารามิเตอร์ auth
ของนโยบายการให้สิทธิ์มาจากพร็อพเพอร์ตี้ auth
ของออบเจ็กต์คำขอ โดยทั่วไปคุณตั้งค่าพร็อพเพอร์ตี้นี้โดยใช้มิดเดิลแวร์ Express
ดูการให้สิทธิ์และความสมบูรณ์
ทำให้ข้อมูลเข้าสู่ระบบ API พร้อมใช้งานสำหรับเวิร์กโฟลว์ที่ติดตั้งใช้งาน
เมื่อติดตั้งใช้งานแล้ว ขั้นตอนจะต้องมีวิธีตรวจสอบสิทธิ์กับบริการระยะไกลที่ใช้ เวิร์กโฟลว์ส่วนใหญ่จะต้องมีข้อมูลเข้าสู่ระบบเป็นอย่างน้อยสำหรับการเข้าถึงบริการ API ของโมเดลที่ใช้
ในตัวอย่างนี้ ให้ทําอย่างใดอย่างหนึ่งต่อไปนี้ ทั้งนี้ขึ้นอยู่กับผู้ให้บริการโมเดลที่คุณเลือก
Gemini (AI ของ Google)
ตรวจสอบว่า AI ของ Google พร้อมให้บริการในภูมิภาคของคุณ
สร้างคีย์ API สำหรับ Gemini API โดยใช้ Google AI Studio
ทำให้คีย์ API พร้อมใช้งานในสภาพแวดล้อม Cloud Run โดยทำดังนี้
- เปิดใช้ Secret Manager API ในคอนโซล Cloud
- ในหน้า Secret Manager ให้สร้าง Secret ใหม่ที่มีคีย์ API
- หลังจากสร้างข้อมูลลับแล้ว ให้ไปที่หน้าเดียวกันแล้วให้สิทธิ์เข้าถึงข้อมูลลับแก่บัญชีบริการประมวลผลข้อมูลเริ่มต้นด้วยบทบาทผู้เข้าถึงข้อมูลลับของผู้จัดการข้อมูลลับ (คุณสามารถค้นหาชื่อบัญชีบริการ Compute เริ่มต้นได้ในหน้า IAM)
ในขั้นตอนถัดไป เมื่อคุณทำให้บริการใช้งานได้ คุณจะต้องอ้างอิงถึงชื่อของข้อมูลลับนี้
Gemini (Vertex AI)
ในคอนโซลระบบคลาวด์ ให้เปิดใช้ Vertex AI API สำหรับโปรเจ็กต์
ในหน้า IAM ให้ตรวจสอบว่าบัญชีบริการ Compute เริ่มต้นได้รับบทบาทผู้ใช้ Vertex AI
ข้อมูลลับเพียงอย่างเดียวที่คุณต้องตั้งค่าสำหรับบทแนะนํานี้คือข้อมูลลับของผู้ให้บริการโมเดล แต่โดยทั่วไปแล้ว คุณต้องทําสิ่งคล้ายกันสําหรับบริการแต่ละรายการที่โฟลว์ใช้
3. ทำให้โฟลว์ใช้งานได้ใน Cloud Run
หลังจากเตรียมโปรเจ็กต์สําหรับการติดตั้งใช้งานแล้ว คุณสามารถติดตั้งใช้งานโดยใช้เครื่องมือ gcloud
Gemini (AI ของ Google)
gcloud run deploy --update-secrets=GOOGLE_GENAI_API_KEY=<your-secret-name>:latest
Gemini (Vertex AI)
gcloud run deploy
เครื่องมือนี้จะแจ้งให้คุณทราบถึงข้อมูลที่จําเป็น
เมื่อระบบถามว่าคุณต้องการอนุญาตการเรียกใช้ที่ไม่ผ่านการตรวจสอบสิทธิ์หรือไม่ ให้ทำดังนี้
- ตอบ
Y
หากคุณไม่ได้ใช้ IAM และกำหนดนโยบายการให้สิทธิ์ในโค้ดแทน - ตอบ
N
เพื่อกำหนดค่าบริการให้ต้องใช้ข้อมูลเข้าสู่ระบบ IAM
ไม่บังคับ: ลองใช้ขั้นตอนที่ติดตั้งใช้งาน
หลังจากการทําให้ใช้งานได้เสร็จสิ้น เครื่องมือจะพิมพ์ URL ของบริการ คุณทดสอบcurl
ได้ดังนี้
curl -X POST https://<service-url>/menuSuggestionFlow \
-H "Authorization: Bearer $(gcloud auth print-identity-token)" \
-H "Content-Type: application/json" -d '{"data": "banana"}'