ไลบรารี Genkit สำหรับ Go พร้อมให้ใช้งานเวอร์ชันตัวอย่างแล้ว เนื่องจากขณะนี้ไลบรารี Go อยู่ในรุ่นอัลฟ่า คุณจึงอาจเห็นการเปลี่ยนแปลง API และฟังก์ชันการทำงานเมื่อการพัฒนาดำเนินไป เราขอแนะนำให้ใช้สำหรับการสร้างต้นแบบและการสํารวจเท่านั้น
หากพบปัญหาเกี่ยวกับไลบรารีหรือเอกสารประกอบนี้ โปรดรายงานปัญหาในที่เก็บข้อมูล GitHub
หากต้องการเริ่มต้นใช้งาน Genkit ให้ติดตั้ง Genkit CLI แล้วเรียกใช้ genkit init
ในโปรเจ็กต์ Go ส่วนที่เหลือของหน้านี้จะแสดงวิธี
ข้อกำหนด
Go 1.22 ขึ้นไป โปรดดูดาวน์โหลดและติดตั้งในเอกสารอย่างเป็นทางการของ Go
Node.js 20 ขึ้นไป (สําหรับ Genkit CLI และ UI) ดูคำแนะนำสั้นๆ เกี่ยวกับการติดตั้ง Node ได้ที่ส่วนถัดไป
ติดตั้ง Genkit
หากยังไม่มี Node 20 ขึ้นไปในระบบ ให้ติดตั้งเลย
คําแนะนํา: เครื่องมือ
nvm
และnvm-windows
เป็นวิธีที่สะดวกในการติดตั้ง Node เวอร์ชันที่เฉพาะเจาะจงหากยังไม่ได้ติดตั้งในระบบ เครื่องมือเหล่านี้จะติดตั้ง Node ตามผู้ใช้แต่ละราย คุณจึงไม่ต้องทําการเปลี่ยนแปลงทั้งระบบวิธีติดตั้ง
nvm
Linux, macOS ฯลฯ
เรียกใช้คําสั่งต่อไปนี้
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
Windows
ดาวน์โหลดและเรียกใช้โปรแกรมติดตั้งตามที่อธิบายไว้ในเอกสาร nvm-windows
จากนั้นหากต้องการติดตั้ง Node และ
npm
ให้เปิด Shell ใหม่แล้วเรียกใช้คำสั่งต่อไปนี้nvm install 20
ติดตั้ง Genkit CLI โดยเรียกใช้คำสั่งต่อไปนี้
npm i -g genkit
คำสั่งนี้จะติดตั้ง Genkit CLI ลงในไดเรกทอรีการติดตั้ง Node เพื่อให้นำไปใช้นอกโปรเจ็กต์ Node ได้
สร้างและสำรวจโปรเจ็กต์ตัวอย่าง
สร้างไดเรกทอรีโปรเจ็กต์ใหม่
mkdir genkit-intro && cd genkit-intro
เริ่มต้นโปรเจ็กต์ Genkit
genkit init
เลือก
Go
เป็นสภาพแวดล้อมรันไทม์เลือกรุ่นของคุณ
Gemini (AI ของ Google)
วิธีที่ง่ายที่สุดในการเริ่มต้นคือการใช้ Google AI Gemini API ตรวจสอบว่าฟีเจอร์พร้อมให้บริการในภูมิภาคของคุณ
สร้างคีย์ API สำหรับ Gemini API โดยใช้ Google AI Studio จากนั้นตั้งค่าตัวแปรสภาพแวดล้อม
GOOGLE_GENAI_API_KEY
เป็นคีย์ของคุณexport GOOGLE_GENAI_API_KEY=<your API key>
Gemini (Vertex AI)
หาก Google AI Gemini API ไม่พร้อมให้บริการในภูมิภาคของคุณ ให้ลองใช้ Vertex AI API ซึ่งมี Gemini และโมเดลอื่นๆ ด้วย คุณจะต้องมีโปรเจ็กต์ Google Cloud ที่เปิดใช้การเรียกเก็บเงิน เปิดใช้ AI Platform API และตั้งค่าตัวแปรสภาพแวดล้อมเพิ่มเติม ดังนี้
gcloud services enable aiplatform.googleapis.com
export GCLOUD_PROJECT=<your project ID>
export GCLOUD_LOCATION=us-central1
ระบุชื่อโมดูล เช่น
example/genkit-intro
เลือกคำตอบเริ่มต้นสำหรับคำถามที่เหลือ ซึ่งจะเริ่มต้นโฟลเดอร์โปรเจ็กต์ด้วยโค้ดตัวอย่าง
คำสั่ง
genkit init
จะสร้างโมดูล Go ตัวอย่างและติดตั้งข้อกำหนดที่จำเป็น ไฟล์main.go
มีขั้นตอนเดียว นั่นคือmenuSuggestionFlow
ซึ่งจะแจ้งให้ LLM แนะนำรายการสำหรับร้านอาหารที่มีธีมที่กำหนดไฟล์นี้จะมีลักษณะดังต่อไปนี้ (ขั้นตอนการกำหนดค่าปลั๊กอินอาจดูแตกต่างออกไปหากคุณเลือก Vertex AI)
package main import ( "context" "errors" "fmt" "log" // Import Genkit and the Google AI plugin "github.com/firebase/genkit/go/ai" "github.com/firebase/genkit/go/genkit" "github.com/firebase/genkit/go/plugins/googlegenai" ) func main() { ctx := context.Background() // Initialize Genkit with the Google AI plugin. When you pass nil for the // Config parameter, the Google AI plugin will get the API key from the // GOOGLE_GENAI_API_KEY environment variable, which is the recommended // practice. g, err := genkit.Init(ctx, genkit.WithPlugins(&googlegenai.GoogleAI{})) if err != nil { log.Fatal(err) } // Define a simple flow that prompts an LLM to generate menu suggestions. genkit.DefineFlow(g, "menuSuggestionFlow", func(ctx context.Context, input string) (string, error) { // The Google AI API provides access to several generative models. Here, // we specify gemini-1.5-flash. m := googlegenai.GoogleAIModel(g, "gemini-1.5-flash") if m == nil { return "", errors.New("menuSuggestionFlow: failed to find model") } // Construct a request and send it to the model API (Google AI). resp, err := genkit.Generate(ctx, g, ai.WithModel(m), ai.WithConfig(&ai.GenerationCommonConfig{Temperature: 1}), ai.WithPromptText(fmt.Sprintf(`Suggest an item for the menu of a %s themed restaurant`, input))) if err != nil { return "", err } // Handle the response from the model API. In this sample, we just // convert it to a string. but more complicated flows might coerce the // response into structured output or chain the response into another // LLM call. text := resp.Text() return text, nil }) <-ctx.Done() }
เมื่อสร้างฟีเจอร์ AI ของแอปด้วย Genkit คุณอาจสร้างขั้นตอนที่มีหลายขั้นตอน เช่น การเตรียมข้อมูลอินพุต การสร้างพรอมต์ที่ซับซ้อนมากขึ้น การผสานรวมแหล่งข้อมูลภายนอกสําหรับการสร้างที่เพิ่มการดึงข้อมูล (RAG) และอื่นๆ
ตอนนี้คุณสามารถเรียกใช้และสำรวจฟีเจอร์ของ Genkit และโปรเจ็กต์ตัวอย่างในเครื่องของคุณได้แล้ว ดาวน์โหลดและเริ่มใช้ UI ของนักพัฒนาแอป Genkit โดยทำดังนี้
genkit start
UI ของนักพัฒนาแอป Genkit กำลังทำงานบนเครื่องของคุณ เมื่อคุณเรียกใช้โมเดลหรือโฟลว์ในขั้นตอนถัดไป เครื่องจะดําเนินการประสานงานที่จําเป็นเพื่อให้ขั้นตอนต่างๆ ของโฟลว์ทํางานร่วมกัน การเรียกใช้บริการภายนอก เช่น Gemini API จะยังคงทํากับเซิร์ฟเวอร์ที่ใช้งานอยู่
นอกจากนี้ เนื่องจากคุณอยู่ในสภาพแวดล้อมของนักพัฒนาซอฟต์แวร์ Genkit จะจัดเก็บร่องรอยและสถานะการทํางานไว้ในไฟล์ในเครื่อง
UI ของนักพัฒนาซอฟต์แวร์ Genkit จะดาวน์โหลดและเปิดขึ้นโดยอัตโนมัติเมื่อคุณเรียกใช้คำสั่ง
genkit start
UI ของนักพัฒนาแอปช่วยให้คุณดูว่ากําหนดการไหลเวียนใดไว้และโมเดลใดที่กําหนดค่าไว้ เรียกใช้ และตรวจสอบร่องรอยของการเรียกใช้ก่อนหน้านี้ ลองใช้ฟีเจอร์ต่อไปนี้
ในแท็บเรียกใช้ คุณจะเห็นรายการโฟลว์ทั้งหมดที่คุณกําหนดไว้และรูปแบบที่ปลั๊กอินกําหนดค่าไว้
คลิก menuSuggestionFlow แล้วลองเรียกใช้กับข้อความอินพุตบางส่วน (เช่น
"cat"
) หากทุกอย่างเรียบร้อยดี คุณจะได้รับรางวัลเป็นคำแนะนำเมนูสำหรับร้านอาหารธีมแมวในแท็บตรวจสอบ คุณจะเห็นประวัติการดำเนินการของขั้นตอน สําหรับแต่ละโฟลว์ คุณจะเห็นพารามิเตอร์ที่ส่งไปยังโฟลว์และการติดตามแต่ละขั้นตอนขณะทํางาน