ไลบรารี 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
เรียกใช้คําสั่งต่อไปนี้
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
ดาวน์โหลดและเรียกใช้โปรแกรมติดตั้งตามที่อธิบายไว้ในเอกสาร 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
เป็นสภาพแวดล้อมรันไทม์เลือกรุ่นของคุณ
วิธีที่ง่ายที่สุดในการเริ่มต้นคือการใช้ Google AI Gemini API ตรวจสอบว่าฟีเจอร์พร้อมให้บริการในภูมิภาคของคุณ
สร้างคีย์ API สำหรับ Gemini API โดยใช้ Google AI Studio จากนั้นตั้งค่าตัวแปรสภาพแวดล้อม
GOOGLE_GENAI_API_KEY
เป็นคีย์ของคุณexport GOOGLE_GENAI_API_KEY=<your API key>
หาก 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"
) หากทุกอย่างเรียบร้อยดี คุณจะได้รับรางวัลเป็นคำแนะนำเมนูสำหรับร้านอาหารธีมแมวในแท็บตรวจสอบ คุณจะเห็นประวัติการดำเนินการของขั้นตอน สําหรับแต่ละโฟลว์ คุณจะเห็นพารามิเตอร์ที่ส่งไปยังโฟลว์และการติดตามแต่ละขั้นตอนขณะทํางาน