Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

© 2024 Algomatic Inc. 2 最近のお仕事 https://note.com/algomatic_oa/n/n6b48170c547a?sub_rt=share_b

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

© 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を使ってパッケージ化することでプロトタイプ⽤開発環境として運⽤している

Slide 5

Slide 5 text

© 2024 Algomatic Inc. デモ