Azure Dart Package
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.
Table of Contents
Features
- 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.
Installation
Add the package to your pubspec.yaml
:
dependencies:
azure: ^1.0.0
Then, run:
dart pub get
Usage
Initialization
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',
);
}
Completions
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);
Embeddings
Create embeddings for given inputs.
final embeddings = await azure.openAI.embeddings.createEmbedding(
deploymentId: 'YOUR_DEPLOYMENT_ID',
inputs: ['This is a test sentence.'],
);
print(embeddings);
Chat Completions
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);
Image Generation
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);
Audio Transcriptions
Transcribe an audio file.
final transcription = await azure.openAI.transcriptions.transcribe(
deploymentId: 'YOUR_DEPLOYMENT_ID',
filePath: 'path/to/audio/file.wav',
);
print(transcription);
Audio Translations
Translate audio to English.
final translation = await azure.openAI.translations.translate(
deploymentId: 'YOUR_DEPLOYMENT_ID',
filePath: 'path/to/audio/file.wav',
);
print(translation);
Project Structure
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
Future-proofing
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.
Contributing
Contributions are welcome! Please submit issues and pull requests to help improve the package.
License
This package is available under the MIT License.
Libraries
- api_client
- azure
- A Dart package for interacting with Azure OpenAI and other Azure AI services.
- open_ai/endpoints/completions
- open_ai/models/completions_model
- Represents a request to the OpenAI Completions API.
- open_ai/open_ai
- Provides functionalities for interacting with Azure OpenAI services.