in gollm/azopenai.go [44:78]
func NewAzureOpenAIClient(ctx context.Context, u url.URL) (*AzureOpenAIClient, error) {
azureOpenAIEndpoint := os.Getenv("AZURE_OPENAI_ENDPOINT")
if u.Host != "" {
u.Scheme = "https"
azureOpenAIEndpoint = u.String()
}
if azureOpenAIEndpoint == "" {
return nil, fmt.Errorf("AZURE_OPENAI_ENDPOINT environment variable not set")
}
azureOpenAIClient := AzureOpenAIClient{}
azureOpenAIKey := os.Getenv("AZURE_OPENAI_API_KEY")
if azureOpenAIKey != "" {
keyCredential := azcore.NewKeyCredential(azureOpenAIKey)
client, err := azopenai.NewClientWithKeyCredential(azureOpenAIEndpoint, keyCredential, nil)
if err != nil {
return nil, err
}
azureOpenAIClient.client = client
} else {
credential, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
return nil, err
}
client, err := azopenai.NewClient(azureOpenAIEndpoint, credential, nil)
if err != nil {
return nil, err
}
azureOpenAIClient.client = client
}
return &azureOpenAIClient, nil
}