Azure AI Projects SDK for Java
SDK de haut niveau pour la gestion de projets Azure AI Foundry avec accès aux connexions, ensembles de données, index et évaluations.
Installation
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-ai-projects</artifactId>
<version>1.0.0-beta.1</version>
</dependency>
Variables d'environnement
PROJECT_ENDPOINT=https://<resource>.services.ai.azure.com/api/projects/<project>
Authentification
import com.azure.ai.projects.AIProjectClientBuilder;
import com.azure.identity.DefaultAzureCredentialBuilder;
AIProjectClientBuilder builder = new AIProjectClientBuilder()
.endpoint(System.getenv("PROJECT_ENDPOINT"))
.credential(new DefaultAzureCredentialBuilder().build());
Hiérarchie des clients
Le SDK fournit plusieurs sous-clients pour différentes opérations :
| Client | Objectif |
|---|---|
ConnectionsClient |
Énumérer les ressources Azure connectées |
DatasetsClient |
Télécharger des documents et gérer les ensembles de données |
DeploymentsClient |
Énumérer les déploiements de modèles IA |
IndexesClient |
Créer et gérer les index de recherche |
EvaluationsClient |
Exécuter les évaluations de modèles IA |
EvaluatorsClient |
Gérer les configurations d'évaluateurs |
SchedulesClient |
Gérer les opérations planifiées |
// Construire les sous-clients à partir du builder
ConnectionsClient connectionsClient = builder.buildConnectionsClient();
DatasetsClient datasetsClient = builder.buildDatasetsClient();
DeploymentsClient deploymentsClient = builder.buildDeploymentsClient();
IndexesClient indexesClient = builder.buildIndexesClient();
EvaluationsClient evaluationsClient = builder.buildEvaluationsClient();
Opérations principales
Lister les connexions
import com.azure.ai.projects.models.Connection;
import com.azure.core.http.rest.PagedIterable;
PagedIterable<Connection> connections = connectionsClient.listConnections();
for (Connection connection : connections) {
System.out.println("Name: " + connection.getName());
System.out.println("Type: " + connection.getType());
System.out.println("Credential Type: " + connection.getCredentials().getType());
}
Lister les index
indexesClient.listLatest().forEach(index -> {
System.out.println("Index name: " + index.getName());
System.out.println("Version: " + index.getVersion());
System.out.println("Description: " + index.getDescription());
});
Créer ou mettre à jour un index
import com.azure.ai.projects.models.AzureAISearchIndex;
import com.azure.ai.projects.models.Index;
String indexName = "my-index";
String indexVersion = "1.0";
String searchConnectionName = System.getenv("AI_SEARCH_CONNECTION_NAME");
String searchIndexName = System.getenv("AI_SEARCH_INDEX_NAME");
Index index = indexesClient.createOrUpdate(
indexName,
indexVersion,
new AzureAISearchIndex()
.setConnectionName(searchConnectionName)
.setIndexName(searchIndexName)
);
System.out.println("Created index: " + index.getName());
Accéder aux évaluations OpenAI
Le SDK expose le SDK officiel d'OpenAI pour les évaluations :
import com.openai.services.EvalService;
EvalService evalService = evaluationsClient.getOpenAIClient();
// Utiliser directement les API d'évaluation d'OpenAI
Bonnes pratiques
- Utiliser DefaultAzureCredential pour l'authentification en production
- Réutiliser le client builder pour créer efficacement plusieurs sous-clients
- Gérer la pagination lors de la liste des ressources avec
PagedIterable - Utiliser des variables d'environnement pour les noms de connexion et la configuration
- Vérifier les types de connexion avant d'accéder aux identifiants
Gestion des erreurs
import com.azure.core.exception.HttpResponseException;
import com.azure.core.exception.ResourceNotFoundException;
try {
Index index = indexesClient.get(indexName, version);
} catch (ResourceNotFoundException e) {
System.err.println("Index not found: " + indexName);
} catch (HttpResponseException e) {
System.err.println("Error: " + e.getResponse().getStatusCode());
}
Liens de référence
| Ressource | URL |
|---|---|
| Documentation du produit | https://learn.microsoft.com/azure/ai-studio/ |
| Référence API | https://learn.microsoft.com/rest/api/aifoundry/aiprojects/ |
| Source GitHub | https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/ai/azure-ai-projects |
| Exemples | https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/ai/azure-ai-projects/src/samples |