LLMを用いたセマンティックユニットテスト:`suite`ライブラリの紹介

2025-05-05

この記事では、大規模言語モデル(LLM)を利用したセマンティックユニットテストのためのPythonライブラリ`suite`を紹介します。従来のユニットテストとは異なり、`suite`は関数の実装とdocstringを比較することで、関数の意味的な正しさを評価します。作者は`suite`の動作、プロンプトの作成、関数依存性の処理、pytestとの統合について詳細に説明しています。`suite`は従来のユニットテストに取って代わるものではないと強調しつつ、バグの早期発見やテストカバレッジの向上に役立つ貴重な補足手段として機能します。`suite`は非同期テストをサポートし、ローカルモデルを使用することでコストとプライバシーに関する懸念を軽減します。

続きを読む
開発

Jupyter NotebookとLLM:予期せぬコスト最適化

2025-01-21

著者は、LLMをコーディング支援に使用していました。最初はContinueDev + OpenRouterのセットアップを使用していましたが、コストが突然急増しました。調査の結果、Jupyter Notebook(.ipynb)ファイルには、多くの隠れたコンテンツ(コード出力、メタデータ、base64でエンコードされた画像など)が含まれており、トークンの数が大幅に増加し、LLMの呼び出しコストが高くなっていることが分かりました。解決策は、.ipynbファイルを.pyファイルに変換し、base64でエンコードされた画像を削除することでした。これにより、コストを94%削減し、レイテンシも削減できました。この記事では、LLMを使用する際の注意深い入力の重要性を強調し、コストの定期的な確認を推奨しています。

続きを読む
開発