Vertex AI 기반 LangChain

Vertex AI 기반 LangChain(미리보기)을 사용하면 LangChain 오픈소스 라이브러리를 활용하여 커스텀 생성형 AI 애플리케이션을 빌드하고 모델, 도구, 배포에 Vertex AI를 사용할 수 있습니다. Vertex AI용 LangChain(미리보기 버전)을 사용하면 다음 단계를 수행할 수 있습니다.

  • 작업할 대규모 언어 모델(LLM)을 선택합니다.
  • 외부 API에 액세스하는 데 사용할 도구를 정의합니다.
  • 조정 프레임워크에서 사용자와 시스템 구성요소 간의 인터페이스를 구조화합니다.
  • 관리형 런타임에 프레임워크를 배포합니다.

이점

  • 맞춤설정 가능: LangChain의 표준화된 인터페이스를 활용하여, Vertex AI용 LangChain을 다양한 종류의 애플리케이션을 구축하는 데 채택할 수 있습니다. 애플리케이션의 로직을 맞춤설정하고 모든 프레임워크를 통합하여 높은 수준의 유연성을 제공할 수 있습니다.
  • 배포 간소화: Vertex AI용 LangChain은 LangChain과 동일한 API를 사용하여 LLM과 상호작용하고 애플리케이션을 빌드합니다. Vertex AI용 LangChain은 Vertex AI LLM을 사용하여 배포를 단순화하고 속도를 높입니다. Reasoning Engine 런타임은 라이브러리를 기반으로 호환되는 API를 생성하기 위한 단일 클릭 배포를 지원하기 때문입니다.
  • Vertex AI 생태계와 통합: Vertex AI용 LangChain의 Reasoning Engine은 Vertex AI의 인프라 및 사전 빌드된 컨테이너를 사용하여 LLM 애플리케이션 배포를 지원합니다. Vertex AI API를 사용하여 Gemini 모델, 함수 호출, 확장 프로그램과 통합할 수 있습니다.
  • 안전성, 비공개성, 확장성: 개발 프로세스를 직접 관리하는 대신 단일 SDK 호출을 사용할 수 있습니다. Reasoning Engine 관리형 런타임을 사용하면 애플리케이션 서버 개발, 컨테이너 만들기, 인증 구성, IAM, 확장과 같은 태스크를 할 필요가 없습니다. Vertex AI는 자동 확장, 리전 확장, 컨테이너 취약점을 처리합니다.

사용 사례

Vertex AI에서 LangChain을 사용하여 다음 태스크를 수행할 수 있습니다.

사용 사례 예시 설명 예시 링크
자연어 스토리에서 항목 추출 스토리에서 캐릭터, 관계, 사물, 장소 목록을 추출합니다. Vertex AI SDK for Python 노트북 - 함수 호출을 사용하여 정형 데이터 추출
자연어를 사용하여 SQL 데이터베이스 쿼리 및 이해 '주문 중 반품 비율은 얼마야?'와 같은 질문을 SQL 쿼리로 변환하고 이러한 쿼리를 BigQuery에 제출하는 함수를 만들도록 모델에 요청합니다. 블로그 게시물 - Gemini에서 함수 호출을 사용하여 AI 기반 BigQuery 데이터 탐색 앱 빌드
고객이 비즈니스와 상호작용하도록 돕기 모델에서 'Pixel 8 Pro 재고 있어?' 또는 '캘리포니아 마운틴뷰에 방문하여 사용해 볼 수 있는 매장이 있나요'와 같은 쿼리에 정확한 답변을 제공할 수 있도록 비즈니스 API에 연결하는 함수를 만듭니다. Vertex AI SDK for Python 노트북 - Vertex AI Gemini API 및 Python SDK로 함수 호출
공개 API에 연결하여 생성형 AI 애플리케이션 빌드 통화 간 변환

모델에서 '오늘 달러 대비 유로 환율 어때?'와 같은 쿼리에 정확한 답변을 제공할 수 있도록 환율 앱에 연결하는 함수를 만듭니다.
Codelab - Gemini에서 함수 호출을 사용하여 API와 상호작용하는 방법
특정 위치의 날씨 가져오기

