cognesy/instructor-php

Unified LLM API, structured data outputs with LLMs, and agent SDK - in PHP

What it solves

Instructor for PHPは、LLMの出力(JSONや生のテキストなど)を手動で解析する手間を省き、型定義された検証済みのPHPデータオブジェクトに変換します。情報を抽出するための構造化された方法を提供し、データがアプリケーションで使用される前に特定の検証ルールを満たしていることを保証することで、LLM統合の脆弱性を軽減します。

How it works

このライブラリは、「レスポンスモデル」(型ヒント付きの純粋なPHPクラス)を使用して、目的のデータ構造を定義します。LLMの機能(ネイティブなJSON生成、JSON Schema、またはツール呼び出しなど)を活用して、モデルがそのスキーマに従うように強制します。出力が検証に失敗した場合(Symfony validationを使用)、Instructorはリクエストを自動的に再試行し、エラーの詳細をLLMに提供することで、モデルが自身のレスポンスを自己修正できるようにします。

Who it’s for

解析、検証、エラーハンドリングのための膨大なボイラープレートコードを書くことなくLLMをアプリケーションに統合したいPHP開発者、および統一APIを使用して異なるLLMプロバイダー(OpenAI, Anthropic, または Ollama)を切り替える必要がある開発者向けです。

Highlights

  • Structured Extraction: LLMのレスポンスを直接PHPクラスに変換します。
  • Automated Retries: 検証エラーをLLMにフィードバックすることで、無効なレスポンスを自己修正します。
  • Unified Inference: Polyglotコンポーネントを通じて、20以上のLLMプロバイダーに対して単一のAPIを提供します。
  • Multi-Mode Output: JSON、JSON Schema、Tool calling、およびMarkdown-JSONを含む様々な抽出方法をサポートしています。
  • Framework Agnostic: スタンドアロン、またはLaravelやSymfonyとのファーストパーティ統合として動作します。
  • Agent SDK: 状態管理とライフサイクルフックを備えた、ツールを使用するエージェントを構築するための軽量なSDKが含まれています。