Azure OpenAI client module for Go
NOTE: this client can be used with Azure OpenAI and OpenAI.
Azure OpenAI Service provides access to OpenAI's features:
- Language models including the GPT-4, GPT-35-Turbo, and Embeddings model series.
- Image generation using DALL-E.
- Speech transcription and speech generation.
Source code | Package (pkg.go.dev) | REST API documentation | Product documentation
Getting started
Prerequisites
Install the packages
Install the azopenai
and azidentity
modules with go get
:
go get github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai
go get github.com/Azure/azure-sdk-for-go/sdk/azidentity
The azidentity module is used for Azure Active Directory authentication with Azure OpenAI.
Authentication
Azure OpenAI
Azure OpenAI clients can authenticate using Azure Active Directory or with an API key:
- Using Azure Active Directory, with a TokenCredential: example
- Using an API key: example
OpenAI
OpenAI supports connecting using an API key: example
Key concepts
See Key concepts in the product documentation for more details about general concepts.
Examples
Examples for various scenarios can be found on pkg.go.dev or in the example*_test.go files in our GitHub repo for azopenai.
Troubleshooting
Error Handling
All methods that send HTTP requests return *azcore.ResponseError
when these requests fail. ResponseError
has error details and the raw response from the service.
Logging
This module uses the logging implementation in azcore
. To turn on logging for all Azure SDK modules, set AZURE_SDK_GO_LOGGING
to all
. By default, the logger writes to stderr. Use the azcore/log
package to control log output. For example, logging only HTTP request and response events, and printing them to stdout:
import azlog "github.com/Azure/azure-sdk-for-go/sdk/azcore/log"
azlog.SetListener(func(cls azlog.Event, msg string) {
fmt.Println(msg)
})
azlog.SetEvents(azlog.EventRequest, azlog.EventResponse)
Contributing
This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution.
When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate
the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to
do this once across all repos using our CLA.
This project has adopted the Microsoft Open Source Code of Conduct. For more information, see
the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or
comments.