모델에서 '파리 날씨 어때?'와 같은 쿼리에 정확한 답변을 제공할 수 있도록 기상 서비스의 API에 연결하는 함수를 만듭니다.
Vertex AI SDK for Python 노트북 - Vertex AI Gemini API 및 Python SDK로 함수 호출

블로그 게시물 - 함수 호출: 함수 호출: Gemini를 외부 시스템, 데이터, API에 연결하는 기본 프레임워크
주소를 위도 및 경도 좌표로 변환

구조화된 위치 데이터를 위도 및 경도 좌표로 변환하는 함수를 만듭니다. '1600 Amphitheatre Pkwy, Mountain View, CA 94043, US' 주소의 위도/경도 좌표를 가져오려고 합니다.'와 같은 쿼리에서 상세 주소, 도시, 주, 우편번호를 식별하도록 모델에 요청합니다.
Vertex AI SDK for Python 노트북 - Vertex AI Gemini API 및 Python SDK로 함수 호출
음성 명령 해석 차내 태스크에 해당하는 함수를 만듭니다. 예를 들어 라디오를 켜거나 에어컨을 활성화하는 함수를 만들 수 있습니다. 사용자 음성 명령 오디오 파일을 모델에 전송하고 오디오를 텍스트로 변환하고 사용자가 호출하려는 함수를 식별하도록 모델에 요청합니다.  
환경 트리거를 기준으로 워크플로 자동화 자동화할 수 있는 프로세스를 나타내는 함수를 만듭니다. 모델에 환경 센서의 데이터를 제공하고 데이터를 파싱 및 처리하여 워크플로 하나 이상이 활성화되어야 하는지 여부를 결정하도록 요청합니다. 예를 들어 모델이 창고에서 온도 데이터를 처리하고 스프링클러 함수를 활성화할 수 있습니다.  
지원 티켓 할당 자동화 모델에 지원 티켓, 로그, 컨텍스트 인식 규칙을 제공합니다. 모델에 이 모든 정보를 모두 처리하여 티켓이 할당되어야 하는 대상을 결정하도록 요청합니다. 함수를 호출하여 모델이 추천한 사람에게 티켓을 할당합니다.  
기술 자료에서 정보 검색 특정 주제에 대한 학술 자료를 검색하고 요약하는 함수를 만듭니다. 모델이 학술 주제에 대한 질문에 답하고 답변에 대한 인용을 제공할 수 있도록 사용 설정합니다.  

시스템 구성요소

OSS LangChain 및 Vertex AI를 사용하여 커스텀 생성형 AI 애플리케이션을 빌드하고 배포하는 과정은 4가지 구성요소로 구성됩니다.

구성요소설명
LLM

커스텀 애플리케이션에 쿼리를 제출하면 LLM이 쿼리를 처리하고 응답을 제공합니다.

외부 API와 통신하는 도구 집합을 정의하고 이를 모델에 제공할 수 있습니다. 쿼리를 처리하는 동안 모델은 특정 태스크를 도구에 위임합니다. 이는 파운데이션 또는 미세 조정된 모델에 대한 하나 이상의 모델 호출을 의미합니다.

자세한 내용은 모델 버전 및 수명 주기를 참조하세요.

도구

외부 API(예: 데이터베이스)와 통신하는 도구 집합을 정의하고 이를 모델에 제공할 수 있습니다. 쿼리를 처리하는 동안 모델은 특정 태스크를 도구에 위임할 수 있습니다.

Vertex AI의 관리형 런타임을 통한 배포는 Gemini 함수 호출 기반 도구를 사용하도록 최적화되어 있지만 LangChain 도구/함수 호출을 지원합니다. Gemini 함수 호출에 대한 자세한 내용은 함수 호출을 참조하세요.

조정 프레임워크

Vertex AI 기반 LangChain을 사용하면 Vertex AI에서 LangChain 조정 프레임워크를 활용할 수 있습니다. LangChain을 사용하여 애플리케이션이 얼마나 확률론적이어야 하는지 결정합니다.

