상세 컨텐츠

본문 제목

Cloud Run에서 LangServe와 함께 LangChain 배포하기!

Dev Type

by ai developer 2023. 12. 8. 11:02

본문

LangChain은 LLM 모델을 사용하는 앱을 빌드하기 쉽게 해주는 프레임워크입니다.
LangChain에서 최근 LangServe를 도입했는데, LangChain 프로젝트를 REST API로 배포하는 것을 제공합니다.
LangServe는 Cloud Run과 Replit에 대한 배포를 모두 지원합니다.

LangChain 등장 배경

Google Bard와 같이 Gen AI 챗봇은 LLM을 기반으로 합니다. 간단히 Prompt를 작성하면 코드도 작성하고 텍스트도 바꾸고 추천도 해주고 논리 문제도 해결합니다.
이런 서비스를 구축하려면 Pipeline(Chain)을 구축이 필요합니다.
이 때 필요한 것이 LangChain입니다.

LangChain으로 Chain 구축

간단하게 LangChain을 이용해 VertexAI PaLM 2 for chat model을 불러오고 농담을 하게 만드는 방법입니다.

from langchain.chat_models import ChatVertexAI
from langchain.prompts import ChatPromptTemplate

_prompt = ChatPromptTemplate.from_template(
    "Tell me a joke about Chuck Norris and {text}")
_model = ChatVertexAI()

chain = _prompt | _model

chain.invoke({"text": "Cannelloni"})
# Here's a joke about Chuck Norris and Cannelloni:
# Chuck Norris doesn't eat cannelloni. He eats the can."

LangServe를 활용해 Chain을 API로 제공

위와 같이 Chain을 구축하고 나면 아래 2가지 스텝을 거쳐서 REST API로 노출합니다.

  • Langchain CLI를 사용하여 LangServe 앱 스캐폴딩
  • Chain을 add_routes 를 통해 추가

LangServe에는 체인을 시도하고 디버깅할 수 있는 플레이그라운드 엔드포인트도 함께 제공됩니다.
LangChain은 프로젝트에 실제로 결합하기 좋도록 템플릿을 제공합니다.

데모 시간

Google Cloud 프로젝트가 이미 있다고 가정하고 순서대로 진행합니다.

gcloud config set project [PROJECT-ID]

Vertex AI API 사용 설정

gcloud services enable aiplatform.googleapis.com

localhost에서 Vertex AI PaLM API를 호출 설정

gcloud auth application-default login

LangChain 시작

  • LangChain CLI 설치

pip install langchain-cli

  • LangServe REST API를 스캐폴드하고 다음 명령을 사용하여 Chuck Norris 템플릿을 추가

langchain app new my-demo --package vertexai-chuck-norris

  • 이 명령은 디렉터리를 생성 my-demo하고 --package플래그는 Chuck Norris 템플릿을 설치합니다.
  • 다음으로 Chunk Norris와 app/server.py를 연결한 뒤
from vertexai_chuck_norris.chain import chain as vertexai_chuck_norris_chain

add_routes(app, vertexai_chuck_norris_chain,
           path="/vertexai-chuck-norris")
  • LangChain serve

langchain serve

이러면 웹 서버가 http://localhost:8080/vertexai-chuck-norris/playground 에서 확인하고 실행할 수 있습니다.

  • Cloud Run 배포

gcloud run deploy 하면 끝!

300x250

관련글 더보기

댓글 영역