LangChain

ν•œμ‹œκ°„μœΌλ‘œ λλ‚΄λŠ” LangChain κΈ°λ³ΈκΈ°arrow-up-right

LLM을 ν™œμš©ν•΄μ„œ λ‹΅λ³€ μƒμ„±ν•˜κΈ°

둜컬 λͺ¨λΈλ‘œ ollamaarrow-up-right ν™œμš©ν•˜κΈ°

1️⃣ κ°€μƒν™˜κ²½ λ§Œλ“€κΈ°

$ brew install pyenv

$ pyenv install 3.11

$ pyenv virtualenv 3.11 langchain-basics

$ mkdir langchain-basics

$ cd langchain-basics

$ pyenv local langchain-basics

# ν•΄λ‹Ή κ²½λ‘œμ—μ„œ jupyter notebook μ‹€ν–‰

$ ollama pull llama3.2:1b

2️⃣ κ°€μƒν™˜κ²½ μ•ˆμ—μ„œ ollam μ‹€ν–‰μ‹œν‚€κΈ°

source codearrow-up-right

랭체인 μŠ€νƒ€μΌλ‘œ ν”„λ‘¬ν”„νŠΈ μž‘μ„±ν•˜κΈ°

ChatOllamaarrow-up-right의 invoke λ©”μ„œλ“œ νŒŒλΌλ―Έν„°λ‘œλŠ” PromptValue, str, or list of BaseMessages νƒ€μž…μ΄ λ“€μ–΄κ°€μ•Ό ν•©λ‹ˆλ‹€.

ValueError: Invalid input type <class 'int'>. Must be a PromptValue, str, or list of BaseMessages.

PromptValue

PromptTemplatearrow-up-right의 invoke λ©”μ„œλ“œλ₯Ό 톡해 PromptValuearrow-up-right 생성

BaseMessages

BaseMessageλ₯Ό μƒμ†λ°›λŠ” λŒ€ν‘œμ μΈ 클래슀

  • SystemMessage

    • LLM Application의 λͺ©μ (ν•  일)

  • HumanMessage

    • μ‚¬μš©μž λ©”μ‹œμ§€

  • AIMessage

    • LLM

  • ToolMessage

    • μ—μ΄μ „νŠΈ 생성 μ‹œ μ‚¬μš©

Language Models are Few-Shot Learnersarrow-up-right

⚠️ ν•˜μ§€λ§Œ, 이 방식은 LangChainμŠ€λŸ½μ§€ μ•Šμ€ 방식

ChatPromptTemplate

LangChain은 ChatPromptTemplate μ‚¬μš©μ„ ꢌμž₯ν•©λ‹ˆλ‹€.

  • LCELμ΄λΌλŠ” LangChain ꡬ성 μš”μ†Œλ₯Ό μ—°κ²°μ‹œν‚€λŠ” κΈ°λŠ₯μ—μ„œ 연동이 κ°€λŠ₯ν•˜λ―€λ‘œ ν™•μž₯μ„±μ—μ„œ μœ λ¦¬ν•©λ‹ˆλ‹€.

source codearrow-up-right

λ‹΅λ³€ ν˜•μ‹ μ»¨νŠΈλ‘€ν•˜κΈ°

llm.invoke()의 κ²°κ³ΌλŠ” 기본적으둜 AIMessage νƒ€μž…μœΌλ‘œ μ‘λ‹΅ν•˜λ―€λ‘œ, String νƒ€μž…μœΌλ‘œ λ°˜ν™˜μ„ ν•΄μ£Όμ–΄μ•Ό λ‹€λ₯Έ μ–Έμ–΄μ—μ„œλ„ μ‰½κ²Œ νŒŒμ‹±μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€.

StrOutputParser

응닡 κ²°κ³Ό 확인.

JsonOutputParser

JsonOutputParserλŠ” ν˜•μ‹μ΄ μ˜€λ½κ°€λ½ν•˜κΈ° λ•Œλ¬Έμ— μ‚¬μš©μ„ ꢌμž₯ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λŒ€μ‹  pydantic λͺ¨λΈμ„ μ„€μ •ν•˜μ—¬ μ‚¬μš©ν•  것을 ꢌμž₯ν•©λ‹ˆλ‹€.

Reference

Last updated