반응형

목차  LangChain - Get started

  1. Introduction
  2. Installation (이번 포스팅 내용)
  3. Quickstart
  4. Security

 

지난 시간에는 LangChain이 무엇인지에 대해서 알아보았습니다.

랭체인은 프레임웍이라고 했으며, 이 프레임웍을 이용하면 어플리케이션이 더 잘 알아듣고 추리/추론을 더 잘 할 수 있도록 개발 할 수 있다고 했습니다. 또한 전반적으로 언어모델을 활용한 어플리케이션을 쉽게 만들 수 있도록 도와 줍니다.

https://bigdatamaster.tistory.com/208

 

랭체인(LangChain) 이란? : 개요

지난 두번의 포스팅에[서 OpenAI API에 대한 개요와 활용하기 위한 기본적인 방법에 대해서 알아보았습니다. 이번에는 보다 복잡하고 쓸만한 어플리케이션을 만들기 위해서 필요한 랭체인(LangChain)

bigdatamaster.tistory.com

 

이번 포스팅의 내용은 이러한 랭체인을 사용할 수 있도록 패키지를 설치하는 방법에 대한 설명입니다.

 

공식 배포 버전 설치 방법

아주 간단합니다. 파이썬이 설치되어 있다면 간단히 아래 명령어로 랭체인을 설치할 수 있습니다.

pip install langchain

콘다를 설치해서 사용중이라면 아래의 명령을 사용하시면 됩니다.

conda install langchain -c conda-forge

이러한 명령은 랭체인을 사용하기 위해 아주 기본적이고 최소한의 내용만 설치 합니다. 랭체인의 가장 큰 가치는 다양한 모델 또는 데이터 저장소 등과 같이 통합될 때 나타납니다. 기본적으로 이런 통합을 의한 의존성이 있는 패키지들은 설치되지 않습니다. 따라서 이러한 통합 사용을 원한다면 별도로 필요한 의존성 패키지들의 설치가 필요니다.

소스를 이용한 설치

소스를 이용해서 설치가 필요하다면 소스 레포지토리를 클로닝 해서 할 수 있습니다. 이때는 PATH/TO/REPI/langchain/libs/langchain 와 같이 경로를 명확하게 해주고 아래의 명령어를 실행하면 됩니다.

pip install -e .

 LangChain community

langchain-community 패키지는 제3자 통합하는 것을 가지고 있습니다. langchain을 설치하면 자동으로 함께 설치되지만, 아래의 명령어를 통해 개별적으로도 설치할 수 있습니다.

pip install langchain-community

LangChain core

langchain-core 패키지는 LangChain 생태계의 나머지 부분에서 사용하는 기본 추상화와 LangChain 표현 언어(LCEL)가 포함되어 있습니다. 이는 langchain에 의해 자동으로 설치되지만 독립적으로 사용될 수도 있습니다. 다음 명령어로 설치할 수 있습니다:

pip install langchain-core

LangChain experimental

langchain-experimental 패키지는 실험적인 LangChain 코드와 연구와 실험 사용을 위한 코드들을 가지고 있습니다. 이를 설치하기 위해서는 다음과 같은 명령어를 사용합니다.

pip install langchain-experimental

LangServe

LangServe는 개발자들이 LangChain runnables과 chain 들을 REST API로 배포하는 것을 도와 줍니다. LangServe는 LangChain CLI에 의해서 자동으로 설치됩니다. 만약 LangChain CLI를 사용하지 않는 다면 다음을 이용해서 설치하세요.

pip install "langserve[all]"

서버와 클라이언트 모두 설치시 위와 같이하면 되고

클라이언트 코드만 필요시 pip install "langserve[client'" 를

그리고 서버 코드만 필요시 pip install "langserve[server]" 를 이용합니다.

LangChain CLI

LangChain CLI는 LangChain templates나 다른 LangServe 프로젝트의 사용이 필요할 때 유용합니다.

pip install langchain-cli

LangSmith SDK

LangSmith는 LangChain 설치시 자동으로 설치됩니다. LangChain을 사용하지 않는다면 다음을 이용해서 설치할 수 있습니다.

pip install langsmith

 

이로써 LangChain 에 필요한 다양한 패키지들의 설치 방법에 대해서 알아보았습니다.

모든 설치가 끝난뒤에 pip list 명령어를 통해 정상적으로 설치되었는지를 확인 할 수 있습니다.

기본적으로는 pip install langchain 만 해도 기본적인 사용이 가능하며 module import error가 나면 필요한 패키지를 설치해줘도 됩니다.

 

다음 시간에는 예제를 통해 이들의 간단한 활용 방법에 대해서 알아보도록 하겠습니다.

 

 

아래 링크는 langchain 설치와 관련된 내용을 구글 colab에서 하나씩 실행하는 주피터 노트북 파일 입니다. 참고해서 직접 하나씩 실행시켜보세요.

https://colab.research.google.com/drive/1NTVYI564LLX46ugb9egDH0imLEtMmHfo?usp=sharing

 

아래는 내용을 좀더 자세히 설명하는 동영상 입니다.

https://youtu.be/hfbt30g4w5k

 

 

 

 

반응형
반응형

목차  LangChain - Get started

  1. Introduction (이번 포스팅 내용)
  2. Installation
  3. Quickstart
  4. Security

 

지난 두번의 포스팅에서 OpenAI API에 대한 개요와 활용하기 위한 기본적인 방법에 대해서 알아보았습니다. 이번에는 보다 복잡하고 쓸만한 어플리케이션을 만들기 위해서 필요한 랭체인(LangChain)이라는 라이브러리에 대해서 알아보겠습니다. 

일반적으로 OpenAI API를 그대로 쓰는 것 보다는 더 복잡하고 특정 업무를 처리하기 위한, 그런 어플리케이션을 만들어 사용합니다. 그도 그럴 것이 안그러면 그냥 ChatGPT의 웹을 이용하면 되겠지요. 그러나 특정 업무를 처리하기 위한, 특별한 어플리케이션을 만들려면 많은 추가적인 노력이 필요합니다. 이러한 노력을 줄여주는 라이브러리가 바로 랭체인 입니다. 이전 마지박 포스팅에서 언급한 것처럼, 살짝 특별한 대답을 위하는 경우에 가장 간단한 방법은 프롬프트 엔지니어링(Prompt Engineering)이라고 불리우는 방법으로, 사용자 입력 내용에 더하여 미리 설정된 문구를 함께 제공하는 방법이 있습니다. 이 방법은 쉽지만 한계가 많이 있습니다. 따라서 다양한 방법으로 어플리케이션의 품질을 높이는 방법이 필요한데요, 이러한 개발에 도움을 주는 라이브러리가 바로 랭체인입니다. 그래서 오늘은 먼저 랭체인의 개요에 대해서 알아보고자 합니다.

 

먼저, 주요 내용은 아래와 같은 페이지를 참조했음을 알립니다.

https://python.langchain.com/docs/get_started/introduction

 

랭체인(LangChain) 이란

LangChain 은 프레임웍입니다.  언어모델을 이용해서 어플리케이션을 개발할 때 어플리케이션이 맥락을 이해하고 추리 할 수 있도록 랭체인이 도와줍니다. 즉, 랭체인을 이용하면 언어모델을 이용한 어플리케이션이 맥락을 더 잘 이해하고, 추리를 더 잘 하게 만들 수 있습니다. 더 똑똑하게 만들 수 있습니다.

LangChain 프레임웍은 다음과 같이 4가지 파트로 구성됩니다.

  • LangChain Libraries: 파이썬과 자바스크립트 라이브러리 입니다. 이것은 많은 콤포넌트들 간의 연결과 통합을 제공합니다. 예를들면, 컴포넌트들을 체인, 에이전트와 연결하여 기본 실행 환경을 제공하고 바로 쓸수 있는 체인과 에이전트를 제공합니다.
  • LangChain Templates: 다양한 종류의 작업을 위한 쉽게 배포할 수 있는 참조 아키텍처의 집합입니다.
  • LangServe: LangChain을 REST API로 배포하기 위한 라이브러리 입니다.
  • LangSmith: LLM 프레임웍하에서 개발되고 랭체인으로 유연하게 연결된 채인들을 디버그하고, 테스트, 평가 그리고 모니터링 할 수 있도록 기능을 제공하는 개발자 플랫폼입니다.

이러한 제품들을 이용하면 어플리케이션 라이프사이클을 단순하게 만듭니다. 개발, 제품화, 배포 등에서 활용됩니다.

  • Develop: 라이브러리를 이용하여 어플리케이션을 작성하고 참조 템플릿을 이용해서 개발을 시작할 수 있습니다. 즉, 밑바닥부터 시작하는 것이 아니라 라이브러리 import, 호출 만으로 쉽게 어플리케이션을 개발 할 수 있습니다.
  • Productionize: 랭스미스를 사용해서 여러분이 만든 체인을 조사, 테스트, 모니터링 할 수 있습니다. 그래서 여러분은 자신감을 가지고 지속해서 어플리케이션을 개선/배포 할 수 있습니다. 정확히 어떻게 돌아가는지 확인하고, 검증, 모니터링해서 어플리케이션의 품질을 확인할 수 있습니다.
  • Deploy: 랭서브를 이용해서 어떤 체인이든지 API로 바꿀 수 있습니다. 라이브러리를 이용하여 필요한 어플리케이션을 만들면 쉽게 API화 할 수 있습니다. 즉, 쉽게 Backend를 만들 수 있습니다.

보시는 것처럼 랭체인의 파트 들이 개발 라이프 사이클에 각각 녹아 들어가서 사용됩니다.

 

LangChain Libraries

랭체인 패키지들의 가치있는 주요 도구들은 바로 콤포넌트들과 미리 개발된 체인들입니다.

  1. Components: 구성 가능한 툴과 언어모델과의 동작을 통합합니다. 여러분이 랭체인 프레임웍의 일부를 사용하던 안하던 간에, 콤포넌트들은 모듈화되어있고 사용하기 쉽습니다.
  2. Off-the-shelf chains: 상위 수준의 작업을 완수하기 위한 콤포넌트들의 (미리 만들어진) 빌트인 체인 집합을 말합니다.

빌트인 체인들은 랭체인을 사용한 어플리케이션의 개발 시작을 쉽게 해줍니다. 콤포넌트들은 이런 빌트인 체인들을 이용해서 기존 체인을 쉽게 수정하고 새로운 체인을 만들수 있습니다. 

랭체인 라이브러리 자체는 아래 3 개의 다른 패키지들로 구성됩니다.

  • langchain-core: 기본 추상화 모듈과 랭체인 표현언어(LCEL: LangChain Expression Language) 패키지입니다.
  • langchain-community: 제3자들의 개발을 통합하는 패키지입니다. 패키지에는 Models I/O, Retrieval, AgentTooling 모듈이 있습니다.
  • langchain: 체인, 에이전트, 그리고 어플리케이션의 인지 아키텍처를 보완하는 회수 전략(retrieval strategies)들의 패키지입니다.

 

Get started: 시작하기

여기에서는 어떻게 랭체인을 설치하고 여러분의 환경에 맞게 설정하고 만드는 것을 시작하는지 알려줍니다. 관련해서 별도 포스팅 예정입니다.

여러분이 첫번째 랭체인 어플리케이션을 만듬으로써 랭체인에 좀더 익숙해지도록 Quickstart 가이드를 따라해 보시기 바랍니다.

여러분이 보안 모범 사례 를 읽어 봄으로써 랭체인을 개발할 때 더욱 안전하게 만들어 보세요.

 

 

LangChain Expression Language (LCEL)

LCEL은 체인을 구성하기위해 선언적인 방법을 사용합니다. LCEL은 하루만에 프롬프트와 LLM의 간단한 체인부터 가장 복잡한 체인까지 코드 변경 없이 프로덕션에 프로토타입을 배포할 수 있도록 설계되었습니다. 이내용도 별도 포스팅 예정입니다. 여기서는 랭체인의 체인을 만들 떼 쉬운 방법이 (LCEL) 있구나 정도만 이해하시면 될 것 같습니다.

  • Overview: LCEL과 그 장점들
  • Interface: 객체들을 위한 표준 인터페이스
  • How-to: LCEL의 주요 기능
  • Cookbook: 공통 작업을 완료하기 위한 예시 코드

 

Modules

랭체인은 표준, 확장가능한 인터페이스와 통합을 위해 다음의 모듈들을 제공합니다.

     Model I/O :  언어 모델과의 인터페이스 제공

     Retrieval :  어플리케이션 특화 데이터와의 인터페이스 제공

     Agents :  모델들이 주어진 상위 수준의 지시문을 이용하여 어떤 툴을 선택 할지를 제공하는 모듈

이러한 모듈들을 개발에 이용하여 어플리케이션을 만들게 됩니다. 따라서 어떻게 보면 개발자에게는 제일 중요한 파트라고 할 수 있습니다.

 

Examples, ecosystem, and resources

Use cases: 사용사례

Integrations: 통합 integrations.

 

Guides: 랭체인을 활용한 개발 모범 사례

 

API reference   파이썬 패키지에서 사용하기 위한 랭체인 클래스와 메소드들에 대한 문서 제공

 

Developer's guide

 

Community

 

아래는 내용을 좀더 자세히 설명하는 동영상 입니다.

https://youtu.be/HtmpB9CAdHY

 

 

 

 

반응형

+ Recent posts