AzureChatOpenAI 통합
AzureChatOpenAI 통합 (AzureChatOpenAI integration)
LangChain JavaScript를 사용하여 AzureChatOpenAI 채팅 모델과 통합합니다.
Azure OpenAI는 OpenAI의 강력한 언어 모델을 제공하는 Microsoft Azure 서비스입니다.
이 문서는 AzureChatOpenAI 채팅 모델을 시작하는 데 도움이 됩니다. AzureChatOpenAI의 모든 기능과 구성에 대한 자세한 문서는 API 참조를 참고하세요.
개요
통합 세부 정보
| Class | Package | Serializable | PY 지원 | Downloads | Version |
|---|---|---|---|---|---|
AzureChatOpenAI |
@langchain/openai |
✅ | ✅ |
모델 기능
아래 표 헤더의 링크는 특정 기능 사용법에 대한 가이드입니다.
| Tool calling | Structured output | Image input | Audio input | Video input | Token-level streaming | Token usage | Logprobs |
|---|---|---|---|---|---|---|---|
| ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ |
설정
Azure OpenAI는 OpenAI, Meta 및 그 외의 사전 구축되고 엄선된 다양한 모델로 생성형 AI 경험을 빠르게 개발하는 데 도움을 주는 클라우드 서비스입니다.
LangChain.js는 OpenAI SDK의 새로운 Azure 통합을 사용하여 Azure OpenAI와의 통합을 지원합니다.
Azure OpenAI와 OpenAI API의 차이점에 대해 더 알아보려면 이 페이지를 참고하세요.
자격 증명
Azure 계정이 없다면 무료 계정을 만들고 시작할 수 있습니다.
또한 배포된 Azure OpenAI 인스턴스가 필요합니다. 이 가이드에 따라 Azure Portal에 버전을 배포할 수 있습니다.
인스턴스가 실행되면 인스턴스 이름과 키를 확인하세요. 키는 Azure Portal의 인스턴스 "Keys and Endpoint" 섹션에서 찾을 수 있습니다. Node.js를 사용한다면 자격 증명을 환경 변수로 설정할 수 있습니다:
AZURE_OPENAI_API_INSTANCE_NAME=<YOUR_INSTANCE_NAME>
AZURE_OPENAI_API_DEPLOYMENT_NAME=<YOUR_DEPLOYMENT_NAME>
AZURE_OPENAI_API_KEY=<YOUR_KEY>
AZURE_OPENAI_API_VERSION="2024-02-01"
모델 호출의 자동 추적을 원한다면 아래 주석을 해제하여 LangSmith API 키를 설정할 수도 있습니다:
# export LANGSMITH_TRACING="true"
# export LANGSMITH_API_KEY="your-api-key"
설치
LangChain AzureChatOpenAI 통합은 @langchain/openai 패키지에 포함되어 있습니다:
npm install @langchain/openai @langchain/core
yarn add @langchain/openai @langchain/core
pnpm add @langchain/openai @langchain/core
인스턴스화
이제 모델 객체를 인스턴스화하고 채팅 완성을 생성할 수 있습니다:
import { AzureChatOpenAI } from "@langchain/openai"
const llm = new AzureChatOpenAI({
model: "gpt-5.5",
temperature: 0,
maxTokens: undefined,
maxRetries: 2,
azureOpenAIApiKey: proces...KEY, // In Node.js defaults to process.env.AZURE_OPENAI_API_KEY
azureOpenAIApiInstanceName: process.env.AZURE_OPENAI_API_INSTANCE_NAME, // In Node.js defaults to process.env.AZURE_OPENAI_API_INSTANCE_NAME
azureOpenAIApiDeploymentName: process.env.AZURE_OPENAI_API_DEPLOYMENT_NAME, // In Node.js defaults to process.env.AZURE_OPENAI_API_DEPLOYMENT_NAME
azureOpenAIApiVersion: process.env.AZURE_OPENAI_API_VERSION, // In Node.js defaults to process.env.AZURE_OPENAI_API_VERSION
})
호출
const aiMsg = await llm.invoke([
[
"system",
"You are a helpful assistant that translates English to French. Translate the user sentence.",
],
["human", "I love programming."],
])
aiMsg
AIMessage {
"id": "chatcmpl-9qrWKByvVrzWMxSn8joRZAklHoB32",
"content": "J'adore la programmation.",
"additional_kwargs": {},
"response_metadata": {
"tokenUsage": {
"completionTokens": 8,
"promptTokens": 31,
"totalTokens": 39
},
"finish_reason": "stop"
},
"tool_calls": [],
"invalid_tool_calls": [],
"usage_metadata": {
"input_tokens": 31,
"output_tokens": 8,
"total_tokens": 39
}
}
console.log(aiMsg.content)
J'adore la programmation.
Azure Managed Identity 사용하기
Azure Managed Identity를 사용한다면 다음과 같이 자격 증명을 구성할 수 있습니다:
import {
DefaultAzureCredential,
getBearerTokenProvider,
} from "@azure/identity";
import { AzureChatOpenAI } from "@langchain/openai";
const credentials = new DefaultAzureCredential();
const azureADTokenProvider = getBearerTokenProvider(
credentials,
"https://cognitiveservices.azure.com/.default"
);
const llmWithManagedIdentity = new AzureChatOpenAI({
azureADTokenProvider,
azureOpenAIApiInstanceName: "<your_instance_name>",
azureOpenAIApiDeploymentName: "<your_deployment_name>",
azureOpenAIApiVersion: "<api_version>",
});
다른 도메인 사용하기
인스턴스가 기본 openai.azure.com 이외의 도메인에서 호스팅된다면 대체 AZURE_OPENAI_BASE_PATH 환경 변수를 사용해야 합니다.
예를 들어 https://westeurope.api.microsoft.com/openai/deployments/{DEPLOYMENT_NAME} 도메인에 연결하는 방법은 다음과 같습니다:
import { AzureChatOpenAI } from "@langchain/openai";
const llmWithDifferentDomain = new AzureChatOpenAI({
temperature: 0.9,
azureOpenAIApiKey: *** // In Node.js defaults to process.env.AZURE_OPENAI_API_KEY
azureOpenAIApiDeploymentName: "<your_deployment_name>", // In Node.js defaults to process.env.AZURE_OPENAI_API_DEPLOYMENT_NAME
azureOpenAIApiVersion: "<api_version>", // In Node.js defaults to process.env.AZURE_OPENAI_API_VERSION
azureOpenAIBasePath:
"https://westeurope.api.microsoft.com/openai/deployments", // In Node.js defaults to process.env.AZURE_OPENAI_BASE_PATH
});
커스텀 헤더
configuration 필드를 전달하면 커스텀 헤더를 지정할 수 있습니다:
import { AzureChatOpenAI } from "@langchain/openai";
const llmWithCustomHeaders = new AzureChatOpenAI({
azureOpenAIApiKey: proces...KEY, // In Node.js defaults to process.env.AZURE_OPENAI_API_KEY
azureOpenAIApiInstanceName: process.env.AZURE_OPENAI_API_INSTANCE_NAME, // In Node.js defaults to process.env.AZURE_OPENAI_API_INSTANCE_NAME
azureOpenAIApiDeploymentName: process.env.AZURE_OPENAI_API_DEPLOYMENT_NAME, // In Node.js defaults to process.env.AZURE_OPENAI_API_DEPLOYMENT_NAME
azureOpenAIApiVersion: process.env.AZURE_OPENAI_API_VERSION, // In Node.js defaults to process.env.AZURE_OPENAI_API_VERSION
configuration: {
defaultHeaders: {
"x-custom-header": `SOME_VALUE`,
},
},
});
await llmWithCustomHeaders.invoke("Hi there!");
configuration 필드는 공식 SDK에서 허용하는 다른 ClientOptions 파라미터도 받아들입니다.
참고: api-key라는 특정 헤더는 이 방식으로 재정의할 수 없으며 azureOpenAIApiKey의 값이 그대로 전달됩니다.
Azure OpenAI SDK에서 마이그레이션
@langchain/azure-openai 패키지로 폐기된 Azure OpenAI SDK를 사용하고 있다면 다음 단계에 따라 코드를 새 Azure 통합으로 업데이트할 수 있습니다:
- 새
@langchain/openai패키지를 설치하고 이전@langchain/azure-openai패키지를 제거하세요:
npm install @langchain/openai
yarn add @langchain/openai
pnpm add @langchain/openai
npm uninstall @langchain/azure-openai
-
@langchain/openai패키지의 새AzureChatOpenAI클래스를 사용하도록 임포트를 업데이트하세요:import { AzureChatOpenAI } from "@langchain/openai"; -
새
AzureChatOpenAI클래스를 사용하고 필수 파라미터를 전달하도록 코드를 업데이트하세요:const model = new AzureChatOpenAI({ azureOpenAIApiKey: *** azureOpenAIApiInstanceName: "<your_instance_name>", azureOpenAIApiDeploymentName: "<your_deployment_name>", azureOpenAIApiVersion: "<api_version>", });생성자가 이제
azureOpenAIEndpoint파라미터 대신azureOpenAIApiInstanceName파라미터를 요구하고, API 버전을 지정하는azureOpenAIApiVersion파라미터를 추가한다는 점에 유의하세요.-
Azure Managed Identity를 사용하고 있었다면 이제
credentials대신azureADTokenProvider파라미터를 생성자에 사용해야 합니다. 자세한 내용은 Azure Managed Identity 섹션을 참고하세요. -
환경 변수를 사용하고 있었다면 이제
AZURE_OPENAI_API_ENDPOINT대신AZURE_OPENAI_API_INSTANCE_NAME환경 변수를 설정하고, API 버전을 지정하는AZURE_OPENAI_API_VERSION환경 변수를 추가해야 합니다.
-
API 참조
AzureChatOpenAI의 모든 기능과 구성에 대한 자세한 문서는 API 참조를 참고하세요.
더 알아보기
출처: 문서