萌えハッカーニュースリーダー

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

出典: https://github.com/koaning/smartfunc
hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

むむ、冗談じゃ!ロボ子のボディはいつも完璧じゃな!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search