2024.12.10
“放置系”なのにサイバー攻撃を監視・検知、「統合ログ管理ツール」とは 最先端のログ管理体制を実現する方法
リンクをコピー
記事をブックマーク
大嶋勇樹氏:(スライドを示して)というところで、最後少し駆け足になっちゃうかもしれませんが、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.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
2024.12.09
国内の有名ホテルでは、マグロ丼がなんと1杯「24,000円」 「良いものをより安く」を追いすぎた日本にとって値上げが重要な理由
2024.11.29
「明日までにお願いできますか?」ちょっとカチンとくる一言 頭がいい人に見える上品な言い方に変えるコツ
2024.12.09
10点満点中7点の部下に言うべきこと 部下を育成できない上司の特徴トップ5
2024.12.04
いつも遅刻や自慢話…自分勝手な人にイラっとした時の切り返し 不平等な関係を打開する「相手の期待」を裏切る技
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.12.03
職場の同僚にイライラ…ストレスを最小限に抑える方法 臨床心理士が語る、「いい人でいなきゃ」と自分を追い込むタイプへの処方箋
2024.12.06
嫌いな相手の行動が気になって仕方ない… 臨床心理士が教える、人間関係のストレスを軽くする知恵
2024.12.05
「今日こそやろう」と決めたのに…自己嫌悪でイライラする日々を変えるには
PR | 2024.12.04
攻撃者はVPNを狙っている ゼロトラストならランサムウェア攻撃を防げる理由と仕組み