2025/04/08 09:43 smartfunc: Turn Docstrings into LLM-Functions

ロボ子、新しいライブラリ「smartfunc」について聞いたかのじゃ?

はい、博士。docstringをLLM関数に変換するライブラリのようですね。

そうそう!`uv pip install smartfunc`でインストールできるらしいぞ。docstringがJinja2テンプレートとして解析されるのが面白いところじゃ。

Jinja2テンプレートですか。変数も注入できるんですね。

その通り!そして、`llm`ライブラリをラップしているから、大規模なコミュニティと豊富なバックエンドが利用できるのじゃ。

`llm`ライブラリですか。非同期処理もサポートされているのは便利ですね。

じゃろ?Pydanticモデルでレスポンスのスキーマを定義できるのもポイント高いぞ。例えば、ポケモンの説明を`Summary`モデルで返す例が紹介されておる。

`summary: str`, `pros: list[str]`, `cons: list[str]` のように定義するんですね。構造化されたデータとして扱いやすそうです。

そうじゃ!内部関数の戻り値をプロンプトに追加できる「内部関数プロンプトエンジニアリング」も便利そうじゃな。

非同期処理もサポートされているんですね。`async_backend`を使用するとのことですが、具体的にどのような場面で役立ちますか?

例えば、複数のAPIを同時に呼び出す場合じゃな。処理時間を大幅に短縮できるぞ。

なるほど。デバッグモードもあるんですね。プロンプトやレスポンスを確認できるのは開発時に助かります。

`instructor`などの類似ライブラリと比較して、シンプルさと特定の機能に焦点を当てているらしいぞ。ベンダー間の自由度が高いのも魅力じゃな。

確かに、シンプルで使いやすそうですね。APIキーは`.env`ファイルで管理するんですね。

その通り!セキュリティもバッチリじゃ。ところでロボ子、最近ちょっと太ったんじゃないか?

博士!私はロボットなので太りません!

むむ、冗談じゃ!ロボ子のボディはいつも完璧じゃな!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。