最近はAIエンジニアを名乗ってるerukitiです。フロントエンドもバックエンドも、LLMを触るあれこれもやってるので、「AIエンジニア」くらいを名乗るとちょうどよさそうだなと思ってます。いずれLLM自体の開発なんかもやってるかもしれません。
LLMプロダクトを開発していると、構造化データを作りたいのに、Anthropic ClaudeのAPIにはJSONモードが無いことや、なんならJSONモードやfunction callingを使っても、データが正しい形式に従ってることは保証しがたい、みたいな自体に遭遇することがあります。
JSONが出力できたとしても、構造化データをうまく吐き出させるのは難しいものです。文字列を出力させたいけど、複数あるときは、配列なのか、それともカンマ区切りなのか?項目がオプショナルの場合はどうするか?項目が存在しない、空文字や 0
や undefined
や null
が出力されてしまうみたいなこともあるでしょう。
どう指示をすれば安定して出力をさせられるのか、苦労している人も多いでしょう。
この記事では、TypeScript + Zod Schemaを使ってプロンプトを生成することで、如何に簡単に狙った通りの構造化データを出力させられるか?それにより圧倒的にプロンプトエンジニアリングが効率化したか?を書きます。
対象読者
この記事は開発者向けの記事です。TypeScriptを前提にしていますが、他の言語でも考え方は応用可能だと思います。
続きを読む