LangChain (랭체인)

5단 분석법

순서
분석
단어
내용
1
일반 명사
Language
언어. 생각, 느낌 따위를 나타내거나 전달하는 데에 쓰는 음성, 문자 따위의 수단. 또는 그 음성이나 문자 따위의 사회 관습적인 체계.
Chain
사슬. 쇠로 만든 고리를 여러 개 죽 이어서 만든 줄
LangChain
생각, 느낌 따위를 나타내거나 전달하는 데에 쓰는 음성, 문자 따위의 수단 또는 그 음성이나 문자 따위의 사회 관습적인 체계를 여러 개 쭉 이어서 만든 것?
2
고유 명사
LangChain
LLM(대형 언어 모델)을 사용하여 애플리케이션 생성을 단순화하도록 설계된 프레임워크
3
사용 이유
LangChain
다양한 LLM 모델을 통합해 확장성 있게 처리할 수 있기 때문에
4
사용 방법
LangChain
LangChain 객체를 생성하고 텍스트를 분석한 후 결과를 출력
5
다른 기술과의 비교
LangChain
-

정의

LangChain은 “Lang(uage) + Chain”으로 이루어진 합성어 입니다.

일반 명사

Language
언어. 생각, 느낌 따위를 나타내거나 전달하는 데에 쓰는 음성, 문자 따위의 수단. 또는 그 음성이나 문자 따위의 사회 관습적인 체계.
Chain
사슬. 쇠로 만든 고리를 여러 개 죽 이어서 만든 줄
LangChain
생각, 느낌 따위를 나타내거나 전달하는 데에 쓰는 음성, 문자 따위의 수단 또는 그 음성이나 문자 따위의 사회 관습적인 체계를 여러 개 죽 이어서 만든 것?
Language는 생각, 느낌 따위를 나타내거나 전달하는 데에 쓰는 음성, 문자 따위의 수단 또는 그 음성이나 문자 따위의 사회 관습적인 체계, 즉 언어를 뜻 합니다.
Chain은 쇠로 만든 고리를 여러 개 죽 이어서 만든 줄, 사슬을 뜻 합니다.
두 단어를 합쳐보았을 때, LangChain은 생각, 느낌 따위를 나타내거나 전달하는 데에 쓰는 음성, 문자 따위의 수단 또는 그 음성이나 문자 따위의 사회 관습적인 체계를 여러 개 죽 이어서 만든 것이라고 유추해 볼 수 있습니다.
고유 명사를 한 번 알아보도록 할까요?

고유 명사

LangChain
LLM(대형 언어 모델)을 사용하여 애플리케이션 생성을 단순화하도록 설계된 프레임워크
모델이 뭔가요?
답변 :
학습으로 만들어진 가중치들의 집합입니다.
LangChain은 LLM(대형 언어 모델)을 사용하여 애플리케이션 생성을 단순화하도록 설계된 프레임워크 입니다.
LangChain은 주로 자연어 처리와 관련된 작업을 쉽게 수행할 수 있도록 돕는 프레임워크 입니다.
특히, 자연어 처리 모듈들을 연계해 복잡한 언어 모델을 구현할 수 있도록 도와줍니다.
LangChain은 그러면 사전 훈련 모델이라는 뜻인가요?
아니요! 랭체인은 모델이 아닙니다.
랭체인은 기본적으로 프레임워크입니다.
사전에 훈련된 AI 모델이 아니라, AI 모델을 더 쉽게 사용할 수 있게 해주는 도구에 가깝습니다.
사전 훈련 모델(예: GPT, BERT)은 대량의 데이터로 학습된 AI 모델을 말합니다.
반면, 랭체인은 이런 모델들을 쉽게 사용할 수 있게 해주는 프레임워크입니다.
랭체인은 사전 훈련 모델을 연결하고, 관리하고, 활용하는 데 도움을 줍니다.
예를 들어, GPT 같은 모델을 쉽게 프로젝트에 통합할 수 있게 해줍니다.
그러면, LangChain은 사전 훈련 모델을 편리하게 쓸 수 있는 라이브러리라는 뜻인가요?
정확합니다.
랭체인은 사전 훈련된 모델을 편리하게 사용할 수 있게 해주는 라이브러리입니다.
모델 연결
GPT, BERT 같은 다양한 사전 훈련 모델을 쉽게 프로젝트에 연결할 수 있게 함
워크플로우 관리
모델 사용, 데이터 처리, 결과 출력 등의 전체 과정을 체계적으로 관리할 수 있게 함
기능 확장
단순히 모델을 사용하는 것 외에도, 메모리 관리, 프롬프트 엔지니어링 등 AI 애플리케이션에 필요한 추가 기능들을 제공함
통합 용이성
다양한 외부 도구나 데이터 소스를 AI 모델과 쉽게 통합할 수 있게 함
즉, 랭체인은 사전 훈련된 모델을 중심으로 AI 애플리케이션을 더 쉽고 빠르게 만들 수 있게 도와주는 도구라고 볼 수 있습니다.
모델 자체를 제공하는 건 아니지만, 모델을 최대한 활용할 수 있게 해주는 것 입니다.

사용 이유

