AI * ML

LangChain 기본 - 체인(Chains)

armyost 2024. 7. 3. 21:52
728x90

하나 이상LLM 구성요소 간의 논리적 연결인 Chain은 LangChain의 기능의 주축입니다. Chains은 필요성 및 관련된 LLM의 특징에 따라 단순한 것부터 복잡한 것까지 다양할 수 있습니다. 체인(Chains) 생성 단계는 이전의 LLM과정을 모두 하나로 묶어 하나의 RAG 파이프라인으로 조립하여 완성하는 단계 입니다.

 

다음과 같은 Chains의 종류가 있습니다.

- Structured Output Chain
PromptTemplate, LLM, OutputParser를 연결한 LLMChain과 

- ConversationChain
ChatOpenAI 클래스를 사용하여 대화형 AI 모델의 인스턴스를 생성하고, 이를 통해 사용자와의 대화를 처리할 수 있습니다.

 

- SimpleSequentialChain
LLMChain들을 간단하게 연결할 수 있는 

- SequentialChain

작은 Chain들을 좀 더 복잡한 형태로 연결할 수 있는 Chain

 


Chains의 형태는 다양한 조합을 보이며 가장 쉬운 예는 아래와 같다. 
*LCEL(LangChain Expression Language) 문법을 사용하여 이전 단계의 전 과정을 하나의 체인(Chain) 으로 묶습니다.

# 체인(Chain) 생성
chain = (
    {"context": retriever, "question": RunnablePassthrough()}
    | prompt
    | llm
    | StrOutputParser()
)

# 체인 실행(Run Chain)
# 문서에 대한 질의를 입력하고, 답변을 출력합니다.
question = "삼성전자가 자체 개발한 AI 의 이름은?"
response = chain.invoke(question)