2024.10.21
お互い疑心暗鬼になりがちな、経営企画と事業部の壁 組織に「分断」が生まれる要因と打開策
リンクをコピー
記事をブックマーク
大嶋勇樹氏:(スライドを示して)というところで、最後少し駆け足になっちゃうかもしれませんが、5分ほどで簡単にLangChainの過去バージョンのドキュメントを見る方法を少し紹介できればと思います。
ウェビナーのチャットに、「やっぱりそういう仕組みだったのか」と書かれていたんですけど(笑)。そうですね。ソースを読むのは大事だし、リクエストのログまで見てあげると、明らかにわかりやすいので「openai.log = "debug"」とするのはけっこうおすすめです。APIキーとかは表示されないですね。
最後に、ちょっと駆け足になっちゃいますが、過去のバージョンのドキュメントを見る方法も見ていこうと思います。
(スライドを示して)やはりアップデートが激しいOSSを使う時は、該当バージョンのドキュメントを見ることがすごく重要です。
最新バージョンのドキュメントを見ていると、ドキュメントには載っている機能が使っているバージョンにはないことがよくあって、時間を溶かすことがどうしてもあります。使い方が違うのか、機能がないのか、そういうことがよくあります。しかもLangChainのドキュメントは0.0.203で、2、3週間前に大幅にアップデートされていて、けっこう見方が変わっています。
せっかくなので、大幅アップデートがかかる前のドキュメントを見えるようにして、「今のドキュメントとまあまあ違うな」というところを見ていこうと思います。
(画面を示して)ちなみに、今のドキュメントは「langchain document」と検索すると(その結果が)出てきますが、こんな見た目で検索欄がついて、AIにドキュメントの中を検索させることもできるようになっています。
なんですが、過去バージョンはドキュメントの見方が違うので、そのあたりを見ていければと思います。
まず、過去バージョンのドキュメントを見たいとなったら、ドキュメントに過去バージョンを見られるようになっているオープンソースもあるので、そういうのを探せれば(いい)と思いますが、LangChainは残念ながらそういうのはないんですね。過去バージョンが公式で見られるようになっていません。
ではどうするかというと、ソースコードと一緒にdocsがあって、「過去バージョンのドキュメントがたぶんここにあるだろうな」ということで見たいバージョンにURLを切り替えて……。見たいバージョンはドキュメントが大幅アップデートされる前、0.0.202としましたが、これでdocs以下を見ていきます。
すると、.rstとかが目につきます。この.rstは、reStructuredTextですね。これが直接ドキュメントになっているわけではなくて……。まぁ、なっていると言えばなっているんですが、これを基にHTMLを生成する有名なファイルの形式です。
なので、このバージョンのドキュメントを見ようと思ったら、たぶん何かビルドのコマンドを打たないといけないんだなということが推測されます。
この.rstはPythonのSphinxというツールでHTMLに変換してドキュメントとして公開するとか、(それは)よくやられる形式ですね。これはMakefileという、Makeというタスクランナーに使われたりするコンパイルの自動化に使われるツールの設定ファイルがあって、これでSphinxを動かすために設定されているようです。
あとは、LangChainのトップをもう1回見てみると、ここにもMakefileがあって、docs_buildというタスクが定義されています。
docs_buildというタスクが定義されているのを見ると、「確実にこれを打てばドキュメントがビルドされて見られるようになりそうだな」と察することができます。
もちろん物によってはドキュメントのビルド方法などがしっかりドキュメントに書かれているケースもあるし、LangChainのドキュメントもコントリビューター向けのガイドみたいなところに、ドキュメントのビルド方法が載っていたりはします。
(画面を示して)コントリビューター向けのガイドを見ると、「make docs_buildコマンドでビルドできますよ」と載っています。
ですが、こんな感じでソースコードを読んでビルド方法を察するようなことが求められたり。知りたいことを知ろうとすると、そういうことが必要な場合もあったりするという紹介です。
実際、この「make docs_build」というコマンドを打つと……。すみません、これはちょっと名前を変えていますが、LangChainのリポジトリをローカルに持ってきて、バージョンを切り替えて。ここで「make docs_build」と打ってあげると、ドキュメントが実際にビルドされます。
このコマンドは実行に時間がかかるので、事前にビルド済みのものを見ていきます。そうすると、docsディレクトリ以下に_buildというディレクトリができて、その下を見るとhtmlができています。その下にindex.htmlとかがあるので、「だいたいHTMLはこういう名付けをするよな」という想像で、これをopenコマンドで開いてみます。
(そうすると)こんな感じで過去のバージョンのドキュメントを見ることができます。これは0.0.202という、インターネット上にはもう公開されていないバージョンのドキュメントです。
現在のバージョンと違って、AIによる検索とかがまだ存在していないですね。実際にコマンドを打つと5分、10分(ほど)時間がかかるので、時間の関係でそこはやりませんでしたが。
ソースコードを読んで、手元に取ってきて、特定バージョンに切り替えて、関係するパッケージをインストールして……。説明しませんでしたが、関係するパッケージをインストールしてmake docs_buildと打つと、「過去のバージョンのドキュメントが見られそうだな」みたいなことを読み取ることもできます。
ビルド、実演まではやりませんでしたが、例えば「Make」や「Poetry」や「Sphinx」みたいなツールを知っていたりすると、LangChainの過去バージョンのドキュメントをビルドする方法も読み取ることができます。
Pythonのエコシステムや一般的なツールの知識をつけたりすると、LangChainや、そういう新技術のキャッチアップにも役立つかなと思います。
ということで、特に後半ちょっと駆け足でしたが、まとめます。
今日はソースコードリーディングのテーマとしていた、OpenAIのChat APIを「ちゃんと」使うことについて、ChainやAgentが「"role": "assistant"」をちゃんと使うような挙動になっているかは、注意が必要です。
プラス、それをわかるためには、「openai.log = "debug"」でリクエストの内容を表示してみるのもおすすめです。これもOpenAIのツールのドキュメントに書かれているわけじゃないので、ゆくゆくなくなる可能性がないわけではないですが、今の時点だとできます。
プラス、ソースコードリーディングについては、特殊メソッドや継承みたいな、Pythonの実践的な本じゃないと書いていないような知識も必要だったり、あとはPythonのエコシステムやMakeなどの一般的なツールの知識も役立つということを見ることができたかなと思います。オープンソースのソースコードリーディングはとても勉強になるので、ぜひみなさんも気軽に読んでもらえればと思います。
ということで、時間がだいぶギリギリになりましたが、いったん私からの発表を以上とします。
関連タグ:
大嶋勇樹氏が解説する「OpenAIの文書生成API」の基本 モデルの種類、APIの種類と違い、今使うべきもの
「chat(messages)」と「chat.predict」は同じ挙動を示すのか? ChatOpenAIクラスの2つの呼び出し方の互換性
「GitHub検索欄を使う」「定義から見る」「grepコマンドを使う」 「ソースコードを読む」以外のChatOpenAIクラスの見つけ方
LangChainの「Chain」や「Agent」を使う時は注意が必要 「Chat APIの形式を活かした実装かどうか」の確認方法
時間を溶かさないためにもLangChainの過去バージョンは確認しよう ネット上では公開されていないドキュメントの見つけ方
2024.11.13
週3日働いて年収2,000万稼ぐ元印刷屋のおじさん 好きなことだけして楽に稼ぐ3つのパターン
2024.11.21
40代〜50代の管理職が「部下を承認する」のに苦戦するわけ 職場での「傷つき」をこじらせた世代に必要なこと
2024.11.20
成果が目立つ「攻めのタイプ」ばかり採用しがちな職場 「優秀な人材」を求める人がスルーしているもの
2024.11.20
「元エースの管理職」が若手営業を育てる時に陥りがちな罠 順調なチーム・苦戦するチームの違いから見る、育成のポイント
2024.11.11
自分の「本質的な才能」が見つかる一番簡単な質問 他者から「すごい」と思われても意外と気づかないのが才能
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.11.18
20名の会社でGoogleの採用を真似するのはもったいない 人手不足の時代における「脱能力主義」のヒント
2024.11.19
がんばっているのに伸び悩む営業・成果を出す営業の違い 『無敗営業』著者が教える、つい陥りがちな「思い込み」の罠
2024.11.13
“退職者が出た時の会社の対応”を従業員は見ている 離職防止策の前に見つめ直したい、部下との向き合い方
2024.11.15
好きなことで起業、赤字を膨らませても引くに引けない理由 倒産リスクが一気に高まる、起業でありがちな失敗
2024.11.13
週3日働いて年収2,000万稼ぐ元印刷屋のおじさん 好きなことだけして楽に稼ぐ3つのパターン
2024.11.21
40代〜50代の管理職が「部下を承認する」のに苦戦するわけ 職場での「傷つき」をこじらせた世代に必要なこと
2024.11.20
成果が目立つ「攻めのタイプ」ばかり採用しがちな職場 「優秀な人材」を求める人がスルーしているもの
2024.11.20
「元エースの管理職」が若手営業を育てる時に陥りがちな罠 順調なチーム・苦戦するチームの違いから見る、育成のポイント
2024.11.11
自分の「本質的な才能」が見つかる一番簡単な質問 他者から「すごい」と思われても意外と気づかないのが才能
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.11.18
20名の会社でGoogleの採用を真似するのはもったいない 人手不足の時代における「脱能力主義」のヒント
2024.11.19
がんばっているのに伸び悩む営業・成果を出す営業の違い 『無敗営業』著者が教える、つい陥りがちな「思い込み」の罠
2024.11.13
“退職者が出た時の会社の対応”を従業員は見ている 離職防止策の前に見つめ直したい、部下との向き合い方
2024.11.15
好きなことで起業、赤字を膨らませても引くに引けない理由 倒産リスクが一気に高まる、起業でありがちな失敗