Go言語でLLMの出力を構造化データとして扱う際、手動でのJSONスキーマ定義やエラーハンドリングが煩雑になりがちだという課題に対し、オープンソースライブラリ「instructor-go」(github.com/jxnl/instructor-go)を紹介する記事です。Go 1.24以上に対応し、OpenAI、Anthropic、Google Gemini、Cohere、Ollamaといった複数のプロバイダーで使えます。

ModeToolCall、ModeJSON、ModeJSONSchema、ModeToolCallStrictといった主要モードを備え、go-playground/validatorによるバリデーションを行います。記事内の実測ではGPT-4o-miniでinstructor-go経由の実行に平均2.2秒・312トークン(入力277、出力35)を要し、生API呼び出しの約1.1秒・152トークンより遅いものの、自動リトライ機能がある点を利点として挙げています。

出典が伝えている要点

  • 紹介されているライブラリは github.com/jxnl/instructor-go である
  • instructor-goはGo 1.24以上に対応している
  • instructor-goはOpenAI、Anthropic、Google Gemini、Cohere、Ollamaのプロバイダーに対応している
  • instructor-goの主要モードとしてModeToolCall、ModeJSON、ModeJSONSchema、ModeToolCallStrictがある
  • instructor-goはgo-playground/validatorを使ってバリデーションを行う
  • 記事内の実測では、GPT-4o-miniでinstructor-go経由の実行に平均2.2秒かかり、312トークン(入力277、出力35)を使用したとされている
  • 同記事内の比較では、生API呼び出しは約1.1秒、152トークンで処理が完了したとされている
  • 記事は生API呼び出しの方が高速だが、instructor-goには自動リトライ機能がある点を利点として挙げている

原文より

Get reliable structured data from any LLM. Built on jsonschema for validation, type safety, and compile-time guarantees.

出典: zenn.dev

← 2026.09.01 の号を通しで読む