Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az AI Projects ügyféloldali kódtár egyszerű hozzáférést biztosít az Azure AI Foundry-projekt erőforrásaihoz. A következőkre lehet használni:
-
Ügynökök létrehozása és futtatása az ügyfél tulajdonságával
.agents. -
Szerezzen be egy AzureOpenAI-ügyfelet a
.inference.azureOpenAImetódussal. - Sorolja fel az öntödei projektben üzembe helyezett AI-modelleket a
.deploymentsműveletek használatával. -
Sorolja fel a csatlakoztatott Azure-erőforrásokat a Foundry-projektben a
.connectionsműveletek használatával. -
Dokumentumok feltöltése és adatkészletek létrehozása a műveletek használatával
.datasetsvaló hivatkozáshoz. -
Keresési indexek létrehozása és számbavétele a műveletekkel
.indexes. -
Engedélyezze az OpenTelemetry nyomkövetést a
enable_telemetryfüggvény használatával.
Termékdokumentáció | Minták | Csomag (npm) | API referenciadokumentáció | SDK forráskód
Tartalomjegyzék
- Első lépések
-
főbb fogalmak
- Az ügyfél létrehozása és hitelesítése
- Példák
- Hibaelhárítás
- Következő lépések
- hozzájárulási
Kezdő lépések
Előfeltétel
Engedélyezés
- Az ügyfél hitelesítéséhez Entra azonosítóra van szükség. Az alkalmazásnak szüksége van egy objektumra, amely implementálja a TokenCredential felületet. Az itt található kódminták DefaultAzureCredentialhasználnak. Ahhoz, hogy ez működjön, a következőkre lesz szüksége:
- A
Contributorszerepkör. A szerepkör-hozzárendelés az Azure PortalOn az Azure AI Project-erőforrás "Hozzáférés-vezérlés (IAM)" lapján végezhető el. A szerepkör-hozzárendelésekről itt olvashat bővebben. - Telepített Azure CLI-.
- A rendszer a
az loginfuttatásával jelentkezik be az Azure-fiókjába. - Vegye figyelembe, hogy ha több Azure-előfizetéssel rendelkezik, az Azure AI Project-erőforrást tartalmazó előfizetésnek kell lennie az alapértelmezett előfizetésnek. A
az account list --output tablefuttatásával listázhatja az összes előfizetését, és megtekintheti, hogy melyik az alapértelmezett. Az alapértelmezett előfizetés módosításához futtassa aaz account set --subscription "Your Subscription ID or Name".
- A
A csomag telepítése
npm install @azure/ai-projects @azure/identity
Főbb fogalmak
Az ügyfél létrehozása és hitelesítése
AIProjectsClientEgy , a endpointvégpontról lehet lekérni. Az alábbiakban feltételezzük, hogy a környezeti változó AZURE_AI_PROJECT_ENDPOINT_STRING úgy lett definiálva, hogy ezt az értéket tartsa:
import { AIProjectClient } from "@azure/ai-projects";
import { DefaultAzureCredential } from "@azure/identity";
const endpoint = process.env["AZURE_AI_PROJECT_ENDPOINT_STRING"] || "<project endpoint string>";
const client = new AIProjectClient(endpoint, new DefaultAzureCredential());
Az ügyfél API-verziót v1használ, a támogatott funkciókkal kapcsolatos további információkért tekintse meg az API dokumentációját .
Példák
Ügynöki műveletek végrehajtása
A .agents tulajdonság AIProjectClient hozzáférést biztosít a AgentsClient csomagból hitelesített azure-ai-agents szolgáltatáshoz. Az alábbiakban bemutatjuk, hogyan hozhat létre ügynököt és törölheti azt. Ha meg szeretné tekinteni, hogy mit tehet a létrehozott termékekkelagent, tekintse meg a csomaghoz társított azure-ai-agents.
const agent = await project.agents.createAgent("gpt-4o", {
name: "my-agent",
instructions: "You are a helpful agent",
});
console.log(`Created agent, agent ID : ${agent.id}`);
// Do something with your Agent!
// See samples here https://github.com/Azure/azure-sdk-for-js/tree/@azure/ai-projects_1.0.1/sdk/ai/ai-agents/samples
await project.agents.deleteAgent(agent.id);
console.log(`Deleted agent, agent ID: ${agent.id}`);
Hitelesített AzureOpenAI-ügyfél beszerzése
Előfordulhat, hogy az Azure AI Foundry-projektben egy vagy több OpenAI-modell van üzembe helyezve, amelyek támogatják a csevegés befejezését. Az alábbi kóddal lekérhet egy hitelesített AzureOpenAI-t az openai-csomagból , és végrehajthat egy csevegési befejezési hívást.
Futtassa az alábbi kódot. Itt feltételezzük, hogy deploymentName az (str) definiált. Ez egy AI-modell üzembe helyezési neve az öntödei projektben. Amint az a "Modellek + végpontok" lapon, a "Név" oszlopban látható.
Frissítse az api_version értéket a táblázat "Adatsík – következtetés" sorában található értékkel.
Lehetősége van arra is (hogy nem jelenik meg), hogy explicit módon megadja az Azure OpenAI-kapcsolat nevét az AI Foundry projektben, amelyet a inference.azureOpenAI metódus a következtetési végpont és a hitelesítési hitelesítő adatok lekérésére fog használni. Ha nincs jelen, a rendszer az alapértelmezett Azure OpenAI-kapcsolatot használja.
const client = await project.inference.azureOpenAI({
// The API version should match the version of the Azure OpenAI resource.
apiVersion: "2024-10-21",
});
const response = await client.chat.completions.create({
model: deploymentName,
messages: [{ role: "user", content: "How many feet are in a mile?" }],
});
console.log("response = ", JSON.stringify(response, null, 2));
További mintákért tekintse meg a csomagminták "következtetési" mappáját.
Központi telepítési műveletek
Az alábbi kód néhány üzembe helyezési műveletet mutat be, amelyek lehetővé teszik az AI-öntödei projektekben üzembe helyezett AI-modellek számbavételét. Ezek a modellek az AI Foundry Project "Modellek + végpontok" lapján láthatók. A teljes minták a csomagminták "deployment" mappájában találhatók.
import { ModelDeployment } from "@azure/ai-projects";
const modelPublisher = process.env["MODEL_PUBLISHER"] || "<model publisher>";
console.log("List all deployments:");
const deployments: ModelDeployment[] = [];
const properties: Array<Record<string, string>> = [];
for await (const deployment of project.deployments.list()) {
// Check if this is a ModelDeployment (has the required properties)
if (
deployment.type === "ModelDeployment" &&
"modelName" in deployment &&
"modelPublisher" in deployment &&
"modelVersion" in deployment
) {
deployments.push(deployment);
properties.push({
name: deployment.name,
modelPublisher: deployment.modelPublisher,
modelName: deployment.modelName,
});
}
}
console.log(`Retrieved deployments: ${JSON.stringify(properties, null, 2)}`);
// List all deployments by a specific model publisher (assuming we have one from the list)
console.log(`List all deployments by the model publisher '${modelPublisher}':`);
const filteredDeployments: ModelDeployment[] = [];
for await (const deployment of project.deployments.list({
modelPublisher,
})) {
// Check if this is a ModelDeployment
if (
deployment.type === "ModelDeployment" &&
"modelName" in deployment &&
"modelPublisher" in deployment &&
"modelVersion" in deployment
) {
filteredDeployments.push(deployment);
}
}
console.log(
`Retrieved ${filteredDeployments.length} deployments from model publisher '${modelPublisher}'`,
);
// Get a single deployment by name
if (deployments.length > 0) {
const deploymentName = deployments[0].name;
console.log(`Get a single deployment named '${deploymentName}':`);
const singleDeployment = await project.deployments.get(deploymentName);
console.log(`Retrieved deployment: ${JSON.stringify(singleDeployment, null, 2)}`);
}
Kapcsolatok műveletei
Az alábbi kód néhány kapcsolati műveletet mutat be, amelyek lehetővé teszik az AI-öntöjző projektekhez csatlakoztatott Azure-erőforrások számbavételét. Ezek a kapcsolatok a "Felügyeleti központban", az AI Foundry Project "Csatlakoztatott erőforrások" lapján láthatók. A teljes minták a csomagminták"kapcsolatok" mappájában találhatók.
import { Connection } from "@azure/ai-projects";
// List the details of all the connections
const connections: Connection[] = [];
const connectionNames: string[] = [];
for await (const connection of project.connections.list()) {
connections.push(connection);
connectionNames.push(connection.name);
}
console.log(`Retrieved connections: ${connectionNames}`);
// Get the details of a connection, without credentials
const connectionName = connections[0].name;
const connection = await project.connections.get(connectionName);
console.log(`Retrieved connection ${JSON.stringify(connection, null, 2)}`);
const connectionWithCredentials = await project.connections.getWithCredentials(connectionName);
console.log(
`Retrieved connection with credentials ${JSON.stringify(connectionWithCredentials, null, 2)}`,
);
// List all connections of a specific type
const azureAIConnections: Connection[] = [];
for await (const azureOpenAIConnection of project.connections.list({
connectionType: "AzureOpenAI",
defaultConnection: true,
})) {
azureAIConnections.push(azureOpenAIConnection);
}
console.log(`Retrieved ${azureAIConnections.length} Azure OpenAI connections`);
// Get the details of a default connection
const defaultConnection = await project.connections.getDefault("AzureOpenAI", true);
console.log(`Retrieved default connection ${JSON.stringify(defaultConnection, null, 2)}`);
Adathalmaz-műveletek
Az alábbi kód néhány adathalmaz-műveletet mutat be. A teljes minták a csomagminták "datasets" mappájában találhatók.
import { DatasetVersionUnion } from "@azure/ai-projects";
const VERSION1 = "1.0";
const VERSION2 = "2.0";
const VERSION3 = "3.0";
// sample files to use in the demonstration
const sampleFolder = "sample_folder";
// Create a unique dataset name for this sample run
const datasetName = `sample-dataset-basic`;
console.log("Upload a single file and create a new Dataset to reference the file.");
console.log("Here we explicitly specify the dataset version.");
const dataset1 = await project.datasets.uploadFile(
datasetName,
VERSION1,
path.join(__dirname, sampleFolder, "sample_file1.txt"),
);
console.log("Dataset1 created:", JSON.stringify(dataset1, null, 2));
const credential = project.datasets.getCredentials(dataset1.name, dataset1.version, {});
console.log("Credential for the dataset:", credential);
console.log(
"Upload all files in a folder (including subfolders) to the existing Dataset to reference the folder.",
);
console.log("Here again we explicitly specify a new dataset version");
const dataset2 = await project.datasets.uploadFolder(
datasetName,
VERSION2,
path.join(__dirname, sampleFolder),
);
console.log("Dataset2 created:", JSON.stringify(dataset2, null, 2));
console.log(
"Upload a single file to the existing dataset, while letting the service increment the version",
);
const dataset3 = await project.datasets.uploadFile(
datasetName,
VERSION3,
path.join(__dirname, sampleFolder, "sample_file2.txt"),
);
console.log("Dataset3 created:", JSON.stringify(dataset3, null, 2));
console.log("Get an existing Dataset version `1`:");
const datasetVersion1 = await project.datasets.get(datasetName, VERSION1);
console.log("Dataset version 1:", JSON.stringify(datasetVersion1, null, 2));
console.log(`Listing all versions of the Dataset named '${datasetName}':`);
const datasetVersions = await project.datasets.listVersions(datasetName);
for await (const version of datasetVersions) {
console.log("List versions:", version);
}
console.log("List latest versions of all Datasets:");
const latestDatasets = project.datasets.list();
for await (const dataset of latestDatasets) {
console.log("List datasets:", dataset);
}
// List the details of all the datasets
const datasets = project.datasets.listVersions(datasetName);
const allDatasets: DatasetVersionUnion[] = [];
for await (const dataset of datasets) {
allDatasets.push(dataset);
}
console.log(`Retrieved ${allDatasets.length} datasets`);
console.log("Delete all Datasets created above:");
await project.datasets.delete(datasetName, VERSION1);
await project.datasets.delete(datasetName, VERSION2);
await project.datasets.delete(datasetName, dataset3.version);
console.log("All specified Datasets have been deleted.");
Indexelési műveletek
Az alábbi kód néhány indexelési műveletet mutat be. A teljes minták a csomagminták "indexek" mappájában találhatók.
import { AzureAISearchIndex } from "@azure/ai-projects";
const indexName = "sample-index";
const version = "1";
const azureAIConnectionConfig: AzureAISearchIndex = {
name: indexName,
type: "AzureSearch",
version,
indexName,
connectionName: "sample-connection",
};
// Create a new Index
const newIndex = await project.indexes.createOrUpdate(indexName, version, azureAIConnectionConfig);
console.log("Created a new Index:", newIndex);
console.log(`Get an existing Index version '${version}':`);
const index = await project.indexes.get(indexName, version);
console.log(index);
console.log(`Listing all versions of the Index named '${indexName}':`);
const indexVersions = project.indexes.listVersions(indexName);
for await (const indexVersion of indexVersions) {
console.log(indexVersion);
}
console.log("List all Indexes:");
const allIndexes = project.indexes.list();
for await (const i of allIndexes) {
console.log("Index:", i);
}
console.log("Delete the Index versions created above:");
await project.indexes.delete(indexName, version);
Hibaelhárítás
Kivételek
A szolgáltatáshívásokat kezdeményező ügyfélmódszerek RestError a szolgáltatás nem sikeres HTTP-állapotkód-válaszához. A kivétel code a HTTP-válasz állapotkódját fogja tárolni. A kivétel error.message részletes üzenetet tartalmaz, amely hasznos lehet a probléma diagnosztizálásában:
import { isRestError } from "@azure/core-rest-pipeline";
try {
const result = await project.connections.list();
} catch (e) {
if (isRestError(e)) {
console.log(`Status code: ${e.code}`);
console.log(e.message);
} else {
console.error(e);
}
}
Ha például helytelen hitelesítő adatokat ad meg:
Status code: 401 (Unauthorized)
Operation returned an invalid status 'Unauthorized'
Jelentéskészítési problémák
Az ügyfélkódtár problémáinak jelentéséhez vagy további funkciók kéréséhez nyisson meg egy GitHub-problémát, itt
Következő lépések
Tekintse meg a csomagmintákat mappát, amely teljes mértékben futtatható kódot tartalmaz.
Közreműködés
Ez a projekt üdvözli a hozzájárulásokat és javaslatokat. A legtöbb hozzájárulás megköveteli, hogy elfogadja a közreműködői licencszerződést (CLA), amely kimondja, hogy önnek joga van a hozzájárulás használatára, és valóban meg kell adnia nekünk a jogosultságokat a hozzájárulás használatára. A részletekért látogasson el ide https://cla.microsoft.com.
A lekéréses kérelem elküldésekor a CLA-robot automatikusan meghatározza, hogy meg kell-e adnia egy CLA-t, és megfelelően kell-e díszítenie a lekéréses kérelmet (például címkét, megjegyzést). Egyszerűen kövesse a robot utasításait. Ezt csak egyszer kell elvégeznie az összes adattárban a CLA használatával.
Ez a projekt a Microsoft nyílt forráskóddal kapcsolatos viselkedési szabályzata alapján működik. További információkért tekintse meg a magatartási kódex gyakori kérdéseit, vagy forduljon opencode@microsoft.com további kérdésekhez vagy megjegyzésekhez.
Azure SDK for JavaScript