OpenAI Go
The official Go SDK, with two client options.
Public
Add the module with go get github.com/openai/openai-go/v3, then set the base URL and key as client options.
Fig. I, main.go
// go get github.com/openai/openai-go/v3
package main
import (
"context"
"fmt"
"github.com/openai/openai-go/v3"
"github.com/openai/openai-go/v3/option"
)
func main() {
client := openai.NewClient(
option.WithBaseURL("https://api.pollio.ai/v1"),
option.WithAPIKey("pl-live-..."),
)
params := openai.ChatCompletionNewParams{
Messages: []openai.ChatCompletionMessageParamUnion{
openai.UserMessage("Hello"),
},
Model: "deepseek/deepseek-v4.1-flash",
}
completion, err := client.Chat.Completions.New(context.TODO(), params)
if err != nil {
panic(err)
}
fmt.Println(completion.Choices[0].Message.Content)
}Private
Start pollio proxy on your machine, then point OpenAI Go at it instead.
Fig. II, main.go
// go get github.com/openai/openai-go/v3
package main
import (
"context"
"fmt"
"github.com/openai/openai-go/v3"
"github.com/openai/openai-go/v3/option"
)
func main() {
client := openai.NewClient(
option.WithBaseURL("http://127.0.0.1:8787/v1"),
option.WithAPIKey("pl-live-..."),
)
params := openai.ChatCompletionNewParams{
Messages: []openai.ChatCompletionMessageParamUnion{
openai.UserMessage("Hello"),
},
Model: "deepseek/deepseek-v4.1-flash",
}
completion, err := client.Chat.Completions.New(context.TODO(), params)
if err != nil {
panic(err)
}
fmt.Println(completion.Choices[0].Message.Content)
}Names and logos belong to their owners. No endorsement implied.