Knihovna Azure OpenAI pro TypeScript – 2.0.0
Služba Azure OpenAI Service poskytuje přístup k pokročilým modelům AI pro konverzační případy použití, vytváření obsahu a modelování dat. Knihovna Azure OpenAI pro TypeScript je společníkem oficiální klientské knihovny OpenAI pro JavaScript. Knihovna Azure OpenAI poskytuje další podporu modelů požadavků a odpovědí specifických pro scénáře Azure OpenAI.
Migrace z @azure/openai verze 1 – rady⚠ ️
Podrobné pokyny k aktualizaci kódu aplikace z verze 1.x klientské knihovny Azure OpenAI do knihovny
Klíčové odkazy:
Začínáme
Aktuálně podporovaná prostředí
- LTS verze Node.js
- Nejnovější verze Safari, Chrome, Edge a Firefox.
Požadavky
Pokud chcete použít prostředek Azure OpenAI, musíte mít předplatné
Instalace openai
i @azure/openai
Nainstalujte klientskou knihovnu Azure OpenAI a knihovnu OpenAI pro JavaScript s npm
:
npm install openai @azure/openai
Vytvoření a ověření AzureOpenAI
Existuje několik způsobů ověřování pomocí služby Azure OpenAI a doporučeným způsobem je použití ID Microsoft Entra pro zabezpečené ověřování bez klíčů prostřednictvím knihovny Identit Azure. Začněte tím, že:
Nainstalujte balíček Azure Identity:
npm install @azure/identity
Vytvořte zprostředkovatele tokenu voláním
getBearerTokenProvider
s požadovaným typem přihlašovacích údajů. Například DefaultAzureCredential:import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity"; const credential = new DefaultAzureCredential(); const scope = "https://cognitiveservices.azure.com/.default"; const azureADTokenProvider = getBearerTokenProvider(credential, scope);
Vytvořte klienta předáním zprostředkovatele tokenu:
import { AzureOpenAI } from "openai"; const deployment = "Your deployment name"; const apiVersion = "2024-10-21"; const client = new AzureOpenAI({ azureADTokenProvider, deployment, apiVersion });
Podle pokynů v tématu Jak nakonfigurovat službu Azure OpenAI s ověřováním Microsoft Entra IDudělte přístup k prostředku Azure OpenAI vašim důvěryhodným entitům.
Klíčové koncepty
Asistenti
Viz přehledrozhraní API pro
Přepis zvuku / překlad a generování převodu textu na řeč
Viz funkce OpenAI: Převod řeči na text.
Várka
Přečtěte sipříručku k rozhraní API služby OpenAI pro OpenAI.
Dokončení chatu
Modely chatu přebírají jako vstup seznam zpráv a jako výstup vrací modelem vygenerovanou zprávu. I když je formát chatu navržený tak, aby zjednodušil konverzace s více jazyky, je také užitečný pro jednoduché úkoly bez jakékoli konverzace.
Viz Možnosti OpenAI: Dokončení chatu.
Generování obrázků
Viz možnosti OpenAI: generování obrázků.
Soubory
Viz referenční
Vkládání textu
Viz možnosti OpenAI: vkládání.
Příklady
Tato část obsahuje příklady použití funkcí služby Azure OpenAI. Další příklady najdete ve složce samples.
Analýza obchodních dat
Tento příklad TypeScriptu generuje odpovědi chatu na vstupní otázky chatu týkající se vašich obchodních dat. Obchodní data jsou poskytována prostřednictvím indexu služby Azure Cognitive Search. Další informace o nastavení indexu služby Azure Cognitive Search jako zdroje dat najdete v rychlém startu: chatování s modely Azure OpenAI pomocí vlastních datových.
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();
Dokončování chatu filtrované obsahem
Služba Azure OpenAI zahrnuje systém filtrování obsahu, který funguje společně s základními modely. Tento systém zjistí a provede akce s konkrétními kategoriemi potenciálně škodlivého obsahu ve vstupních výzev i dokončení výstupu. Tento příklad ukazuje, jak získat přístup k výsledkům filtrování obsahu.
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();
Další kroky
Řešení problémů
Projděte si oficiální klientskou knihovnu OpenAI pro javascriptovou.
Přispívající
Podrobnosti o vytváření, testování a přispívání do této knihovny najdete v CONTRIBUTING.md OpenAI.
Tento projekt vítá příspěvky a návrhy. Většina příspěvků vyžaduje souhlas s licenční smlouvou s přispěvatelem (CLA), která deklaruje, že máte právo a ve skutečnosti nám udělíte práva k používání vašeho příspěvku. Podrobnosti najdete v cla.microsoft.com.
Když odešlete žádost o přijetí změn, robot CLA automaticky určí, jestli potřebujete poskytnout CLA, a odpovídajícím způsobem vyzdobit žádost o přijetí změn (např. popisek, komentář). Stačí postupovat podle pokynů poskytovaných robotem. Stačí to udělat jen jednou napříč všemi úložištěmi pomocí naší cla.
Tento projekt přijal pravidla chování microsoftu open source . Další informace najdete v nejčastějších dotazech k kodexu chování nebo opencode@microsoft.com s dalšími dotazy nebo komentáři.
Azure SDK for JavaScript