# LangChain?
LLM을 사용하여 앱을 쉽게 만들 수 있게 만들어진 프레임워크이다.
LLM 모델 변환이 자유로우며 모델 구현을 `Chain`으로 단순화 한 것이 특징이다.
여러 앱의 LLM 기술을 접목시킬려는 시도가 증가함에 따라 LangChain의 중요도 또한 증가하고 있다.
![[LangChain Icon.png]]
- 해당 Part는 Langchian에 대한 개념 및 사용법에 대해 정리해놓은 것이다.
- 🌐[노마드코더](https://nomadcoders.co)의 강의를 보며 공부하였으며 🌐[GitHub Site](https://github.com/Donghyeon-Shin/langchain-practice)에서 Detail을 볼 수 있다.
- LangChain를 공부해 최종적으로 나만의 앱을 만들어보는 것이 최종 목표이다.
# Before learning LangChain
## Setting
- Python version은 강의와 같은 환경에서 하기 위해 `3.11.6`을 이용하였다.
- Langchain을 공부하기 위해서는 여러 libraries을 사용하게 되는데, 내가 평소 사용하는 환경 안에서 해당 libraries을 설치하면 충돌 및 오류가 발생 할 수 있다.
- 따라서 `python -m venv <env>`로 env 가상환경을 만들어 그 안에서 필요한 libraries을 설치하였다.
- `<env>\Scripts\activate.bat:(Window 환경)`으로 가상환경 안으로 들어갈 수 있다.
- 여러 libraries을 한 번에 설치하는 방법은 필요한 libraies 목록을 `.txt` 형식으로 따로 만들어 `pip install -r <requirements>.txt` 명령어를 사용하면 된다.
- 가상환경은 `deactivate` 명령어를 사용하여 빠져나올 수 있다.
## Jupter NoteBook
- 코드를 **블럭(cell) 단위**로 실행할 수 있게끔 하여 Interpreter의 장점을 극대화 할 수 있게 하는 웹기반 플랫폼이다.
- `.ipynb` 확장자로 열 수 있다.
- Shortcut Key (Window Ver)
- ESC : Cell 편집 모드 -> Cell 선택 모드
- ENTER : Cell 선택 모드 -> Cell 편집 모드
- CTRL + ENTER : 해당 Cell 실행
- SHIFT + ENTER : 해당 Cell 실행 후 Cell 생성
- A / B : (Cell 선택 모드에서) 위(A) 또는 아래(B)로 Cell 생성
- DD or DELETE : (Cell 선택 모드에서) 선택된 Cell 삭제
- Cell 내부의 마지막 값은 Cell 실행 시 별도의 `Print()` 출력 없이 결과 값이 나온다.
- 위 Cell들의 값이 보존되기 때문에 구현 및 수정을 편하게 할 수 있다.
# Study Langchain
## LangChain Basic
##### 🔗[[Using OpenAI models And LangChain]]
## Model IO
##### 🔗[[Prompt]]
##### 🔗[[Output Parser]]
##### 🔗[[LCEL(LangChain Expression Language)]]
## Memory
##### 🔗[[Caching]]
##### 🔗[[Memory Modules]]
##### 🔗[[Link Memory to Model]]
## RAG(Retrieval-Augmented Generation)
##### 🔗[[RAG(Retrieval-Augmented Generation)]]
##### 🔗[[Retrieval]]
##### 🔗[[Stuff LCEL Chain]]
##### 🔗[[Refine LCEL Chain]]
##### 🔗[[Map Reduce LCEL Chain]]
##### 🔗[[Map Re-rank LCEL Chain]]
## Document GPT
##### 🔗[[Streamlit]]
##### 🔗[[Document GPT]]
## Private GPT
##### 🔗[[Offline Model]]
##### 🔗[[Private GPT]]
## Quiz GPT
##### 🔗[[WikipediaRetriever]]
##### 🔗[[Function Call Method]]
##### 🔗[[Quiz GPT]]
## Site GPT
##### 🔗[[Site Loader]]
##### 🔗[[Site GPT]]
## Meeting GPT
##### 🔗[[Video Preprocessing]]
##### 🔗[[Meeting GPT]]
## Investor GPT
##### 🔗[[Agent]]
##### 🔗[[Investor GPT]]
## + Assistants API
##### 🔗[[Assistant]]
##### 🔗[[Investor and RAG GPT Using OpenAI Assistant]]
## + Crew AI
##### 🔗[[Crew]]
##### 🔗[[Investment Recommendation CrewAI]]