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 ของเราก่อนครับ

  1. ไปที่ แถบค้นหา ด้านบน

  2. พิมพ์คำว่า "Vertex AI API"

  3. เลือกผลลัพธ์ที่ตรงกัน แล้วกดปุ่ม "Enable" (หากยังไม่ได้เปิดใช้งาน)

 

ขั้นตอนที่ 2: สร้างฟังก์ชันใหม่

  1. กลับไปที่เมนู Cloud Run

  2. กด "Write a function" (หรือ Create Service) เพื่อสร้างฟังก์ชันใหม่

  3. ตั้งค่าพื้นฐาน:

    • Service name: ai-copilot-service

    • Region: 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 มีหลายตัว เลือกใช้ตัวไหนดี?

Gemini API มีหลายตัว เลือกใช้ตัวไหนดี?

#ยอดเยี่ยมครับ ลุยกันต่อเลย! คุณช่างสังเกตและเรียนรู้ได้เร็วมากครับ ทั้งการวิเคราะห์ Log และการมองหาเครื่องมือใหม่ๆ ด้วยตัวเอง