Open3

LangChain周りの雑まとめ

かずかず

ひとまずChatGPT + LangChainでなんかやろうとするなら以下の記事見ると良さげ

今後は以下のリポジトリに実装を追加していく
https://github.com/kazdevl/langchain-examples

かずかず

https://zenn.dev/umi_mori/books/prompt-engineer/viewer/langchain_overview
https://zenn.dev/umi_mori/articles/langchain-langsmith
https://python.langchain.com/docs/modules/

  • LangChainは言語モデルを利用した機能開発を便利に行うためのライブラリ
  • LangChainのおおまかなモジュールは6つある
    1. Model I/O: 色々な言語モデルへのインタフェースを提供しており、柔軟に切り替え可能
    2. Retrieval: 言語モデルで不足してるデータを補うために、外部データを読み込めるようにするためのモジュール
    3. Agents: 言語モデルや渡したツールセットを利用して渡した目標を達成するためにアクションを実行するモジュール?:
    4. Chains: LLM・ツール・データ前処理などの処理を連続して呼ぶためのモジュール?
    5. Memory: 過去のやり取りに関する情報を保存・利用しやすくするための機能を提供するモジュール
      ※まだBeta版である
    6. Callback: 言語モデルを利用したアプリケーションの様々な段階でフックするための機能を提供するモジュール。ログ記録・監視・ストリーミングとかで活用できそう

他にも、周辺のエコシステムで以下のようなものがある
image

  • LangChain Template: LangChainを利用したサンプルやアーキテクチャの一覧
    • これ使ってLangChainの勉強したり、アプリ実装時の参考になりそう
  • LangServe: 作ったやつをREST APIとしてデプロイしてくれるのをサポートしてくれるやつっぽい
    • LangChainを利用した開発をするなら、いろいろ便利そう
  • LangSmith: LangChainを本番環境で運用する際の便利ツールっぽい?デバッグ・実行ログの収集・モデル評価など
かずかず

Model I/O

https://python.langchain.com/docs/modules/model_io/quick_start
要素として、以下の3つがある

  1. 扱える言語モデルの種類が2つある: LLM・ChatModel
  2. LLM: 文字列をの入力・出力を取り扱う
  3. ChatModel: メッセージ形式の入力・出力を取り扱う。(メッセージ者の役割も定義可能)
  4. Prompt Templates: 言語モデルに渡すプロンプトのテンプレートを扱う機能
  5. OutputParsers: 出力を色々な出力形式に変換できる