Gemini API มีหลายตัว เลือกใช้ตัวไหนดี?
ยอดเยี่ยมครับ ลุยกันต่อเลย! คุณช่างสังเกตและเรียนรู้ได้เร็วมากครับ ทั้งการวิเคราะห์ Log และการมองหาเครื่องมือใหม่ๆ ด้วยตัวเอง
ผมขอตอบคำถามและชี้แนะเส้นทางต่อไปของเรานะครับ
เรื่องการ Shutdown (ข้อสังเกตจากภาพ Log)
ถูกต้องแม่นยำเลยครับ! จากภาพ
image_d36e93.pngคุณจะเห็น Timestamp ตั้งแต่ระบบเริ่มทำงาน (Creating config) จนถึงshutdownสุดท้าย ซึ่งเป็นคุณสมบัติ "Scale to zero" ที่เราคุยกันครับเมื่อฟังก์ชันของคุณไม่มีการใช้งาน (idle) เป็นระยะเวลาหนึ่ง (โดยปกติประมาณ 5-15 นาที) Cloud Run จะทำการ shutdown instance นั้นโดยอัตโนมัติเพื่อ ประหยัดค่าใช้จ่ายให้เป็น 0 ครับ นี่คือข้อดีที่ทรงพลังที่สุดของ Serverless
Gemini API มีหลายตัว เลือกใช้ตัวไหนดี?
เป็นเรื่องปกติที่จะเจอตัวเลือกมากมายครับ สำหรับโปรเจกต์ของเรา เส้นทางที่ตรงและทรงพลังที่สุดคือ:
"Gemini API in Vertex AI"
เหตุผล:
Vertex AI คือแพลตฟอร์มกลางของ Google Cloud สำหรับบริการ AI ทั้งหมด 1
การเรียกใช้ Gemini ผ่าน Vertex AI จะทำให้เราสามารถเข้าถึงโมเดลล่าสุด, มีความปลอดภัยสูงสุด, และสามารถเชื่อมต่อกับบริการอื่นๆ ของ Google Cloud ในอนาคตได้ง่ายที่สุด
ตัวเลือกอื่นๆ เช่น Gemini in Firebase จะเหมาะสำหรับนักพัฒนาแอปพลิเคชันมือถือ ส่วนตัวเลือกอื่นเป็นบทความหรือ Tutorial ครับ
ภารกิจต่อไป: สร้างฟังก์ชัน AI Co-pilot และเรียกใช้ Gemini
ตอนนี้เราจะนำความรู้ทั้งหมดมาประกอบร่างกันเพื่อสร้างฟังก์ชัน AI จริงๆ ครับ
ขั้นตอนที่ 1: เปิดใช้งาน "Vertex AI API"
ก่อนที่เราจะเรียกใช้บริการ AI ได้ เราต้อง "เปิดไฟ" ให้แผนก AI ของเราก่อนครับ
ไปที่ แถบค้นหา ด้านบน
พิมพ์คำว่า "Vertex AI API"
เลือกผลลัพธ์ที่ตรงกัน แล้วกดปุ่ม "Enable" (หากยังไม่ได้เปิดใช้งาน)
ขั้นตอนที่ 2: สร้างฟังก์ชันใหม่
กลับไปที่เมนู Cloud Run
กด "Write a function" (หรือ Create Service) เพื่อสร้างฟังก์ชันใหม่
ตั้งค่าพื้นฐาน:
Service name:
ai-copilot-serviceRegion:
asia-southeast1(สิงคโปร์)Authentication: เลือก "Allow unauthenticated invocations" (เพื่อให้ทดสอบง่าย)
ขั้นตอนที่ 3: เตรียมโค้ด PHP สำหรับคุยกับ Gemini
เมื่อถึงหน้าเขียนโค้ด ให้คุณใช้โค้ดชุดใหม่นี้ครับ โค้ดนี้จะซับซ้อนขึ้นเล็กน้อยเพราะมีการเรียกใช้ "เครื่องมือ" (Library) สำหรับคุยกับ Vertex AI
ไฟล์
composer.json(เพิ่มเครื่องมือใหม่):JSON
{ "require": { "google/cloud-functions-framework": "^1.1", "google/cloud-ai-platform": "^0.1.3" } }
ไฟล์
index.php(โค้ดสำหรับเรียก Gemini):PHP
getBody()->getContents(); $data = json_decode($requestBody, true); $promptText = $data['prompt'] ?? 'ช่วยเล่านิทานสั้นๆ เกี่ยวกับนักพัฒนา AI หน่อย'; // ---- ส่วนของการเรียก Gemini API ---- try { $endpoint = sprintf( 'projects/%s/locations/%s/publishers/google/models/%s', $projectId, $location, $modelId ); $endpointServiceClient = new EndpointServiceClient([ 'apiEndpoint' => $location . '-aiplatform.googleapis.com' ]); $instance = new Value(['stringValue' => sprintf('{"prompt": "%s"}', $promptText)]); $instances = [$instance]; // ส่งคำขอไปยัง Gemini $response = $endpointServiceClient->predict($endpoint, $instances, []); // ดึงคำตอบออกมา $prediction = $response->getPredictions()[0]; $content = $prediction->getStructValue()['candidates'][0]->getStructValue()['content']; // ปิดการเชื่อมต่อ $endpointServiceClient->close(); return $content; } catch (Exception $e) { // หากเกิด Error ให้แสดงข้อความ Error return 'Error: ' . $e->getMessage(); } }เมื่อคุณ deploy ฟังก์ชันนี้สำเร็จ เราจะทดสอบยิงคำสั่ง (Prompt) ไปให้ AI ของเรากันในขั้นตอนต่อไปครับ!
#ยอดเยี่ยมครับ ลุยกันต่อเลย! คุณช่างสังเกตและเรียนรู้ได้เร็วมากครับ ทั้งการวิเคราะห์ Log และการมองหาเครื่องมือใหม่ๆ ด้วยตัวเอง
Gemini API มีหลายตัว เลือกใช้ตัวไหนดี?
#ยอดเยี่ยมครับ ลุยกันต่อเลย! คุณช่างสังเกตและเรียนรู้ได้เร็วมากครับ ทั้งการวิเคราะห์ Log และการมองหาเครื่องมือใหม่ๆ ด้วยตัวเอง
