Instalación
go get github.com/openmodexlabs/openmodex-sdk-go
Inicio Rápido
package main
import (
"context"
"fmt"
openmodex "github.com/openmodexlabs/openmodex-sdk-go"
)
func main() {
client := openmodex.NewClient("omx_sk_YOUR_KEY")
resp, err := client.Chat.Completions.Create(context.Background(), &openmodex.ChatCompletionParams{
Model: "gpt-4o",
Messages: []openmodex.ChatMessage{
{Role: "user", Content: "Hello!"},
},
})
if err != nil {
panic(err)
}
fmt.Println(resp.Choices[0].Message.Content)
}
Configuración
client := openmodex.NewClient("omx_sk_...",
openmodex.WithBaseURL("https://api.openmodex.com/v1"),
openmodex.WithTimeout(60 * time.Second),
openmodex.WithMaxRetries(3),
openmodex.WithFallbackModels("claude-3.5-sonnet", "gemini-2.0-flash"),
)
Streaming
stream, err := client.Chat.Completions.CreateStream(ctx, &openmodex.ChatCompletionParams{
Model: "gpt-4o",
Messages: []openmodex.ChatMessage{
{Role: "user", Content: "Write a poem."},
},
})
if err != nil {
panic(err)
}
for chunk, err := range stream.Iter() {
if err != nil {
break
}
fmt.Print(chunk.Choices[0].Delta.Content)
}
Alias de Modelos
El SDK de Go soporta alias de modelos convenientes:// Route to the cheapest available model
resp, _ := client.Chat.Completions.Create(ctx, &openmodex.ChatCompletionParams{
Model: "@cheapest",
Messages: messages,
})
// Other aliases: @auto, @fastest, @best
Presets
// Use built-in presets for common configurations
client := openmodex.NewClient("omx_sk_...", openmodex.CostSaver)
client := openmodex.NewClient("omx_sk_...", openmodex.LowLatency)
client := openmodex.NewClient("omx_sk_...", openmodex.HighQuality)