Libreria OpenAI di Azure per TypeScript - 2.0.0
Il servizio OpenAI di Azure consente di accedere a modelli avanzati di intelligenza artificiale per casi d'uso di conversazioni, creazione di contenuti e casi d'uso basati sui dati. La libreria OpenAI di Azure per TypeScript è complementare alla libreria client OpenAI ufficiale per JavaScript. La libreria OpenAI di Azure offre un supporto fortemente tipizzato aggiuntivo per i modelli di richiesta e risposta specifici per gli scenari OpenAI di Azure.
Migrazione da @azure/openai⚠avviso ️ versione 1
Vedere la guida alla migrazione per istruzioni dettagliate su come aggiornare il codice dell'applicazione dalla versione 1.x della libreria client Di Azure OpenAI alla libreria openai
.
Collegamenti chiave:
- codice sorgente
- del pacchetto
- documentazione di riferimento dell'API
- documentazione del prodotto
- esempi di
Introduttiva
Ambienti attualmente supportati
- versioni LTS di Node.js
- Versioni più recenti di Safari, Chrome, Edge e Firefox.
Prerequisiti
Se si vuole usare una risorsa OpenAI di Azure, è necessario avere una sottoscrizione di Azure e l'accesso ad Azure OpenAI. Per altre informazioni, vedere Avvio rapido: Introduzione alla generazione di testo con il servizio OpenAI di Azure.
Installare sia openai
che @azure/openai
Installare la libreria client OpenAI di Azure e la libreria OpenAI per JavaScript con npm
:
npm install openai @azure/openai
Creare ed autenticare un AzureOpenAI
Esistono diversi modi per eseguire l'autenticazione con il servizio Azure OpenAI e il modo consigliato consiste nell'usare Microsoft Entra ID per l'autenticazione sicura e senza chiave tramite la libreria di identità di Azure . Per iniziare:
Installare ildel pacchetto di identità di Azure
: npm install @azure/identity
Creare un provider di token chiamando il
getBearerTokenProvider
con il tipo di credenziale desiderato. Ad esempio, DefaultAzureCredential:import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity"; const credential = new DefaultAzureCredential(); const scope = "https://cognitiveservices.azure.com/.default"; const azureADTokenProvider = getBearerTokenProvider(credential, scope);
Creare il client passando il provider di token:
import { AzureOpenAI } from "openai"; const deployment = "Your deployment name"; const apiVersion = "2024-10-21"; const client = new AzureOpenAI({ azureADTokenProvider, deployment, apiVersion });
Concedere l'accesso alla risorsa OpenAI di Azure alle entità attendibili seguendo le istruzioni riportate in Come configurare il servizio Azure OpenAI con l'autenticazione di Microsoft Entra ID.
Concetti chiave
Assistenti
Vedere panoramica dell'API Assistants di OpenAI.
Trascrizione/traduzione audio e generazione di sintesi vocale
Vedere Funzionalità OpenAI: Riconoscimento vocale.
Lotto
Vedere guida all'API Batch di OpenAI.
Completamento della chat
I modelli di chat accettano un elenco di messaggi come input e restituiscono un messaggio generato dal modello come output. Anche se il formato della chat è progettato per semplificare le conversazioni a più turni, è utile anche per le attività a turno singolo senza alcuna conversazione.
Vedere Funzionalità OpenAI: completamento chat.
Generazione di immagini
Vedere Funzionalità OpenAI: Generazione di immagini.
file
Vedere informazioni di riferimento sulle API File di OpenAI.
Incorporamenti di testo
Vedere Funzionalità OpenAI: Incorporamenti.
Esempi
Questa sezione fornisce esempi di uso delle funzionalità del servizio Azure OpenAI. Per altri esempi, vedere la cartella degli esempi di .
Analizzare i dati aziendali
Questo esempio TypeScript genera risposte di chat alle domande di chat di input sui dati aziendali. I dati aziendali vengono forniti tramite un indice di Ricerca cognitiva di Azure. Per altre informazioni su come configurare un indice di Ricerca cognitiva di Azure come origine dati, vedere Avvio rapido: Chat con i modelli OpenAI di Azure usando i propridati.
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();
Completamento della chat filtrata con filtro del contenuto
Il servizio OpenAI di Azure include un sistema di filtro del contenuto che funziona insieme ai modelli di base. Questo sistema rileva e esegue azioni su categorie specifiche di contenuto potenzialmente dannoso sia nelle richieste di input che nei completamenti di output. In questo esempio viene illustrato come accedere ai risultati del filtro del contenuto.
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();
Passaggi successivi
Risoluzione dei problemi
Vedere la libreria client OpenAI ufficiale per JavaScript.
Contribuire
Per informazioni dettagliate sulla compilazione, il test e il contributo a questa libreria, vedere CONTRIBUTING.md OpenAI.
Questo progetto accoglie contributi e suggerimenti. La maggior parte dei contributi richiede l'accettazione di un Contratto di licenza collaboratore (CLA) che dichiara di avere il diritto e, in realtà, concedere a Microsoft i diritti per l'uso del contributo. Per informazioni dettagliate, visitare cla.microsoft.com.
Quando si invia una richiesta pull, un bot CLA determinerà automaticamente se è necessario fornire un cla e decorare la richiesta pull in modo appropriato (ad esempio, etichetta, commento). Seguire semplicemente le istruzioni fornite dal bot. Dovrai eseguire questa operazione una sola volta in tutti i repository usando la nostra cla.
Questo progetto ha adottato la codice di comportamento Microsoft Open Source. Per altre informazioni, vedere domande frequenti sul codice di comportamento o contattare opencode@microsoft.com con eventuali domande o commenti aggiuntivi.
Azure SDK for JavaScript