Open5

LangChainの全体感を知る

SekkenSekken

全体間を知りたいスコープ は、~/path/to/repository/langchain/libs/langchain/langchain配下
*つけたやつ中心に見ようかな(RAGは一旦あと回し)

.
├── _api
├── adapters
├── *agents
├── callbacks
├── *chains
├── chat_loaders
├── *chat_models
├── cli
├── docstore
├── document_loaders
├── document_transformers
├── embeddings                       # 予想:RAGのembedding周り?
├── evaluation
├── globals
├── graphs
├── indexes
├── *llms                                    # 予想:LLMの個別実装?
├── load
├── *memory                             # 予想:会話履歴保持のためのMemory機能
├── output_parsers
├── *prompts
├── pydantic_v1
├── retrievers                          # 予想:RAGの検索周り?
├── runnables
├── *schema
├── smith
├── *storage                             
├── tools                                  
├── utilities
├── utils
└── vectorstores                    # 予想:RAGのstorage周り?
SekkenSekken

Chain

https://github.com/langchain-ai/langchain/blob/master/libs/langchain/langchain/chains/base.py#L41C30-L41C30

Abstract base class for creating structured sequences of calls to components.

stuructured sequencesのinterfaceを提供している。
Chain interfaceは以下を提供している

  • Stateful: 任意のチェーンにメモリを追加できる
  • Observable: チェーンにコールバックを渡して、コンポーネント呼び出しのメインシーケンス外で、ログなどの追加の機能を実行できる
  • Composable(コンポーザブル): チェーンAPIは柔軟性があり、他のコンポーネント、他のチェーンを含む、さまざまな要素と簡単に組み合わせることができる