Compartir a través de


Biblioteca de Azure OpenAI para TypeScript: 2.0.0

La azure OpenAI Service proporciona acceso a modelos avanzados de inteligencia artificial para casos de uso conversacionales, de creación de contenido y de puesta en tierra de datos. La biblioteca de Azure OpenAI para TypeScript es un complemento de la biblioteca cliente oficial OpenAI para JavaScript. La biblioteca de Azure OpenAI proporciona compatibilidad adicional fuertemente tipada para los modelos de solicitud y respuesta específicos de escenarios de Azure OpenAI.

Migración desde @azure/openai versión 1

Consulte la guía de migración de para obtener instrucciones detalladas sobre cómo actualizar el código de la aplicación de la versión 1.x de la biblioteca cliente de Azure OpenAI a la biblioteca de openai.

Vínculos clave:

  • código fuente
  • paquete de (NPM)
  • documentación de referencia de api de
  • documentación del producto de
  • ejemplos de

Empezar

Entornos admitidos actualmente

Prerrequisitos

Si desea usar un recurso de Azure OpenAI, debe tener un de suscripción de Azure y acceso a Azure OpenAI. Para más información, consulte Inicio rápido: Introducción a la generación de texto mediante Azure OpenAI Service.

Instalación de openai y @azure/openai

Instale la biblioteca cliente de Azure OpenAI y la biblioteca openAI para JavaScript con npm:

npm install openai @azure/openai

Creación y autenticación de un AzureOpenAI

Hay varias maneras de autenticarse con el servicio Azure OpenAI y la manera recomendada es usar el identificador de Microsoft Entra para la autenticación segura y sin claves a través de la biblioteca de identidades de Azure . Para empezar:

  1. Instale el paquete de identidad de Azure :

    npm install @azure/identity
    
  2. Cree un proveedor de tokens llamando al getBearerTokenProvider con el tipo de credencial deseado. Por ejemplo, defaultAzureCredential:

    import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity";
    
    const credential = new DefaultAzureCredential();
    const scope = "https://cognitiveservices.azure.com/.default";
    const azureADTokenProvider = getBearerTokenProvider(credential, scope);
    
  3. Cree el cliente pasando el proveedor de tokens:

    import { AzureOpenAI } from "openai";
    
    const deployment = "Your deployment name";
    const apiVersion = "2024-10-21";
    const client = new AzureOpenAI({ azureADTokenProvider, deployment, apiVersion });
    

Conceda acceso al recurso de Azure OpenAI a las entidades de confianza siguiendo las instrucciones de Configuración del servicio Azure OpenAI con autenticación de Microsoft Entra ID.

Conceptos clave

Asistentes

Consulte introducción a la API assistants de OpenAI.

Transcripción y traducción de audio y generación de texto a voz

Consulte Funcionalidades de OpenAI: Conversión de voz en texto.

Lote

Consulte guía de Batch API de OpenAI.

Finalización del chat

Los modelos de chat toman una lista de mensajes como entrada y devuelven un mensaje generado por el modelo como salida. Aunque el formato de chat está diseñado para facilitar las conversaciones multiturno, también es útil para tareas de un solo turno sin ninguna conversación.

Consulte funcionalidades de OpenAI: finalización del chat.

Generación de imágenes

Consulte funcionalidades de OpenAI: generación de imágenes.

Archivos

Consulte referencia de la API de archivos de OpenAI.

Incrustaciones de texto

Consulte funcionalidades de OpenAI: incrustaciones.

Ejemplos

En esta sección se proporcionan ejemplos de uso de las características del servicio Azure OpenAI. Para obtener ejemplos adicionales, consulte la carpeta samples.

Análisis de datos profesionales

Este ejemplo de TypeScript genera respuestas de chat a preguntas de chat de entrada sobre los datos empresariales. Los datos empresariales se proporcionan a través de un índice de Azure Cognitive Search. Para más información sobre cómo configurar un índice de Azure Cognitive Search como origen de datos, consulte Inicio rápido: Chat con modelos de Azure OpenAI mediante sus propios datos.

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();

Finalizaciones de chat filtradas por contenido

Azure OpenAI Service incluye un sistema de filtrado de contenido que funciona junto con los modelos principales. Este sistema detecta y toma medidas en categorías específicas de contenido potencialmente perjudicial tanto en solicitudes de entrada como en finalizaciones de salida. En este ejemplo se muestra cómo acceder a esos resultados de filtrado de contenido.

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();

Pasos siguientes

Solución de problemas

Consulte la biblioteca cliente oficial de OpenAI para javaScript.

Contribuyendo

Consulte la CONTRIBUTING.md de OpenAI de para obtener más información sobre la compilación, las pruebas y la contribución a esta biblioteca.

Este proyecto da la bienvenida a las contribuciones y sugerencias. La mayoría de las contribuciones requieren que acepte un Contrato de licencia de colaborador (CLA) declarando que tiene derecho a, y en realidad, concedanos los derechos para usar su contribución. Para obtener más información, visite cla.microsoft.com.

Al enviar una solicitud de incorporación de cambios, un bot CLA determinará automáticamente si necesita proporcionar un CLA y decorar la solicitud de incorporación de cambios de forma adecuada (por ejemplo, etiqueta, comentario). Solo tiene que seguir las instrucciones proporcionadas por el bot. Solo tendrá que hacerlo una vez en todos los repositorios mediante nuestro CLA.

Este proyecto ha adoptado el código abierto de conducta de Microsoft. Para obtener más información, consulte el de preguntas más frecuentes sobre el código de conducta de o póngase en contacto con con preguntas o comentarios adicionales.