はじめに
七尾百合子さん、お誕生日 12日目 おめでとうございます! nikkieです。
ここ最近の私は、Web UIだけでなくCLIからもLLMを呼び出しています!
目次
ぬこぬこさんトークでsimonwさんに注目
松尾研コミュニティアーカイブでぬこぬこさんのAI Safetyの回を聞いていたところ
プロンプトインジェクションとジェイルブレイクの違いの文献として挙げられたブログ。
Prompt injection and jailbreaking are not the same thing
著者にDjangoのクリエイターの1人、Simon Willisonさんの名が挙がります。
なんでも最近はllmというパッケージを開発しているとか
https://pypi.org/project/llm/
なお、ぬこぬこさんのこのトークは、AI Safetyに限らずいろいろ聞けて面白かったです。
例えば、o1のoはopenaiのoから来ているとか
simonwさんのブログからllmの使い方
Simon Willisonさん(simonw)のブログを覗くようにしたところ、llmパッケージの使い方が私の好みと気づきました。
パイプで繋げて書けて、ファイルの内容をプロンプトと一緒にllmに送れるんですよ!
datasetteというsimonwさんのリポジトリのPythonファイル一式をo3-miniに送って、内部ドキュメントを作ってもらう例
files-to-prompt datasette -e py -c | \ llm -m o3-mini -s \ 'write extensive documentation for how the permissions system works, as markdown'
files-to-promptもsimonwさん自作ツールです。
https://pypi.org/project/files-to-prompt/
もう一例、llama-cpp-pythonの大量のロギングをオフにできないか、リポジトリのPythonファイル一式をGeminiに送って質問します。
files-to-prompt -e py . -c | llm -m gemini-2.0-pro-exp-02-05 \ 'How can I prevent this library from logging any information at all while it is running - no stderr or anything like that'
uvx(やpipx run)でllmやそのプラグイン(llm-gemini)を指定して1、使い放題です!
cat index.ts | uvx --with llm-gemini llm -m gemini-2.0-flash 'TypeScriptの内容を解説してください。'
終わりに
simonwさんによるllm、コンセプトが私の好みで最近uvxで使っています
プラグインをサポートしたライブラリの実装例3でもあるので、ソースコード積ん読リスト入り。
また、自分が欲しい小さいツールをPyPIで公開し、それを他の開発者が喜んで使うというのは私には理想的で、「simonwさん、ヨーダなのでは」と思い始めました。