File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ # Go examples
2+
3+ This directory contains examples of working with the Gemini API using the
4+ [ Google Gen AI SDK for Go] ( https://pkg.go.dev/google.golang.org/genai ) .
5+
6+ ## Run tests
7+
8+ go test
Original file line number Diff line number Diff line change 1+ module gemini-api-examples
2+
3+ go 1.23
4+
5+ toolchain go1.24.1
6+
7+ require google.golang.org/genai v0.5.0
8+
9+ require (
10+ cloud.google.com/go v0.116.0 // indirect
11+ cloud.google.com/go/compute/metadata v0.5.0 // indirect
12+ github.com/google/go-cmp v0.6.0 // indirect
13+ github.com/gorilla/websocket v1.5.3 // indirect
14+ golang.org/x/oauth2 v0.23.0 // indirect
15+ golang.org/x/sys v0.25.0 // indirect
16+ )
Original file line number Diff line number Diff line change 1+ cloud.google.com/go v0.116.0 h1:B3fRrSDkLRt5qSHWe40ERJvhvnQwdZiHu0bJOpldweE =
2+ cloud.google.com/go v0.116.0 /go.mod h1:cEPSRWPzZEswwdr9BxE6ChEn01dWlTaF05LiC2Xs70U =
3+ cloud.google.com/go/compute/metadata v0.5.0 h1:Zr0eK8JbFv6+Wi4ilXAR8FJ3wyNdpxHKJNPos6LTZOY =
4+ cloud.google.com/go/compute/metadata v0.5.0 /go.mod h1:aHnloV2TPI38yx4s9+wAZhHykWvVCfu7hQbF+9CWoiY =
5+ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI =
6+ github.com/google/go-cmp v0.6.0 /go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY =
7+ github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg =
8+ github.com/gorilla/websocket v1.5.3 /go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE =
9+ golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs =
10+ golang.org/x/oauth2 v0.23.0 /go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI =
11+ golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34 =
12+ golang.org/x/sys v0.25.0 /go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA =
13+ google.golang.org/genai v0.5.0 h1:0Gg795HqLJ+fBisumETTV6qsIPWBXNqTGVdKAAenhcc =
14+ google.golang.org/genai v0.5.0 /go.mod h1:yPyKKBezIg2rqZziLhHQ5CD62HWr7sLDLc2PDzdrNVs =
Original file line number Diff line number Diff line change 1+ package examples
2+
3+ import (
4+ "context"
5+ "fmt"
6+ "log"
7+ "os"
8+
9+ "google.golang.org/genai"
10+ )
11+
12+ func GenerateContentTextOnly () (* genai.GenerateContentResponse , error ) {
13+ // [START text_gen_text_only_prompt]
14+ ctx := context .Background ()
15+ client , err := genai .NewClient (ctx , & genai.ClientConfig {
16+ APIKey : os .Getenv ("GEMINI_API_KEY" ),
17+ Backend : genai .BackendGeminiAPI ,
18+ })
19+ if err != nil {
20+ log .Fatal (err )
21+ }
22+
23+ result , err := client .Models .GenerateContent (
24+ ctx ,
25+ "gemini-2.0-flash" ,
26+ genai .Text ("Write a story about a magic backpack." ),
27+ nil ,
28+ )
29+ printResponse (result )
30+ // [END text_gen_text_only_prompt]
31+ return result , err
32+ }
33+
34+ func printResponse (resp * genai.GenerateContentResponse ) {
35+ for _ , cand := range resp .Candidates {
36+ if cand .Content != nil {
37+ for _ , part := range cand .Content .Parts {
38+ fmt .Println (part .Text )
39+ }
40+ }
41+ }
42+ }
Original file line number Diff line number Diff line change 1+ package examples
2+
3+ import (
4+ "testing"
5+ )
6+
7+ func TestGenerateContentTextOnly (t * testing.T ) {
8+ _ , err := GenerateContentTextOnly ()
9+ if err != nil {
10+ t .Errorf ("GenerateContentTextOnly returned an error." )
11+ }
12+ }
You can’t perform that action at this time.
0 commit comments