OpenAPIからAI Function Callingへの変換

OpenAPI/Swagger仕様を任意のプロバイダー向けAI Function Calling定義に変換します

~/openapi-to-functions

OpenAPI/Swagger仕様を貼り付けると、AI Function Calling定義を生成します。

OpenAPI 3.0以降のJSONに対応しています。各エンドポイントが関数定義に変換されます。

OpenAPIからAI Function Callingへのコンバーターとは?

OpenAPIからAI Function Callingへのコンバーターは、既存のREST API仕様を、LLMがFunction Callingに必要とする構造化されたツール定義に変換するツールです。APIエンドポイントを記述するOpenAPI(Swagger)仕様がある場合、このツールが関連情報 — オペレーション名、説明、パラメーター、リクエストボディスキーマ — を抽出し、OpenAI、Anthropic、Googleなどが要求するJSON構造にフォーマットし直します。

Function Calling(ツール使用とも呼ばれます)は、現代のAIモデルの最も強力な機能の一つです。モデルが構造化された引数で外部関数を呼び出すことを可能にし、AIエージェントがAPI、データベース、外部サービスと対話できるようにします。しかし、ツール定義を手書きするのは面倒でエラーが発生しやすく — 特にOpenAPI形式で同じ情報を記述した完全なAPI仕様がすでにある場合はなおさらです。

この無料コンバーターはそのような重複作業を解消します。OpenAPI仕様を貼り付け、変換するエンドポイントを選択し、任意のAIプロバイダー向けに正しくフォーマットされた関数定義を取得できます。すべての処理はブラウザ内で実行されます — API仕様がお使いの端末から外部に送信されることはありません。

このコンバーターの使い方

OpenAPI仕様から関数定義への変換は簡単です:

  1. OpenAPI仕様を貼り付け — OpenAPI 3.xまたはSwagger 2.0の仕様をJSONまたはYAML形式でコピーします。完全な仕様や、必要なパスとコンポーネントのみを含む部分的な仕様を受け付けます。
  2. 変換するエンドポイントを選択 — ツールがHTTPメソッド、パス、説明とともにすべてのエンドポイントを一覧表示します。AI呼び出し可能な関数として公開するものを選択します。すべてのエンドポイントがFunction Callingに適しているわけではありません — 明確な目的とよく定義されたパラメーターを持つエンドポイントに焦点を当ててください。
  3. ターゲット形式を選択 — OpenAI、Anthropic、Google Gemini、またはすべてを選択します。各プロバイダーにはわずかに異なる形式要件がありますが、コンバーターが自動的に処理します。
  4. 確認とカスタマイズ — 生成された定義には、operationIdまたはパスから派生した関数名、仕様のsummaryからの説明、リクエストボディとクエリパラメーターからのパラメータースキーマが含まれます。モデルの理解を最適化するために説明を確認・調整してください。
  5. コピーして統合 — 生成されたJSONをコピーしてAI統合コードに追加します。出力は各プロバイダーのSDKまたはAPIで直接使用できます。

OpenAPIからFunction Callingへのマッピングの理解

OpenAPIから関数定義への変換には、いくつかの重要なマッピング判断が伴います:

関数の命名

関数名はOpenAPI仕様の`operationId`フィールドから派生します。operationIdがない場合、ツールはHTTPメソッドとパスから名前を生成します(例:`GET /users/{id}` は `get_user_by_id` になります)。仕様に良いoperationIdがあれば、モデルが理解しやすい適切な関数名が生成されます。

パラメーターの抽出

パラメーターは3つのソースから収集されます:パスパラメーター(例:`/users/{id}`)、クエリパラメーター、リクエストボディスキーマ。AI Function Callingはパラメーターの位置を区別しないため、関数定義では単一のフラットなパラメーターオブジェクトに統合されます。必須のパスパラメーターは生成されたスキーマで自動的にrequiredとしてマークされます。

スキーマの解決

