Skip to main content
Method: Direct HTTP POST /embeddings (facade method not yet available).

Example

import (
    "bytes"
    "context"
    "encoding/json"
    "fmt"
    "io"
    "log"
    "net/http"

    aistats "packages/sdk-go"
)

ctx := context.Background()
client := aistats.New("your-api-key", "https://api.ai-stats.dev")

// Since no facade method, use direct HTTP
cfg := client.Completions.ApiClient.GetConfig()
url := cfg.Servers[0].URL + "/embeddings"

requestBody := map[string]interface{}{
    "model": "openai/text-embedding-3-large",
    "input": "Sample text",
}

jsonData, err := json.Marshal(requestBody)
if err != nil {
    log.Fatal(err)
}

req, err := http.NewRequestWithContext(ctx, "POST", url, bytes.NewBuffer(jsonData))
if err != nil {
    log.Fatal(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer your-api-key")

httpClient := &http.Client{}
resp, err := httpClient.Do(req)
if err != nil {
    log.Fatal(err)
}
defer resp.Body.Close()

body, err := io.ReadAll(resp.Body)
if err != nil {
    log.Fatal(err)
}

fmt.Println(string(body))

Key parameters

  • model (required): Embedding model id (e.g., openai/text-embedding-3-large).
  • input (required): String or array of strings.
  • encoding_format: float (default) or base64.
  • dimensions: Optional integer to truncate embedding length (model-dependent).
  • user: Optional end-user tag.

Returns

Embedding payload (JSON)