in gollm/gemini.go [92:122]
func findDefaultGCPProject(ctx context.Context) (string, error) {
log := klog.FromContext(ctx)
// First check env vars
// GOOGLE_CLOUD_PROJECT is the default for the genai library and a GCP convention
projectID := ""
for _, env := range []string{"GOOGLE_CLOUD_PROJECT"} {
if v := os.Getenv(env); v != "" {
projectID = v
log.Info("got project for vertex client from env var", "project", projectID, "env", env)
return projectID, nil
}
}
// Now check default project in gcloud
{
cmd := exec.CommandContext(ctx, "gcloud", "config", "get", "project")
var stdout bytes.Buffer
cmd.Stdout = &stdout
if err := cmd.Run(); err != nil {
return "", fmt.Errorf("cannot get project (using gcloud config get project): %w", err)
}
projectID = strings.TrimSpace(stdout.String())
if projectID != "" {
log.Info("got project from gcloud config", "project", projectID)
return projectID, nil
}
}
return "", fmt.Errorf("project was not set in gcloud config (or GOOGLE_CLOUD_PROJECT env var)")
}