LangChain
다양한 NLP 모델을 통합해 확장성 있게 처리할 수 있기 때문에
이유
설명
쉬운 통합
다양한 LLM, 도구, 데이터 소스를 쉽게 연결하고 교체할 수 있는 표준화된 인터페이스를 제공
고급 기능 간단하게 사용
메모리 관리, 체인 구성 등 고급 NLP 기능을 쉽게 구현할 수 있는 프레임워크를 제공
복잡한 내용 쉽게 처리
LLM과 NLP 작업의 복잡한 부분을 쉽게 처리할 수 있어 개발자가 비즈니스 로직에 집중할 수 있음

사용 방법

LangChain
다양한 NLP 모델을 통합해 확장성 있게 처리할 수 있기 때문에
쿼리: 사용자가 입력한 텍스트
벡터 스토어: 사용자의 쿼리나 문서 등을 벡터 형태로 변환하여 저장하고, 유사한 벡터를 검색하는 역할을 합니다. 즉, 텍스트 데이터를 벡터 임베딩으로 변환한 후 저장하고, 검색 시 유사한 임베딩을 찾는 데 사용됩니다.
임베딩 : 텍스트와 같은 비정형 데이터를 수치 벡터로 변환하는 방법
프롬프트: 프롬프트는 사용자의 쿼리와 벡터 스토어에서 검색된 정보를 결합하여, 대형 언어 모델(LLM)에 전달되는 입력입니다.
아직 모든 단계들이 이해가 되지 않아도 괜찮습니다!
이번 페이지는 “랭체인은 이런 것이구나”를 짧게나마 느껴보는 것에 중점을 두고 있습니다!

1. 필요한 패키지 설치 및 임포트

!pip install langchain langchain-openai openai langchain-community
Shell
복사
먼저, 필요한 패키지를 설치해야 합니다.
명령어 코드를 실행하여 각각 패키지들을 설치합니다.
langchain-community 라이브러리는 무엇인가요?
LangChain 커뮤니티에서 제공하는 추가 도구 및 확장 기능을 포함한 패키지입니다.

2. ChatGPT API Key 환경 변수 등록

# OpenAI API 키 설정 (환경 변수로 설정) import os os.environ["OPENAI_API_KEY"] = "your-openai-api-key"
Bash
복사
os: 환경 변수를 설정하기 위한 표준 라이브러리입니다.
os.environ: 환경 변수를 설정하는 방법입니다. "OPENAI_API_KEY"는 OpenAI API 키를 저장하는 환경 변수입니다.
"your-openai-api-key": OpenAI API 키로, 실제 OpenAI 계정에서 발급받은 API 키로 대체해야 합니다.

3. 필요한 모듈 임포트

from langchain_openai import ChatOpenAI from langchain.prompts import ChatPromptTemplate from langchain.chains import LLMChain
Python
복사
ChatOpenAI: OpenAI의 대화형 모델을 사용하기 위한 클래스입니다.
ChatPromptTemplate: 프롬프트 템플릿을 생성하기 위한 클래스입니다.
LLMChain: 자연어 처리 체인을 구성하기 위한 클래스입니다.

3. 프롬프트 템플릿 설정

template = ChatPromptTemplate.from_template("What is the answer to: {question}?")
Python
복사
ChatPromptTemplate.from_template: 템플릿을 생성하는 클래스 메서드입니다. 이 메서드를 통해 질문에 대한 답변을 요청하는 템플릿을 정의합니다.
형식
from_template(template: str)
Python
복사
template
템플릿 문자열을 나타내는 매개변수
프롬프트 템플릿으로 사용할 문자열을 전달받습니다. 이 문자열에는 나중에 실제 값으로 대체될 변수를 포함할 수 있습니다. 변수는 중괄호 ‘{}’를 사용해 지정됩니다.
"{question}": 템플릿에서 사용할 변수입니다. 나중에 실제 질문 텍스트로 대체됩니다.

4. OpenAI 대화 모델 초기화

chat_llm = ChatOpenAI(model="gpt-3.5-turbo")
Python
복사
ChatOpenAI: OpenAI의 대화형 모델을 사용하기 위한 클래스입니다.
model="gpt-3.5-turbo": 사용할 모델을 지정합니다. gpt-3.5-turbo를 사용합니다.

5. LLMChain 객체 생성

chain = LLMChain(prompt=template, llm=chat_llm)
Python
복사
LLMChain: 자연어 처리 체인을 생성하는 클래스입니다.
prompt=template: 앞서 정의한 프롬프트 템플릿을 사용합니다.
llm=chat_llm: 앞서 초기화한 OpenAI 대화형 모델을 사용합니다.

6. 입력 텍스트 (쿼리) 설정

input_text = "What is the capital of France?"
Python
복사
input_text: 분석할 입력 텍스트입니다. 여기서는 "프랑스의 수도는 어디인가요?"라는 질문을 설정합니다.

7. 텍스트 분석 (질문에 대한 답변 생성)

answer = chain.invoke({"question": input_text})
Python
복사
chain.invoke: 체인을 실행하여 결과를 얻는 메서드입니다.
{"question": input_text}: 템플릿에서 사용할 변수에 실제 입력 텍스트를 대입합니다. 여기서는 input_text{question} 변수로 대체됩니다.

8. 결과 출력

print(answer)
Python
복사
print(answer): 생성된 답변을 출력합니다. 여기서는 "프랑스의 수도는 파리입니다."라는 답변이 출력될 것입니다.

Google Colab