NLP_2023 Project
NLP_2023 is a learning project from a 2023 NLP course, covering LangChain fundamentals across 24 commits.
Learning Curriculum
graph TD
A[LangChain 소개] --> B[프롬프트 템플릿]
B --> C[체인 조합]
C --> D[메모리 시스템]
D --> E[에이전트]
E --> F[도구 활용]
F --> G[최종 프로젝트]
LangChain Module Exploration
Topics covered per module:
| Module | Content | Commits |
|---|---|---|
| Prompts | Prompt templates, parsing | 4 |
| Chains | Sequential, Router | 3 |
| Memory | Buffer, Summary, Window | 4 |
| Agents | ReAct, OpenAI Functions | 5 |
| Tools | Custom tools, search | 4 |
| Test | Integration tests | 4 |
Memory System Comparison
# ConversationBufferMemory - 전체 저장
memory = ConversationBufferMemory()
# ConversationSummaryMemory - 요약 저장
memory = ConversationSummaryMemory(llm=llm)
# ConversationBufferWindowMemory - 최근 N개만
memory = ConversationBufferWindowMemory(k=5)
graph LR
A[Buffer] -->|"장: 정확한 기억<br>단: 토큰 증가"| D[선택]
B[Summary] -->|"장: 토큰 절약<br>단: 세부 손실"| D
C[Window] -->|"장: 균형잡힌<br>단: 과거 손실"| D
LangChain Test
Tests were written to verify that each module behaves correctly:
def test_chain_with_memory():
chain = ConversationChain(
llm=ChatOpenAI(),
memory=ConversationBufferMemory()
)
r1 = chain.predict(input="내 이름은 하렴이야")
r2 = chain.predict(input="내 이름이 뭐였지?")
assert "하렴" in r2