Azure OpenAI-bibliotek för TypeScript – 2.0.0
Azure OpenAI Service ger åtkomst till avancerade AI-modeller för konversation, skapande av innehåll och användning av data. Azure OpenAI-biblioteket för TypeScript är ett komplement till det officiella OpenAI-klientbiblioteket för JavaScript. Azure OpenAI-biblioteket ger ytterligare starkt skrivet stöd för begärande- och svarsmodeller som är specifika för Azure OpenAI-scenarier.
Migrera från @azure/openai version 1⚠️
Kolla in Migration Guide för detaljerade instruktioner om hur du uppdaterar programkoden från version 1.x av Azure OpenAI-klientbiblioteket till openai
-biblioteket.
Nyckellänkar:
Komma igång
Miljöer som stöds för närvarande
- LTS-versioner av Node.js
- De senaste versionerna av Safari, Chrome, Edge och Firefox.
Förutsättningar
Om du vill använda en Azure OpenAI-resurs måste du ha en Azure-prenumeration och Azure OpenAI-åtkomst. Mer information finns i Snabbstart: Kom igång med att generera text med Hjälp av Azure OpenAI Service.
Installera både openai
och @azure/openai
Installera Azure OpenAI-klientbiblioteket och OpenAI-biblioteket för JavaScript med npm
:
npm install openai @azure/openai
Skapa och autentisera en AzureOpenAI
Det finns flera sätt att autentisera med Azure OpenAI-tjänsten och det rekommenderade sättet är att använda Microsoft Entra-ID för säker, nyckellös autentisering via Azure Identity-bibliotek. Så här kommer du igång:
Installera Azure Identity-paketet:
npm install @azure/identity
Skapa en tokenprovider genom att anropa
getBearerTokenProvider
med önskad typ av autentiseringsuppgifter. Till exempel StandardAzureCredential:import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity"; const credential = new DefaultAzureCredential(); const scope = "https://cognitiveservices.azure.com/.default"; const azureADTokenProvider = getBearerTokenProvider(credential, scope);
Skapa klienten genom att skicka in tokenprovidern:
import { AzureOpenAI } from "openai"; const deployment = "Your deployment name"; const apiVersion = "2024-10-21"; const client = new AzureOpenAI({ azureADTokenProvider, deployment, apiVersion });
Bevilja åtkomst till din Azure OpenAI-resurs till dina betrodda entiteter genom att följa anvisningarna i Konfigurera Azure OpenAI-tjänsten med Microsoft Entra ID-autentisering.
Viktiga begrepp
Assistenter
Se Översikt över Api:et för OpenAI-assistenter.
Ljudranskription/översättning och text-till-tal-generering
Se OpenAI-funktioner: Tal till text.
Batch
Chatten har slutförts
Chattmodeller tar en lista med meddelanden som indata och returnerar ett modellgenererat meddelande som utdata. Även om chattformatet är utformat för att göra konversationer med flera turer enkla, är det också användbart för uppgifter med en enda tur utan konversation.
Se OpenAI-funktioner: Chatten har slutförts.
Bildgenerering
Se OpenAI-funktioner: Bildgenerering.
filer
Se OpenAI:s api-referens för filer.
Text inbäddningar
Se OpenAI-funktioner: Inbäddningar.
Exempel
Det här avsnittet innehåller exempel på hur du använder funktionerna i Azure OpenAI-tjänsten. Om du vill ha fler exempel kan du checka ut mappen exempel.
Analysera affärsdata
Det här TypeScript-exemplet genererar chattsvar för indatachattfrågor om dina affärsdata. Affärsdata tillhandahålls via ett Azure Cognitive Search-index. Mer information om hur du konfigurerar ett Azure Cognitive Search-index som datakälla finns i Snabbstart: Chatta med Azure OpenAI-modeller med dina egna data.
import { AzureOpenAI } from "openai";
import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity";
import "@azure/openai/types";
// Set AZURE_OPENAI_ENDPOINT to the endpoint of your
// Azure OpenAI resource. You can find this in the Azure portal.
import "dotenv/config";
// Your Azure Cognitive Search endpoint, and index name
const azureSearchEndpoint = process.env["AZURE_SEARCH_ENDPOINT"] || "<search endpoint>";
const azureSearchIndexName = process.env["AZURE_SEARCH_INDEX"] || "<search index>";
export async function main() {
console.log("== Azure On Your Data Sample ==");
const scope = "https://cognitiveservices.azure.com/.default";
const azureADTokenProvider = getBearerTokenProvider(new DefaultAzureCredential(), scope);
const deployment = "gpt-4-1106-preview";
const apiVersion = "2024-10-21";
const client = new AzureOpenAI({ azureADTokenProvider, deployment, apiVersion });
const events = await client.chat.completions.create({
stream: true,
messages: [
{
role: "user",
content:
"What's the most common feedback we received from our customers about the product?",
},
],
max_tokens: 128,
model: "",
data_sources: [
{
type: "azure_search",
parameters: {
endpoint: azureSearchEndpoint,
index_name: azureSearchIndexName,
authentication: {
type: "system_assigned_managed_identity",
},
},
},
],
});
for await (const event of events) {
for (const choice of event.choices) {
console.log(choice.delta?.content);
}
}
}
main();
Innehållsfiltrerad chatt har slutförts
Azure OpenAI Service innehåller ett system för innehållsfiltrering som fungerar tillsammans med kärnmodeller. Det här systemet identifierar och vidtar åtgärder för specifika kategorier av potentiellt skadligt innehåll i både indataprompter och slutföranden av utdata. Det här exemplet visar hur du kommer åt dessa resultat för innehållsfiltrering.
import { AzureOpenAI } from "openai";
import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity";
import "@azure/openai/types";
// Set AZURE_OPENAI_ENDPOINT to the endpoint of your
// OpenAI resource. You can find this in the Azure portal.
import "dotenv/config";
async function main() {
console.log("== Streaming Chat Completions Sample ==");
const scope = "https://cognitiveservices.azure.com/.default";
const azureADTokenProvider = getBearerTokenProvider(new DefaultAzureCredential(), scope);
const deployment = "gpt-35-turbo";
const apiVersion = "2024-10-21";
const client = new AzureOpenAI({ azureADTokenProvider, deployment, apiVersion });
const events = await client.chat.completions.create({
messages: [
{ role: "system", content: "You are a helpful assistant. You will talk like a pirate." },
{ role: "user", content: "Can you help me?" },
{ role: "assistant", content: "Arrrr! Of course, me hearty! What can I do for ye?" },
{ role: "user", content: "What's the best way to train a parrot?" },
],
model: "",
max_tokens: 128,
stream: true,
});
for await (const event of events) {
for (const choice of event.choices) {
console.log(`Chunk: ${choice.delta?.content}`);
const filterResults = choice.content_filter_results;
if (!filterResults) {
continue;
}
if (filterResults.error) {
console.log(
`\tContent filter ran into an error ${filterResults.error.code}: ${filterResults.error.message}`,
);
} else {
const { hate, sexual, selfHarm, violence } = filterResults;
console.log(
`\tHate category is filtered: ${hate?.filtered}, with ${hate?.severity} severity`,
);
console.log(
`\tSexual category is filtered: ${sexual?.filtered}, with ${sexual?.severity} severity`,
);
console.log(
`\tSelf-harm category is filtered: ${selfHarm?.filtered}, with ${selfHarm?.severity} severity`,
);
console.log(
`\tViolence category is filtered: ${violence?.filtered}, with ${violence?.severity} severity`,
);
}
}
}
}
main();
Nästa steg
Felsökning
Se det officiella OpenAI-klientbiblioteket för JavaScript.
Bidragande
Mer information om hur du skapar, testar och bidrar till det här biblioteket finns i OpenAI-CONTRIBUTING.md.
Det här projektet välkomnar bidrag och förslag. De flesta bidrag kräver att du godkänner ett licensavtal för deltagare (CLA) som förklarar att du har rätt att, och faktiskt gör det, ge oss rätten att använda ditt bidrag. Mer information finns i cla.microsoft.com.
När du skickar en pull-begäran avgör en CLA-robot automatiskt om du behöver tillhandahålla ett CLA och dekorera PR på rätt sätt (t.ex. etikett, kommentar). Följ bara anvisningarna från roboten. Du behöver bara göra detta en gång för alla lagringsplatser med vår CLA.
Det här projektet har antagit Microsoft Open Source Code of Conduct. Mer information finns i vanliga frågor och svar om uppförandekod eller kontakta opencode@microsoft.com med ytterligare frågor eller kommentarer.
Azure SDK for JavaScript