OpenAPI仕様ではcomponentsセクションの共有スキーマ定義を参照するために`$ref`が頻繁に使用されます。AI Function Calling形式は参照をサポートしていません — すべてのスキーマが自己完結型でなければなりません。コンバーターは参照されたスキーマをインライン展開することですべての参照を解決し、ネストされた参照を再帰的に処理します。循環参照は無限展開を防ぐために深さ制限で検出・中断されます。

説明の強化

良い関数の説明は、AIモデルが各関数をいつどのように呼び出すかを理解するために不可欠です。コンバーターはOpenAPIの`summary`と`description`フィールドを使用し、明確で簡潔な説明に統合します。仕様からのパラメーターの説明は、モデルが正しい引数値を生成するために保持されます。

一般的なパターンとベストプラクティス

OpenAPI仕様をFunction Calling定義に変換する際、以下のパターンが最良の結果をもたらします:

  • エンドポイントを戦略的に選択 — すべてのAPIエンドポイントを関数にすべきではありません。明確で有用なアクションを表すエンドポイントに焦点を当ててください。上位レベルのビジネスオペレーションが利用可能な場合、低レベルのCRUD操作の公開は避けてください。
  • 意味のあるoperationIdを使用 — `searchProducts`のようなoperationIdは、`get_api_v1_products`のような自動生成されたものよりも良い関数名を生成します。
  • 明確な説明を書く — モデルは関数とパラメーターの説明に大きく依存して、どの関数を呼び出すか、どの引数を渡すかを決定します。曖昧な説明は不正確な関数呼び出しにつながります。
  • 複雑なスキーマを簡素化 — リクエストボディに20以上のフィールドと深いネストがある場合、最も一般的に使用されるフィールドのみを含む簡略化バージョンの公開を検討してください。複雑なスキーマはモデルを混乱させ、エラーにつながります。
  • 実際のプロンプトでテスト — 関数定義を生成した後、実際のユーザープロンプトでテストし、モデルが正しい関数を選択し、有効な引数を生成することを確認してください。

よくある質問

OpenAPIとは何ですか?AI Function Callingとどう関係しますか?

OpenAPI(旧Swagger)はREST APIを記述するための標準仕様です。エンドポイント、パラメーター、リクエスト/レスポンスのスキーマ、認証方法を機械可読なJSONまたはYAML形式で定義します。AI Function Callingも同様の構造化された定義 — 名前、説明、パラメータースキーマ — を必要とします。このツールはOpenAPI仕様からエンドポイント情報を抽出し、AIモデルが期待するツール/関数定義の形式に変換することで、そのギャップを埋めます。

どのOpenAPI仕様バージョンがサポートされていますか?

このツールはOpenAPI 3.0.xおよび3.1.x仕様、さらにSwagger 2.0(内部的にOpenAPI 3.0形式に自動変換)をサポートしています。JSONとYAMLの両方の入力形式を受け付けます。仕様が3.1固有の機能(JSON Schema 2020-12互換性など)を使用している場合、それらも正しく処理されます。最良の結果を得るには、仕様が有効であることを確認してください — 問題が発生した場合は、公式のSwagger Editorで先に検証してください。

ツールはネストされたスキーマと$ref参照をどのように処理しますか?

コンバーターは参照されたスキーマを関数定義にインライン展開することで$ref参照を完全に解決します。これはAI Function Calling形式(特にGoogle Gemini)が$refをサポートしていないために必要です。ネストされたオブジェクトは適切な深度まで保持され、循環参照は無限ループを防ぐために検出・中断されます。複雑な合成キーワード(allOf、oneOf、anyOf)は可能な限りフラットなスキーマに簡素化されます。

生成された関数にはどのような出力形式がありますか?

ツールは3つの形式で関数定義を生成します:OpenAI Function Calling({ type: "function", function: {...} }のラッパー付き)、Anthropic Tool Use(input_schema付き)、Google Gemini Function Declarations(parameters付き)。3つすべてを同時に生成するか、特定のターゲット形式を選択できます。各出力はAPIリクエストに直接貼り付けられる有効なJSONです。

関連ツール

AI Function Callingインテグレーションの構築に役立つその他のツールもご覧ください:

関連ツール