Genkit Go 1.0 ile Google, AI'nın gelişimi için açık kaynaklı resimlerinin ilk kararlı sürümünü Go-EDOSYSTEM'de yayınladı. Şimdi başlayarak, geliştiriciler üretime hazır olarak uygulamalar oluşturabilir ve dağıtabilir. Aynı zamanda Google yeni CLI komutunu getiriyor genkit init:ai-tools
Kodlama asistanları için doğrudan entegrasyon belediyelere.
Type-sicuro'ya akışlar oluşturun
Genkit Go 1.0'ın en heyecan verici yeniliklerinden biri, Go ve Json-scheme validasyon araçlarıyla yapay zeka türü akışları yaratma olasılığıdır. Bu görünüşe göre güvenilir ve daha kolay test edilmiş bir şekilde yapılandırılabilir.
Duyurunun katkısından aşağıdaki örnekte, bir akış yapılandırılmış bir tarif oluşturur:
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
}
İşte bir akış (recipeGeneratorFlow
) ana bileşen ve “vejetaryen” gibi isteğe bağlı beslenme spesifikasyonlarına dayalı tarifler ürettiğini tanımlar. İstem, dinamik olarak oluşturulur, AI modeline (Google Gemini) ve bir veri yapısındaki yanıtı açıkça tanımlanmış (Recipe
) geri döndü. Sonunda, akış “avokado, vejetaryen” girişi ile çalışır ve malzemeler, pişirme süresi ve uçları ile eksiksiz bir JSON tarifi döndürür.
Ortak vokal modellerle bağlantı
Buna ek olarak, Genkit Go 1.0 ile geliştirici, harici arıları araç aracılığıyla entegre etme ve Google AI modelleri, Vertex AI, Openai, Antropik ve Ollama'yı tek tip bir arayüz aracılığıyla kullanma fırsatına sahiptir. Düzenleme bir uç nokta HTTP olarak basit olmalıdır. Özerk bir CLI ve bir Testler, çıkışlar ve izleme için etkileşimli kullanıcı arayüzü desteği.
Yeni Komut genkit init:ai-tools
Gemini CLI, Firebase Studio, Claude Code ve Cursor gibi yardımcı araçları otomatik olarak ayarlar. Bu nedenle, geliştiriciler bunu gen kiti belgelerini doğrudan aramak, akışları test etmek, hata ayıklamaların izlerini yapmak ve en iyi uygulamalara göre kod oluşturmak için kullanabilir.
(MDO)
Bir yanıt yazın