본문 바로가기
LLM/LangChain

LangChain 처음 시작하기

by Bill Lab 2024. 8. 29.
728x90

LangChain을 연동 해서 사용하려면 우선 2가지 언어 중 한가지를 선택해야한다.

그중 한가지가 Python, 그리고 나머지한가지는 Javascript

(일부 JAVA도 지원하지만... 사용화버전까지는 다소 시간이 걸릴 듯 하다.)

 

여긴 Javascript를 기반으로 한 내역을 작성해보도록 하겠다(빠르게 서비스전환을 위해)

 

Setup 은 간단하다. 왜? 설치만 하고 세팅하면 끝

yarn add langchain

 

같이 설치 되는 packages 구조에 대해 관심이 있는 사람이 있을 수 있다는 판단에 관련자료도 첨부!!

Ecosystem packages

요약하면

- langchain-core (늘 그렇듯)

   : 중심이 되어 추상화 계체를 각 영역별로 지원하고 package 의 흐름을 관리한다

     (core version 중요!)

- langchain/community

   : 써드 파티 통합을 위해 필요한 기능을 제공한다

- langgraph 

   : building stateful 과 multi-actor 기능 제공(없이 사용 가능)

 

 

자 package 설치가 끝났으면, LangSmith 에도 접속을 해볼까?

https://smith.langchain.com/

 

LangSmith

 

smith.langchain.com

회원가입을 한 다음에 환경변수 세팅을 하면 된다

 

LangChain 에서 연동가능한 모델로는 아래와 같다

연동을 위한 Key정보는 각 LLM 사이트에서 제공하는 Key값을 세팅해서 사용하면 된다

예를 들면, OpenAI의 경우

 

//package 설치후
yarn add @langchain/openai  

//가입 후 부여받은 api key값을 입력하고
OPENAI_API_KEY=your-api-key

//아래와 같이 import 를 한다음(모델별로 내역이 달라짐)
import { ChatOpenAI } from "@langchain/openai";

const model = new ChatOpenAI({ model: "gpt-4" });

//전달하고자 하는 message 를 입력하여 api로 호출하면 값을 리턴 받을 수 있다.
import { HumanMessage, SystemMessage } from "@langchain/core/messages";

const messages = [
  new SystemMessage("Translate the following from English into Italian"),
  new HumanMessage("hi!"),
];

await model.invoke(messages);

 

 

Output 에 대한 형변환도 할 수가 있는데,,,

간단하다.

 

//string 으로 결과값을 도출하고자 할 경우
import { StringOutputParser } from "@langchain/core/output_parsers";

const parser = new StringOutputParser();

//아까 리턴 받은 리턴값을 변수에서 전달받은 다음에
const result = await model.invoke(messages);

//그 값을 parser 로 처리하면 끝!!
await parser.invoke(result);

 

결과를 console.log 로그로 확인해보면 어떤 값이 리턴 받아졌는지 확인해 볼 수 있다.

 

[reference: langchain 공식 문서]

728x90

'LLM > LangChain' 카테고리의 다른 글

LangChain 기초  (0) 2024.08.23