go/embed.go (65 lines of code) (raw):

package examples import ( "context" "fmt" "os" "log" "encoding/json" "google.golang.org/genai" ) func EmbedContent() error { // [START embed_content] ctx := context.Background() client, err := genai.NewClient(ctx, &genai.ClientConfig{ APIKey: os.Getenv("GEMINI_API_KEY"), Backend: genai.BackendGeminiAPI, }) if err != nil { log.Fatal(err) } text := "Hello World!" outputDim := int32(10) contents := []*genai.Content{ genai.NewContentFromText(text, genai.RoleUser), } result, err := client.Models.EmbedContent(ctx, "text-embedding-004", contents, &genai.EmbedContentConfig{ OutputDimensionality: &outputDim, }) if err != nil { log.Fatal(err) } embeddings, err := json.MarshalIndent(result.Embeddings, "", " ") if err != nil { log.Fatal(err) } fmt.Println(string(embeddings)) // [END embed_content] return err } func BatchEmbedContents() error { // [START batch_embed_contents] ctx := context.Background() client, err := genai.NewClient(ctx, &genai.ClientConfig{ APIKey: os.Getenv("GEMINI_API_KEY"), Backend: genai.BackendGeminiAPI, }) if err != nil { log.Fatal(err) } contents := []*genai.Content{ genai.NewContentFromText("What is the meaning of life?", genai.RoleUser), genai.NewContentFromText("How much wood would a woodchuck chuck?", genai.RoleUser), genai.NewContentFromText("How does the brain work?", genai.RoleUser), } outputDim := int32(10) result, err := client.Models.EmbedContent(ctx, "text-embedding-004", contents, &genai.EmbedContentConfig{ OutputDimensionality: &outputDim, }) if err != nil { log.Fatal(err) } embeddings, err := json.MarshalIndent(result.Embeddings, "", " ") if err != nil { log.Fatal(err) } fmt.Println(string(embeddings)) // [END batch_embed_contents] return err }