✏️
langchain モジュール概略
langchain モジュール概略
langchainは、大きくわけて6種類のモジュールから構成される。
- Model I/O
- Retrieval
- Chains
- Agents
- Memory
- Callbacks
Model I/O
modelとの入出力に関わるモジュール
- LLM
LLMとのやり取りそのものを担うオブジェクト
e.g. langchain_openai.ChatOpenAI など - Prompt
LLMに渡すプロンプトを生成するオブジェクト
e.g. langchain_core.prompts.ChatPromptTemplate など - Parser
LLMからの出力をフォーマットするオブジェクト
langchain_core.output_parsers.StrOutputParser など
Retrieval
外部からの情報を処理するモジュール
- retriever
ベクトル化済みのデータを使って関連性を判断するオブジェクト
e.g. langchain_core.vectorstores.VectorStoreRetriever - loader
ドキュメントをロードするオブジェクト
e.g. langchain_community.document_loaders.WebBaseLoader など - textsplitter
テキストを分割するオブジェクト
e.g. langchain_text_splitters.RecursiveCharacterTextSplitter など - Embedding
データをベクトル化するオブジェクト
e.g. langchain_openai.langchain_openai など
Chains
複数のモジュールを組み合わせるモジュール
- パイプ演算子
model I/O を組み合わせるオブジェクト。簡易的なパイプラインを構築する。 - chainメソッド
model I/OやAgentを組み合わせるオブジェクト。複雑なパイプラインを構築する。
e.g. langchain.chains.combine_documents.create_stuff_documents_chain など
Agents
外部インターフェースの操作を行うモジュール
エージェントが使える手段はtoolsにまとめられている。
Memory
過去の情報を保持するモジュール
chat_historyにstrを渡せばmemoryを使わなくとも過去の情報を扱うことができるが、memoryを使うとより構造的に情報を扱うことができる。
Callbacks
handlerを使って、特定のタイミングで処理を行うことができる。
chainやllmに定義する形で利用する。
reference
Discussion