Azure OpenAI 통합
Azure OpenAI 통합
LangChain JavaScript로 Azure OpenAI LLM과 통합하는 방법을 알아봅니다.
LangChain.js에서 Azure OpenAI 텍스트 완성 모델을 사용할 수 있게 해주는 공식 통합 가이드예요. Azure OpenAI는 OpenAI의 강력한 언어 모델을 제공하는 Microsoft Azure 서비스입니다.
출처: 문서
본문
현재 이 페이지는 Azure OpenAI 텍스트 완성 모델 사용법을 다루는 문서예요. 최신이자 가장 인기 있는 Azure OpenAI 모델은 챗 완성 모델입니다.
특별히
gpt-3.5-turbo-instruct를 사용하지 않는다면, 아마 이 페이지를 찾고 계실 거예요.
이전에는 LangChain.js가 전용 Azure OpenAI SDK를 사용해 Azure OpenAI와 통합했어요. 이 SDK는 이제 OpenAI SDK의 새로운 Azure 통합을 위해 더 이상 사용되지 않는데, 이 새로운 통합은 최신 OpenAI 모델을 출시 당일에 바로 접근할 수 있게 하고, OpenAI API와 Azure OpenAI 간의 원활한 전환을 지원합니다.
더 이상 사용되지 않는 SDK로 Azure OpenAI를 사용 중이라면 마이그레이션 가이드를 참고해 새 API로 전환하세요.
Azure OpenAI는 OpenAI의 강력한 언어 모델을 제공하는 Microsoft Azure 서비스입니다.
이 문서는 LangChain으로 AzureOpenAI 완성 모델(LLM)을 시작하는 데 도움을 줍니다. AzureOpenAI 기능과 구성 옵션에 대한 자세한 문서는 API reference를 참조하세요.
개요
통합 세부 정보
| 클래스(Class) | 패키지(Package) | 로컬(Local) | 직렬화(Serializable) | PY 지원 | 다운로드(Downloads) | 버전(Version) |
|---|---|---|---|---|---|---|
AzureOpenAI |
@langchain/openai |
❌ | ✅ | ✅ |
설정
AzureOpenAI 모델에 접근하려면 Azure 계정을 만들고 API 키를 발급받은 뒤 @langchain/openai 통합 패키지를 설치해야 합니다.
자격 증명(Credentials)
azure.microsoft.com에 방문해 AzureOpenAI에 가입하고 API 키를 생성하세요.
또한 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"
또는 값을 AzureOpenAI 생성자에 직접 전달할 수도 있습니다.
모델 호출에 대한 자동 추적을 받으려면 아래 주석을 해제해 LangSmith API 키를 설정할 수도 있습니다:
# export LANGSMITH_TRACING="true"
# export LANGSMITH_API_KEY="your-api-key"
설치
LangChain AzureOpenAI 통합은 @langchain/openai 패키지에 있습니다:
npm install @langchain/openai @langchain/core
yarn add @langchain/openai @langchain/core
pnpm add @langchain/openai @langchain/core
인스턴스화(Instantiation)
이제 모델 객체를 인스턴스화하고 채팅 완성을 생성할 수 있습니다:
import { AzureOpenAI } from "@langchain/openai"
const llm = new AzureOpenAI({
model: "gpt-3.5-turbo-instruct",
azureOpenAIApiKey: *** // In Node.js defaults to process.env.AZURE_OPENAI_API_KEY
azureOpenAIApiInstanceName: "<your_instance_name>", // In Node.js defaults to process.env.AZURE_OPENAI_API_INSTANCE_NAME
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
temperature: 0,
maxTokens: undefined,
timeout: undefined,
maxRetries: 2,
// other params...
})
호출(Invocation)
const inputText = "AzureOpenAI is an AI company that "
const completion = await llm.invoke(inputText)
completion
provides AI solutions to businesses. They offer a range of services including natural language processing, computer vision, and machine learning. Their solutions are designed to help businesses automate processes, gain insights from data, and improve decision-making. AzureOpenAI also offers consulting services to help businesses identify and implement the best AI solutions for their specific needs. They work with a variety of industries, including healthcare, finance, and retail. With their expertise in AI and their partnership with Microsoft Azure, AzureOpenAI is a trusted provider of AI solutions for businesses looking to stay ahead in the rapidly evolving world of technology.
Azure Managed Identity 사용하기
Azure Managed Identity를 사용한다면 다음과 같이 자격 증명을 구성할 수 있습니다:
import {
DefaultAzureCredential,
getBearerTokenProvider,
} from "@azure/identity";
import { AzureOpenAI } from "@langchain/openai";
const credentials = new DefaultAzureCredential();
const azureADTokenProvider = getBearerTokenProvider(
credentials,
"https://cognitiveservices.azure.com/.default"
);
const managedIdentityLLM = new AzureOpenAI({
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 { AzureOpenAI } from "@langchain/openai";
const differentDomainLLM = new AzureOpenAI({
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
});
Azure OpenAI SDK에서 마이그레이션
@langchain/azure-openai 패키지와 함께 더 이상 사용되지 않는 Azure OpenAI SDK를 사용하고 있다면, 다음 단계를 따라 새 Azure 통합으로 코드를 업데이트할 수 있습니다:
-
새
@langchain/openai패키지를 설치하고 기존@langchain/azure-openai패키지를 제거하세요:npm install @langchain/openai npm uninstall @langchain/azure-openai -
@langchain/openai패키지에서 새AzureOpenAI및AzureChatOpenAI클래스를 사용하도록 import를 업데이트하세요:import { AzureOpenAI } from "@langchain/openai"; -
새
AzureOpenAI및AzureChatOpenAI클래스를 사용하고 필요한 파라미터를 전달하도록 코드를 업데이트하세요:const model = new AzureOpenAI({ 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 reference
모든 AzureOpenAI 기능과 구성에 대한 자세한 문서는 API reference를 참조하세요.
더 알아보기 (Learn more)
- 이 문서를 MCP로 연결하면 Claude, VSCode 등에서 실시간 답변을 받을 수 있어요.
- GitHub에서 이 페이지 편집하기 또는 이슈 제출하기.