Kami sangat senang bisa mengumumkan perilisan Genkit Go 1.0, rilis stabil dan siap produksi pertama dari framework pengembangan AI open source Google untuk ekosistem Go. Bersamaan dengan rilis ini, kami juga memperkenalkan perintah genkit init:ai-tools untuk meningkatkan secara signifikan alur kerja pengembangan berbantuan AI Anda.
Genkit adalah framework open source untuk membangun aplikasi berbasis AI full-stack. Framework ini menyediakan antarmuka terpadu untuk beberapa penyedia model dan API yang efisien untuk konten multimodal, output terstruktur, panggilan alat, retrieval-augmented generation (RAG), dan alur kerja agentik. Dengan Genkit Go, Anda sekarang bisa membangun dan menerapkan aplikasi AI siap produksi dengan kecepatan, keamanan, dan keandalan Go.
Genkit Go sekarang sudah stabil dan siap untuk penggunaan produksi!
Fitur utama:
Siap memulai coding? Lihat panduan memulai kami.
Genkit Go 1.0 merepresentasikan komitmen kami untuk menyediakan fondasi yang stabil dan dapat diandalkan untuk membangun aplikasi berbasis AI di Go. Dengan rilis ini, Anda bisa menerapkan aplikasi berbasis AI ke dalam produksi dengan Genkit, karena API-nya sudah stabil dan teruji dengan baik.
Seperti Go itu sendiri, ini dimaksudkan agar program yang ditulis dengan Genkit 1.* akan terus dikompilasi dan dijalankan dengan benar, tidak berubah, bahkan ketika rilis “point” masa depan Genkit muncul (Genkit 1.1, Genkit 1.2, dll.).
Salah satu fitur Genkit yang paling kuat adalah flow - fungsi untuk kasus penggunaan AI yang menyediakan kemampuan observasi, pengujian yang mudah, dan deployment yang disederhanakan. Begini cara Anda mendefinisikan flow di Go untuk menghasilkan urutan langkah terstruktur:
package main
import (
"context"
"encoding/json"
"fmt"
"log"
"github.com/firebase/genkit/go/ai"
"github.com/firebase/genkit/go/genkit"
"github.com/firebase/genkit/go/plugins/googlegenai"
)
// Define your data structures
type RecipeInput struct {
Ingredient string `json:"ingredient" jsonschema:"description=Main ingredient or cuisine type"`
DietaryRestrictions string `json:"dietaryRestrictions,omitempty" jsonschema:"description=Any dietary restrictions"`
}
type Recipe struct {
Title string `json:"title"`
Description string `json:"description"`
PrepTime string `json:"prepTime"`
CookTime string `json:"cookTime"`
Servings int `json:"servings"`
Ingredients []string `json:"ingredients"`
Instructions []string `json:"instructions"`
Tips []string `json:"tips,omitempty"`
}
func main() {
ctx := context.Background()
// Initialize Genkit with plugins
g := genkit.Init(ctx,
genkit.WithPlugins(&googlegenai.GoogleAI{}),
genkit.WithDefaultModel("googleai/gemini-2.5-flash"),
)
// Define a type-safe flow
recipeFlow := genkit.DefineFlow(g, "recipeGeneratorFlow",
func(ctx context.Context, input *RecipeInput) (*Recipe, error) {
dietaryRestrictions := input.DietaryRestrictions
if dietaryRestrictions == "" {
dietaryRestrictions = "none"
}
prompt := fmt.Sprintf(`Create a recipe with the following requirements:
Main ingredient: %s
Dietary restrictions: %s`, input.Ingredient, dietaryRestrictions)
// Generate structured data with type safety
recipe, _, err := genkit.GenerateData[Recipe](ctx, g,
ai.WithPrompt(prompt),
)
if err != nil {
return nil, fmt.Errorf("failed to generate recipe: %w", err)
}
return recipe, nil
})
// Run the flow
recipe, err := recipeFlow.Run(ctx, &RecipeInput{
Ingredient: "avocado",
DietaryRestrictions: "vegetarian",
})
if err != nil {
log.Fatalf("could not generate recipe: %v", err)
}
// Print the structured recipe
recipeJSON, _ := json.MarshalIndent(recipe, "", " ")
fmt.Println("Sample recipe generated:")
fmt.Println(string(recipeJSON))
<-ctx.Done() // Used for local testing only
}
Genkit Go menyediakan antarmuka tunggal yang konsisten untuk bekerja dengan beberapa penyedia model AI, termasuk Google AI, Vertex AI, OpenAI, Anthropic, dan Ollama. Pelajari lebih lanjut tentang membuat konten dengan model AI:
// Use Google AI models
resp, err := genkit.Generate(ctx, g,
ai.WithModelName("googleai/gemini-2.5-flash"),
ai.WithPrompt("What is the weather like today?"),
)
// Use OpenAI models
resp, err := genkit.Generate(ctx, g,
ai.WithModelName("openai/gpt-4o"),
ai.WithPrompt("How are you today?"),
)
// Switch to Ollama for local models
resp, err := genkit.Generate(ctx, g,
ai.WithModelName("ollama/llama3"),
ai.WithPrompt("What is the meaning of life?"),
)
Genkit Go memudahkan model AI Anda untuk mengakses fungsi dan API eksternal. Lihat panduan panggilan alat selengkapnya:
// Define a tool
type WeatherInput struct {
Location string `json:"location" jsonschema_description:"Location to get weather for"`
}
getWeatherTool := genkit.DefineTool(g, "getWeather",
"Gets the current weather in a given location",
func(ctx *ai.ToolContext, input WeatherInput) (string, error) {
// Your weather API logic here
return fmt.Sprintf("The current weather in %s is 72°F and sunny.", input.Location), nil
})
// Use the tool in generation
resp, err := genkit.Generate(ctx, g,
ai.WithPrompt("What's the weather in San Francisco?"),
ai.WithTools(getWeatherTool),
)
Terapkan alur Anda sebagai endpoint HTTP dengan penyiapan minimal. Lihat panduan deployment untuk opsi lainnya:
// Create HTTP handlers for your flows
mux := http.NewServeMux()
mux.HandleFunc("POST /recipeGeneratorFlow", genkit.Handler(recipeFlow))
// Start the server
log.Fatal(server.Start(ctx, "127.0.0.1:3400", mux))
Genkit Go hadir dengan seperangkat alat pengembangan komprehensif yang dirancang untuk menjadikan pembuatan aplikasi AI semakin cepat dan intuitif. Seluruh toolchain lokal tersedia melalui satu CLI yang bekerja secara mulus dengan alur kerja pengembangan Go Anda.
Mulai secara cepat dengan biner CLI mandiri kami – tidak perlu penginstalan runtime lainnya:
Untuk macOS dan Linux:
curl -sL cli.genkit.dev | bash
Untuk Windows: Download langsung dari: cli.genkit.dev
CLI bekerja dengan aplikasi Genkit dalam setiap bahasa yang didukung (JavaScript, Go, Python) dan memberi Anda beberapa perintah yang mudah untuk melakukan pengujian dan iterasi dengan cepat seperti menjalankan dan mengevaluasi alur Anda.
UI Developer menyediakan antarmuka visual untuk melakukan pengujian dan proses debug aplikasi AI Anda:
Luncurkan UI Developer bersama aplikasi Go Anda melalui CLI:
genkit start -- go run .
Berikut adalah pengalaman yang terlihat ketika menjalankan dan memeriksa alur recipeGenerator
dari sebelumnya:
Kami juga sangat senang bisa memperkenalkan perintah genkit init:ai-tools
yang merevolusi cara Anda bekerja dengan asisten AI selama pengembangan. Fitur ini, kini tersedia untuk developer Go dan JavaScript, secara otomatis mengonfigurasi asisten coding AI populer untuk bekerja secara mulus dengan framework dan peralatan Genkit. Pelajari lebih lanjut tentang pengembangan berbantuan AI di Genkit.
Untuk menggunakannya, instal Genkit CLI dan jalankan:
genkit init:ai-tools
Menjalankan perintah akan melakukan hal berikut:
Perintah memiliki dukungan bawaan untuk:
Untuk alat lainnya, pilih opsi “generic” untuk mendapatkan file GENKIT.md yang bisa Anda integrasikan secara manual.
Dengan integrasi asisten AI, Anda bisa:
1. Buat project baru:
mkdir my-genkit-app && cd my-genkit-app
go mod init example/my-genkit-app
2. Instal Genkit dan CLI:
go get github.com/firebase/genkit/go
curl -sL cli.genkit.dev | bash
3. Siapkan integrasi asisten AI:
genkit init:ai-tools
4. Buat alur pertama Anda menggunakan contoh di atas.
5. Mulai UI Developer:
genkit start -- go run .
Untuk panduan yang lebih terperinci, lihat panduan memulai.
Genkit Go 1.0 menggabungkan performa dan keandalan Go dengan framework dan alat AI Genkit yang siap produksi. Kami tak sabar ingin segera melihat kreasi Anda!
Selamat coding! 🚀