AllToken Go SDK
공식 Go SDK. HTTP 래퍼로 OpenAI 및 Anthropic 듀얼 서피스.
설치
go get
$ go get github.com/alltoken-ai/alltoken-goGo 1.24+ 필요.
빠른 시작
하나의 API Key로 OpenAI 호환 및 Anthropic 호환 엔드포인트를 모두 사용할 수 있습니다:
Go
| 1 | package main |
| 2 | |
| 3 | import ( |
| 4 | "context" |
| 5 | "encoding/json" |
| 6 | "fmt" |
| 7 | "os" |
| 8 | |
| 9 | "github.com/alltoken-ai/alltoken-go" |
| 10 | ) |
| 11 | |
| 12 | func main() { |
| 13 | client, _ := alltoken.New(alltoken.Config{ |
| 14 | APIKey: os.Getenv("ALLTOKEN_API_KEY"), |
| 15 | }) |
| 16 | |
| 17 | // OpenAI 호환 (/v1에 매핑) |
| 18 | resp, _ := client.OpenAI.Raw.Do(context.Background(), "POST", "/chat/completions", map[string]any{ |
| 19 | "model": "gpt-4o", |
| 20 | "messages": []map[string]string{{"role": "user", "content": "안녕하세요!"}}, |
| 21 | }) |
| 22 | defer resp.Body.Close() |
| 23 | |
| 24 | var out map[string]any |
| 25 | json.NewDecoder(resp.Body).Decode(&out) |
| 26 | fmt.Println(out) |
| 27 | } |
설정
Go
| 1 | client, err := alltoken.New(alltoken.Config{ |
| 2 | APIKey: "...", // 필수 |
| 3 | BaseURL: "https://api.alltoken.ai", // 선택 |
| 4 | HTTPClient: &http.Client{Timeout: 60 * time.Second}, // 선택 |
| 5 | DefaultHeaders: map[string]string{"X-My-Tag": "a"}, // 선택 |
| 6 | }) |
API 서피스
.Raw는 HTTP 클라이언트 래퍼입니다. Base URL과 인증이 설정되어 있으며 .Do(ctx, method, path, body)로 모든 라우트에 접근할 수 있습니다. Body는 자동으로 JSON 인코딩됩니다. oapi-codegen으로 OpenAPI 스펙에서 생성된 타입은 internal/gen/ 디렉토리에 있습니다.
| 필드 | Base URL |
|---|---|
client.OpenAI.Raw | https://api.alltoken.ai/v1 |
client.Anthropic.Raw | https://api.alltoken.ai/anthropic |