이미 LangChain을 사용하고 있다면 기존 LangChain 코드를 사용하여 Vertex AI에 애플리케이션을 배포할 수 있습니다. 아니면 자체 애플리케이션 코드를 만들고 Vertex AI의 LangChain 템플릿을 활용하는 조정 프레임워크에서 이를 구조화할 수 있습니다.

자세한 내용은 애플리케이션 개발을 참조하세요.

관리형 런타임 Vertex AI 기반 LangChain을 사용하면 애플리케이션을 Reasoning Engine 관리형 런타임에 배포할 수 있습니다. 이 런타임은 Vertex AI 통합의 모든 이점(보안, 개인 정보 보호, 관측 가능성, 확장성)을 제공하는 Vertex AI 서비스입니다. 간단한 API 호출로 애플리케이션을 프로덕션화하고 확장하여 로컬 테스트를 거친 프로토타입을 엔터프라이즈용 배포로 빠르게 전환할 수 있습니다. 자세한 내용은 애플리케이션 배포를 참조하세요.

도구, 커스텀 함수, Gemini와 같은 모델 위에 계층화하여 에이전트 기능을 활용하는 커스텀 생성형 AI 애플리케이션의 프로토타입을 제작하고 빌드하는 다양한 방법이 있습니다. 애플리케이션을 프로덕션으로 이동할 때는 에이전트와 기본 구성요소를 배포하고 관리하는 방법을 고려해야 합니다.

Vertex AI용 LangChain 구성요소 사용의 목표는 Google에서 배포, 확장, 패키징, 버전 등을 처리하는 동안, 사용자가 커스텀 함수, 에이전트 동작, 모델 매개변수 등 가장 중요한 에이전트 기능의 측면에 집중하고 맞춤설정할 수 있도록 지원하는 것입니다. 스택의 하위 수준에서 작업하는 경우 원하는 것보다 더 많은 것을 관리해야 할 수도 있습니다. 스택의 상위 수준에서 작업하는 경우 원하는 만큼의 개발자 제어 권한을 갖지 못할 수 있습니다.

런타임에서 시스템 흐름

사용자가 쿼리를 작성하면 정의된 에이전트가 해당 쿼리를 LLM용 프롬프트 형식으로 지정합니다. LLM은 프롬프트를 처리하고 도구를 사용할지 여부를 결정합니다.

LLM이 도구를 사용하기로 선택하면 도구 호출에 사용할 이름과 매개변수를 사용하여 FunctionCall이 생성됩니다. 에이전트가 FunctionCall을 사용하여 도구를 호출하고 도구의 결과를 LLM에 다시 제공합니다. LLM에서 도구를 사용하지 않도록 선택하면 콘텐츠가 생성되고 에이전트가 사용자에게 이를 다시 릴레이합니다.

다음 다이어그램은 런타임에서 실행되는 시스템 흐름을 보여줍니다.

런타임에서 시스템 흐름 

생성형 AI 애플리케이션 만들기 및 배포

생성형 AI 애플리케이션을 빌드하는 워크플로는 다음과 같습니다.

단계 설명
1. 환경 설정 Google 프로젝트를 설정하고 Vertex AI SDK for Python의 최신 버전을 설치합니다.
2. 애플리케이션 개발 Reasoning Engine에 배포할 수 있는 LangChain 애플리케이션을 개발합니다.
3. 애플리케이션 배포 Reasoning Engine에 애플리케이션을 배포합니다.
4. 애플리케이션 사용 Reasoning Engine에 응답을 쿼리합니다.
5. 배포된 애플리케이션 관리 Reasoning Engine에 배포한 애플리케이션을 관리하고 삭제합니다.
6. (선택사항) 애플리케이션 템플릿 맞춤설정 새 애플리케이션의 템플릿을 맞춤설정합니다.

단계는 다음 다이어그램에 나와 있습니다.

생성형 AI 애플리케이션 만들기 및 배포 

다음 단계