ปลั๊กอิน Vertex AI

ปลั๊กอิน Vertex AI มีอินเทอร์เฟซสำหรับโมเดล Generative AI ของ Google หลายโมเดลผ่าน Vertex AI API ดังนี้

  • การสร้างข้อความ Gemini 1.0 Pro และ Gemini 1.0 Pro Vision
  • การสร้างรูปภาพ Imagen2
  • รุ่นการฝังข้อความตุ๊กแก

รวมถึงยังให้สิทธิ์เข้าถึงชุดย่อยของเมตริกการประเมินผ่าน Rapid Evaluation API สำหรับ Vertex AI ด้วย

การติดตั้ง

npm i --save @genkit-ai/vertexai

หากต้องการเรียกใช้โฟลว์ที่ใช้ปลั๊กอินนี้ในเครื่อง คุณต้องติดตั้งเครื่องมือ Google Cloud CLI ด้วย

การกำหนดค่า

หากต้องการใช้ปลั๊กอินนี้ ให้ระบุปลั๊กอินเมื่อเรียกใช้ configureGenkit():

import { vertexAI } from '@genkit-ai/vertexai';

export default configureGenkit({
  plugins: [
    vertexAI({ projectId: 'your-cloud-project', location: 'us-central1' }),
  ],
  // ...
});

ปลั๊กอินกำหนดให้คุณระบุรหัสโปรเจ็กต์ Google Cloud, ภูมิภาคที่ต้องการสร้างคำขอ Vertex API และข้อมูลเข้าสู่ระบบโปรเจ็กต์ Google Cloud

  • คุณระบุรหัสโปรเจ็กต์ Google Cloud ได้โดยการตั้งค่า projectId ในการกำหนดค่า vertexAI() หรือโดยการตั้งค่าตัวแปรสภาพแวดล้อม GCLOUD_PROJECT หากคุณเรียกใช้โฟลว์จากสภาพแวดล้อม Google Cloud (Cloud Functions, Cloud Run และอื่นๆ) ระบบจะตั้งค่า GCLOUD_PROJECT เป็นรหัสโปรเจ็กต์ของสภาพแวดล้อมโดยอัตโนมัติ

  • คุณระบุตำแหน่งของ API ได้โดยการตั้งค่า location ในการกำหนดค่า vertexAI() หรือโดยการตั้งค่าตัวแปรสภาพแวดล้อม GCLOUD_LOCATION

  • หากต้องการระบุข้อมูลเข้าสู่ระบบ API คุณต้องตั้งค่าข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชัน Google Cloud

    1. วิธีระบุข้อมูลเข้าสู่ระบบ

      • หากคุณเรียกใช้โฟลว์จากสภาพแวดล้อม Google Cloud (Cloud Functions, Cloud Run และอื่นๆ) ระบบจะตั้งค่านี้โดยอัตโนมัติ

      • ในสภาพแวดล้อมสำหรับนักพัฒนาซอฟต์แวร์ในเครื่อง ให้เรียกใช้โดยเรียกใช้

      gcloud auth application-default login
      
    2. นอกจากนี้ โปรดตรวจสอบว่าบัญชีได้รับบทบาท IAM ของผู้ใช้ Vertex AI (roles/aiplatform.user) ดูเอกสารการควบคุมการเข้าถึงของ Vertex AI

การใช้งาน

โมเดล Generative AI

ปลั๊กอินนี้จะส่งออกข้อมูลอ้างอิงไปยังโมเดล Generative AI ที่รองรับแบบคงที่

import { geminiPro, geminiProVision, imagen2 } from '@genkit-ai/vertexai';

คุณใช้การอ้างอิงเหล่านี้เพื่อระบุโมเดลที่ generate() ใช้ได้

const llmResponse = await generate({
  model: geminiPro,
  prompt: 'What should I do when I visit Melbourne?',
});

ปลั๊กอินนี้ยังส่งออกการอ้างอิงไปยังโมเดลการฝังข้อความตุ๊กแกอย่างคงที่ด้วย

import { textEmbeddingGecko } from '@genkit-ai/vertexai';

คุณใช้การอ้างอิงนี้เพื่อระบุเครื่องมือฝังตัวที่เครื่องมือจัดทำดัชนีหรือรีทรีฟเวอร์ใช้ได้ เช่น หากใช้ Chroma DB

configureGenkit({
  plugins: [
    chroma([
      {
        embedder: textEmbeddingGecko,
        collectionName: 'my-collection',
      },
    ]),
  ],
});

หรือจะสร้างการฝังโดยตรงก็ได้โดยทำดังนี้

// import { embed, EmbedderArgument } from '@genkit-ai/ai/embedder';
const embedding = await embed({
  embedder: textEmbeddingGecko,
  content: 'How many widgets do you have in stock?',
});

มานุษยนิยมโคด 3 ในสวนโมเดล Vertex AI

หากมีสิทธิ์เข้าถึงโมเดลของ Claudi 3 (haiku, Sonnet หรือ opus) ในสวนโมเดล Vertex AI Model Garden คุณสามารถใช้โมเดลเหล่านั้นกับ Genkit ได้

ตัวอย่างการกำหนดค่าสำหรับการเปิดใช้โมเดล Vertex AI Model Garden มีดังนี้

import {
  vertexAI,
  claude3Haiku,
  claude3Sonnet,
  claude3Opus,
} from '@genkit-ai/vertexai';

export default configureGenkit({
  plugins: [
    vertexAI({
      location: 'us-central1',
      modelGardenModels: [claude3Haiku, claude3Sonnet, claude3Opus],
    }),
  ],
});

จากนั้นใช้เป็นรูปแบบปกติ:

const llmResponse = await generate({
  model: claude3Sonnet,
  prompt: 'What should I do when I visit Melbourne?',
});

ผู้ประเมิน

หากต้องการใช้ผู้ประเมินจากการประเมินอย่างรวดเร็ว Vertex AI ให้เพิ่มบล็อก evaluation ในการกำหนดค่าปลั๊กอิน vertexAI

import { vertexAI, VertexAIEvaluationMetricType } from '@genkit-ai/vertexai';

export default configureGenkit({
  plugins: [
    vertexAI({
      projectId: 'your-cloud-project',
      location: 'us-central1',
      evaluation: {
        metrics: [
          VertexAIEvaluationMetricType.SAFETY,
          {
            type: VertexAIEvaluationMetricType.ROUGE,
            metricSpec: {
              rougeType: 'rougeLsum',
            },
          },
        ],
      },
    }),
  ],
  // ...
});

การกำหนดค่าข้างต้นจะเพิ่มผู้ประเมินสำหรับเมตริก Safety และ ROUGE ตัวอย่างนี้แสดง 2 แนวทาง ได้แก่ เมตริก Safety ใช้ข้อมูลจำเพาะเริ่มต้น ส่วนเมตริก ROUGE จะระบุข้อกำหนดที่กำหนดเองซึ่งตั้งค่าประเภท Rouge เป็น rougeLsum

ผู้ประเมินทั้ง 2 คนเรียกใช้ได้โดยใช้คำสั่ง genkit eval:run กับชุดข้อมูลที่เข้ากันได้ กล่าวคือชุดข้อมูลที่มีช่อง output และ reference นอกจากนี้ ตัวประเมิน Safety ยังเรียกใช้ได้โดยใช้คำสั่ง genkit eval:flow -e vertexai/safety ได้ด้วย เนื่องจากต้องใช้เพียง output เท่านั้น