Библиотека Azure OpenAI для TypeScript — 2.0.0
Azure OpenAI Service предоставляет доступ к расширенным моделям ИИ для общения, создания контента и вариантов использования данных. Библиотека Azure OpenAI для TypeScript является компаньоном официальной клиентской библиотеки OpenAI для JavaScript . Библиотека Azure OpenAI предоставляет дополнительную строго типизированную поддержку моделей запросов и ответов, относящихся к сценариям Azure OpenAI.
переход с @azure/openai версии 1⚠ ️
Ознакомьтесь с руководством по миграции для получения подробных инструкций по обновлению кода приложения с версии 1.x клиентской библиотеки Azure OpenAI в библиотеке openai
.
Ключевые ссылки:
- исходный код
- пакета
(NPM) - Справочная документация по API
- документации по продукту
- примеры
Начало работы
Поддерживаемые в настоящее время среды
- версии LTS Node.js
- Последние версии Safari, Chrome, Edge и Firefox.
Необходимые условия
Если вы хотите использовать ресурс Azure OpenAI, у вас должна быть подписка Azure и доступа Azure OpenAI. Дополнительные сведения см. в кратком руководстве по . Начало создания текста с помощьюслужбы OpenAI Azure.
Установка openai
и @azure/openai
Установите клиентскую библиотеку Azure OpenAI и библиотеку OpenAI для JavaScript с помощью npm
:
npm install openai @azure/openai
Создание и проверка подлинности AzureOpenAI
Существует несколько способов проверки подлинности в службе Azure OpenAI, и рекомендуется использовать идентификатор Microsoft Entra для безопасной проверки подлинности без ключей с помощью библиотеки удостоверений Azure . Чтобы приступить к работе, выполните приведенные действия.
Установите пакет удостоверений Azure
: npm install @azure/identity
Создайте поставщика маркеров, вызвав
getBearerTokenProvider
с нужным типом учетных данных. Например, DefaultAzureCredential:import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity"; const credential = new DefaultAzureCredential(); const scope = "https://cognitiveservices.azure.com/.default"; const azureADTokenProvider = getBearerTokenProvider(credential, scope);
Создайте клиент, передав поставщик маркеров:
import { AzureOpenAI } from "openai"; const deployment = "Your deployment name"; const apiVersion = "2024-10-21"; const client = new AzureOpenAI({ azureADTokenProvider, deployment, apiVersion });
Предоставьте доступ к ресурсу Azure OpenAI доверенным сущностям, следуя инструкциям в статье Настройка Azure OpenAI Service с помощью проверки подлинности Идентификатора Microsoft Entra.
Основные понятия
Помощников
Общие сведения API помощников OpenAI.
Транскрибирование звука и преобразование текста в речь
См. возможности OpenAI: преобразование речи в текст.
Партия
См. руководство api пакетной службы OpenAI.
Завершение чата
Модели чата принимают список сообщений в качестве входных данных и возвращают созданное моделью сообщение в виде выходных данных. Хотя формат чата предназначен для упрощения многоэтапных бесед, он также полезен для задач с одним поворотом без каких-либо бесед.
См. возможности OpenAI: завершение чата.
Создание образа
См. возможности OpenAI: создание образов.
Файлы
Дополнительные
Внедрение текста
См. возможности OpenAI: внедрение.
Примеры
В этом разделе приведены примеры использования функций службы Azure OpenAI. Дополнительные примеры см. в папке примеров .
Анализ бизнес-данных
Этот пример TypeScript создает ответы чата на вопросы о входных чатах о бизнес-данных. Бизнес-данные предоставляются с помощью индекса Когнитивного поиска Azure. Дополнительные сведения о настройке индекса Когнитивного поиска Azure в качестве источника данных см. в кратком руководстве: чат с моделями Azure OpenAI с помощью собственныхданных.
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();
Завершение чата с фильтрацией содержимого
Служба Azure OpenAI включает систему фильтрации содержимого, которая работает вместе с основными моделями. Эта система обнаруживает и принимает меры по определенным категориям потенциально вредного содержимого как в запросах ввода, так и в завершении выходных данных. В этом примере показано, как получить доступ к этим результатам фильтрации содержимого.
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();
Дальнейшие действия
Устранение неполадок
Ознакомьтесь с официальной клиентской библиотекой OpenAI для JavaScript .
Способствует
Дополнительные сведения о создании, тестировании и участии в этой библиотеке см. в OpenAI CONTRIBUTING.md.
Этот проект приветствует взносы и предложения. Большинство вкладов требуют, чтобы вы согласились с соглашением о лицензии участника (CLA), заявив, что у вас есть право, и на самом деле, предоставьте нам права на использование вашего вклада. Дополнительные сведения см. в cla.microsoft.com.
При отправке запроса на вытягивание бот CLA автоматически определяет, нужно ли предоставить соглашение об уровне обслуживания и украсить pr соответствующим образом (например, метка, комментарий). Просто следуйте инструкциям, предоставленным ботом. Это необходимо сделать только один раз во всех репозиториях с помощью нашего CLA.
Этот проект принял Microsoft Open Source Code of Conduct. Дополнительные сведения см. в разделе Часто задаваемые вопросы о поведении или связаться с opencode@microsoft.com с любыми дополнительными вопросами или комментариями.
Azure SDK for JavaScript