The azure
Dart package is a monorepo consisting of multiple sub-packages, starting with the open_ai
and ai
packages. The open_ai
package provides an easy-to-use interface to interact with Azure OpenAI services, including features such as completions, embeddings, chat completions, image generation, transcriptions, and translations. The ai
package is a placeholder for future Azure AI services.
- Completions: Generate text based on provided prompts.
- Embeddings: Get vector representations of given inputs for use in machine learning models.
- Chat Completions: Create conversational AI responses.
- Image Generation: Generate images based on text descriptions using DALL-E.
- Audio Transcriptions: Transcribe audio into text.
- Audio Translations: Translate audio into English.
Add the package to your pubspec.yaml
:
dependencies:
azure: ^1.0.0
Then, run:
dart pub get
To start using the package, you need to initialize the Azure
class by providing your Azure endpoint and API key.
import 'package:azure/azure.dart';
void main() {
final azure = Azure(
endpoint: 'https://YOUR_RESOURCE_NAME.azure.com',
apiKey: 'YOUR_API_KEY',
);
}
Generate completions based on a prompt.
final completions = await azure.openAI.completions.createCompletion(
deploymentId: 'YOUR_DEPLOYMENT_ID',
prompt: 'Tell me a joke about cats.',
maxTokens: 50,
temperature: 0.8,
);
print(completions);
Create embeddings for given inputs.
final embeddings = await azure.openAI.embeddings.createEmbedding(
deploymentId: 'YOUR_DEPLOYMENT_ID',
inputs: ['This is a test sentence.'],
);
print(embeddings);
Generate chat completions for a conversation.
final chatResponse = await azure.openAI.chat.createChatCompletion(
deploymentId: 'YOUR_DEPLOYMENT_ID',
messages: [
{'role': 'user', 'content': 'What is the weather like today?'}
],
);
print(chatResponse);
Generate images based on a prompt using DALL-E.
final images = await azure.openAI.images.generateImage(
deploymentId: 'YOUR_DEPLOYMENT_ID',
prompt: 'A futuristic city skyline at sunset.',
);
print(images);
Transcribe an audio file.
final transcription = await azure.openAI.transcriptions.transcribe(
deploymentId: 'YOUR_DEPLOYMENT_ID',
filePath: 'path/to/audio/file.wav',
);
print(transcription);
Translate audio to English.
final translation = await azure.openAI.translations.translate(
deploymentId: 'YOUR_DEPLOYMENT_ID',
filePath: 'path/to/audio/file.wav',
);
print(translation);
The package is organized into separate files for handling different functionalities:
lib/
│ azure.dart // Main entry point
│ api_client.dart // Core HTTP client for making requests
│
├── open_ai/ // OpenAI sub-package for Azure services
│ ├── endpoints/ // API endpoints for different Azure OpenAI services
│ │ completions.dart // API for Completions
│ │ embeddings.dart // API for Embeddings
│ │ chat_completions.dart // API for Chat Completions
│ │ images.dart // API for Image Generation
│ │ audio_transcriptions.dart // API for Transcriptions
│ │ audio_translations.dart // API for Translations
│ └── models/ // Models for request/response data
│ completions_model.dart
│ embeddings_model.dart
│ chat_model.dart
│ images_model.dart
│ audio_model.dart
│
├── ai/ // Placeholder for future Azure AI services
The azure
package is designed to support future changes in Azure REST API versions. The core HTTP client (api_client.dart
) allows specifying the API version, making it easy to adapt to future updates by modifying the api-version
parameter.
If Azure releases a new API version, you can update the apiVersion
parameter accordingly without changing the core logic of your code.
To contribute to this package, hit the button below to open up a dev workspace: