✏️

langchain モジュール概略

2024/04/17に公開

langchain モジュール概略

langchainは、大きくわけて6種類のモジュールから構成される。

  1. Model I/O
  2. Retrieval
  3. Chains
  4. Agents
  5. Memory
  6. 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

https://python.langchain.com/docs/get_started/introduction/

Discussion