Docs
Go
Go
Use o Ignus Code com o SDK oficial da OpenAI para Go.
Instalação
go get github.com/openai/openai-goConfiguração
package main
import (
"context"
"fmt"
"os"
"github.com/openai/openai-go"
"github.com/openai/openai-go/option"
)
func main() {
client := openai.NewClient(
option.WithBaseURL("https://proxy.ignustec.com.br/v1"),
option.WithAPIKey(os.Getenv("IGNUS_API_KEY")),
)
ctx := context.Background()
response, err := client.Chat.Completions.New(ctx, openai.ChatCompletionNewParams{
Model: openai.F(openai.ChatModelGPT4o),
Messages: openai.F([]openai.ChatCompletionMessageParamUnion{
openai.UserMessage("O que é um goroutine em Go?"),
}),
})
if err != nil {
panic(err)
}
fmt.Println(response.Choices[0].Message.Content)
}Streaming
stream := client.Chat.Completions.NewStreaming(ctx, openai.ChatCompletionNewParams{
Model: openai.F(openai.ChatModelGPT4o),
Messages: openai.F([]openai.ChatCompletionMessageParamUnion{
openai.UserMessage("Explique channels em Go."),
}),
})
for stream.Next() {
chunk := stream.Current()
if len(chunk.Choices) > 0 {
fmt.Print(chunk.Choices[0].Delta.Content)
}
}
if err := stream.Err(); err != nil {
panic(err)
}Com system prompt
messages := []openai.ChatCompletionMessageParamUnion{
openai.SystemMessage("Você é um especialista em Go."),
openai.UserMessage("Qual a diferença entre goroutine e thread?"),
}
response, err := client.Chat.Completions.New(ctx, openai.ChatCompletionNewParams{
Model: openai.F("gpt-4o"),
Messages: openai.F(messages),
Temperature: openai.F(0.7),
})