> ## Documentation Index
> Fetch the complete documentation index at: https://docs.yelu.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Go SDK

> 使用官方 OpenAI Go SDK 和自定义 Base URL 调用 Yelu AI API。

官方 OpenAI Go SDK 支持自定义 Base URL，可以调用 Yelu 的兼容端点。当前 v3 SDK 要求 Go 1.22 或更高版本。

## 安装

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
go get github.com/openai/openai-go/v3
```

## 配置客户端

```go theme={"theme":{"light":"github-light","dark":"github-dark"}}
package main

import (
	"os"

	"github.com/openai/openai-go/v3"
	"github.com/openai/openai-go/v3/option"
)

func newYeluClient() openai.Client {
	return openai.NewClient(
		option.WithAPIKey(os.Getenv("YELU_API_KEY")),
		option.WithBaseURL("https://api.yelu.ai/v1"),
	)
}
```

## 创建 Response

```go theme={"theme":{"light":"github-light","dark":"github-dark"}}
package main

import (
	"context"
	"fmt"
	"log"

	"github.com/openai/openai-go/v3"
	"github.com/openai/openai-go/v3/responses"
)

func main() {
	client := newYeluClient()
	response, err := client.Responses.New(context.Background(), responses.ResponseNewParams{
		Model: "gpt-4o-mini",
		Input: responses.ResponseNewParamsInputUnion{
			OfString: openai.String("给出一条实用的 API 可靠性建议。"),
		},
	})
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println(response.OutputText())
}
```

## 配置 Deadline

```go theme={"theme":{"light":"github-light","dark":"github-dark"}}
ctx, cancel := context.WithTimeout(context.Background(), 60*time.Second)
defer cancel()

response, err := client.Responses.New(ctx, responses.ResponseNewParams{
	Model: "gpt-4o-mini",
	Input: responses.ResponseNewParamsInputUnion{
		OfString: openai.String("解释指数退避。"),
	},
})
if err != nil {
	return fmt.Errorf("create Yelu response: %w", err)
}
```

<Note>在 `go.mod` 中固定 SDK 主版本，并在升级前阅读上游 Release Notes。Yelu 的 HTTP 契约兼容 OpenAI，但生成的 SDK 类型可能独立演进。</Note>

如果已安装的 SDK 尚未包含某个字段或端点，可使用 Go `net/http` 直接调用本文档的 REST API。
