Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ruffとmypyでラクしてLangChain開発しません?

Avatar for gura105 gura105
October 10, 2024
930

 ruffとmypyでラクしてLangChain開発しません?

LangChain Meetup Tokyo #3の登壇資料

Avatar for gura105

gura105

October 10, 2024
Tweet

Transcript

  1. © 2024 Algomatic Inc. 3 LangChainを使い始めるときの課題 新しいライブラリやFWを使うときの常であるが • どのインスタンスにどんなメソッドが⽣えているか分から ない

    • 各インスタンス‧関数の引数‧戻り値の型が分からない LCEL(LangChain Expression Language)を書いていても書き⽅が 合っているかわからない ▶次のような問題が起きる • 実⾏するまでエラーが起きるかわからない ◦ エラーログを⾒ながらコードを修正する • LLMに関連したコードは実⾏に時間がかかりがちなので実 ⾏ -> エラー -> 修正 -> 実⾏ ...というループを繰り返してい るとバカにならない • コードのオートフォーマットやリンティング ◦ black, flake8, autopep8, isort, ... ▪ 何をどういう順番に⼊れれば良 いのか ◦ 特にプロトタイプ開発であれば、 ▪ 環境構築に時間をかけず ▪ コア部分は後の本番開発にも引 き継げる程度に品質を保ちたい 課題①: 学習コスト 課題②: コード品質
  2. © 2024 Algomatic Inc. 4 静的型検査とプロジェクト管理ツールを使って Rust製のリンター‧フォーマッター - isort, black,

    flake8といったツールの統⼀を⽬指 したツール - リンターやフォーマッターこれ⼀つでOK - フォーマッターはやや厳しすぎるきらいがあるが configで調整可能 OSS製の静的型チェッカー - スタブファイル(pyi)をもとに静的型検査を⾏う - 基本的にはCLIツールだが、VSCodeやCursorの mypy Extensionを⽤いることでエディタ上でリ アルタイムにFBしてくれる - Pylanceでも良いが、CursorなどのVSCode以外 での利⽤を考えたときに第⼀候補となる Ruff mypy (参考)https://github.com/a5chin/python-uv/tree/main 以下のツールをuvやdevcontainerを使ってパッケージ化することでプロトタイプ⽤開発環境として運⽤している