Biblioteka Azure OpenAI dla języka TypeScript — 2.0.0
Usługa Azure OpenAI Service zapewnia dostęp do zaawansowanych modeli sztucznej inteligencji na potrzeby konwersacji, tworzenia zawartości i przypadków użycia uziemania danych. Biblioteka Azure OpenAI dla języka TypeScript jest towarzyszem oficjalnej biblioteki klienta OpenAI dla języka JavaScript. Biblioteka Azure OpenAI zapewnia dodatkową silnie typizowaną obsługę modeli żądań i odpowiedzi specyficznych dla scenariuszy usługi Azure OpenAI.
migrowanie z @azure/openai w wersji 1⚠️
Zapoznaj się z przewodnikiem migracji , aby uzyskać szczegółowe instrukcje dotyczące aktualizowania kodu aplikacji z wersji 1.x biblioteki klienta usługi Azure OpenAI do biblioteki openai
.
Kluczowe linki:
- kod źródłowy
- pakietu
(NPM) - Dokumentacja referencyjna interfejs u API
- dokumentacja produktu
- przykładów
Wprowadzenie
Obecnie obsługiwane środowiska
- wersje Node.js LTS
- Najnowsze wersje przeglądarek Safari, Chrome, Edge i Firefox.
Warunki wstępne
Jeśli chcesz użyć zasobu usługi Azure OpenAI, musisz mieć subskrypcji platformy Azure i dostęp do usługi Azure OpenAI. Aby uzyskać więcej informacji, zobacz Szybki start: Rozpoczynanie generowania tekstu przy użyciu usługi Azure OpenAI Service.
Instalowanie zarówno openai
, jak i @azure/openai
Zainstaluj bibliotekę klienta usługi Azure OpenAI i bibliotekę OpenAI dla języka JavaScript przy użyciu npm
:
npm install openai @azure/openai
Tworzenie i uwierzytelnianie AzureOpenAI
Istnieje kilka sposobów uwierzytelniania za pomocą usługi Azure OpenAI. Zalecanym sposobem jest użycie identyfikatora Entra firmy Microsoft do bezpiecznego uwierzytelniania bez klucza za pośrednictwem biblioteki Azure Identity library. Aby rozpocząć pracę:
Zainstaluj pakiet Azure Identity:
npm install @azure/identity
Utwórz dostawcę tokenu, wywołując
getBearerTokenProvider
z żądanym typem poświadczeń. Na przykład DefaultAzureCredential:import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity"; const credential = new DefaultAzureCredential(); const scope = "https://cognitiveservices.azure.com/.default"; const azureADTokenProvider = getBearerTokenProvider(credential, scope);
Utwórz klienta, przekazując dostawcę tokenu:
import { AzureOpenAI } from "openai"; const deployment = "Your deployment name"; const apiVersion = "2024-10-21"; const client = new AzureOpenAI({ azureADTokenProvider, deployment, apiVersion });
Udziel dostępu do zasobu usługi Azure OpenAI zaufanym podmiotom, postępując zgodnie z instrukcjami w How to configure Azure OpenAI Service with Microsoft Entra ID authentication.
Kluczowe pojęcia
Asystentów
Zobacz Omówienie interfejsu API Asystentów openAI.
Transkrypcja audio/tłumaczenie i generowanie zamiany tekstu na mowę
Zobacz Możliwości interfejsu OpenAI: zamiana mowy na tekst.
Partia
Zobacz przewodnik dotyczący interfejsu API usługi Batch OpenAI.
Uzupełnianie czatu
Modele czatów przyjmują listę wiadomości jako dane wejściowe i zwracają wygenerowaną przez model wiadomość jako dane wyjściowe. Mimo że format czatu jest zaprojektowany tak, aby konwersacje wieloełowe były łatwe, jest również przydatne w przypadku zadań jednokrotnych bez żadnej konwersacji.
Zobacz Możliwości interfejsu OpenAI: kończenie czatu.
Generowanie obrazu
Zobacz Możliwości interfejsu OpenAI: generowanie obrazów.
Pliki
Zobacz dokumentacja interfejsu API plików openAI.
Osadzanie tekstu
Zobacz możliwości openAI: osadzanie.
Przykłady
Ta sekcja zawiera przykłady użycia funkcji usługi Azure OpenAI Service. Aby uzyskać dodatkowe przykłady, wyewidencjonuj folder przykłady .
Analizowanie danych biznesowych
Ten przykład języka TypeScript generuje odpowiedzi czatu na pytania wejściowe dotyczące danych biznesowych. Dane biznesowe są udostępniane za pośrednictwem indeksu usługi Azure Cognitive Search. Aby dowiedzieć się więcej na temat konfigurowania indeksu usługi Azure Cognitive Search jako źródła danych, zobacz Szybki start: Czat z modelami usługi Azure OpenAI przy użyciu własnych danych.
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();
Uzupełnianie czatu filtrowanego zawartością
Usługa Azure OpenAI Service zawiera system filtrowania zawartości, który działa obok podstawowych modeli. Ten system wykrywa i podejmuje działania dotyczące określonych kategorii potencjalnie szkodliwej zawartości zarówno w monitach wejściowych, jak i zakończeniach danych wyjściowych. W tym przykładzie pokazano, jak uzyskać dostęp do tych wyników filtrowania zawartości.
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();
Następne kroki
Rozwiązywanie problemów
Zapoznaj się z oficjalną biblioteką klienta OpenAI dla języka JavaScript.
Przyczyniając się
Aby uzyskać szczegółowe informacje na temat kompilowania, testowania i współtworzenia tej biblioteki, zobacz OpenAI CONTRIBUTING.md.
Ten projekt z zadowoleniem przyjmuje wkład i sugestie. Większość kontrybucja wymaga zgody na umowę licencyjną współautora (CLA), deklarując, że masz prawo, a w rzeczywistości przyznaj nam prawa do korzystania z twojego wkładu. Aby uzyskać szczegółowe informacje, odwiedź stronę cla.microsoft.com.
Po przesłaniu żądania ściągnięcia bot CLA automatycznie określi, czy musisz podać cla i odpowiednio ozdobić żądanie ściągnięcia (np. etykieta, komentarz). Po prostu postępuj zgodnie z instrukcjami dostarczonymi przez bota. Należy to zrobić tylko raz we wszystkich repozytoriach przy użyciu naszego CLA.
Ten projekt przyjął kodeks postępowania firmy Microsoft typu open source. Aby uzyskać więcej informacji, zobacz Kodeks postępowania — często zadawane pytania lub skontaktuj się opencode@microsoft.com z dodatkowymi pytaniami lub komentarzami.
Azure SDK for JavaScript