google/generative-ai-go

Providing an empty string as an API key produces an unhelpful error message

Closed this issue · 0 comments

#48 added error handling in the case the user does not provide an API key, but did not handle the case of an empty string API key, which can easily be caused by unset environment variables

This case is handled by #48:

import "github.com/google/generative-ai-go/genai"

func main()
    ctx := context.Background()
    client, err := genai.NewClient(ctx)
    // …
    model := client.GenerativeModel(…)
    // …
    resp, err := model.GenerateContent(ctx, parts...)
    if err != nil {
        // Prints a useful error message: You need an API key to use this client. …
        log.Fatal(err)
    }
}

This case is not handled:

    client, err := genai.NewClient(ctx, option.WithAPIKey(os.Getenv("MY_API_KEY")))
    // …
    resp, err := model.GenerateContent(ctx, parts...)
    if err != nil {
        // Print an unhelpful error message
        // googleapi: Error 403: Request had insufficient authentication scopes.
        // error details: name = ErrorInfo reason = ACCESS_TOKEN_SCOPE_INSUFFICIENT
        // domain = googleapis.com
        // metadata = map[method:google.ai.generativelanguage.v1.GenerativeService.GenerateContent
        // service:generativelanguage.googleapis.com]
        // …
        log.Fatal(err)
    }