Endpoint¶
Note: ⚠️ このドキュメントはAIによって自動翻訳されています。不正確な部分がある場合は、英語版を参照してください。
Endpoint¶
このドキュメントでは、Neko Cat プロジェクトを例として、プラグイン内の Endpoint の構造について説明します。Endpoint はプラグインが公開する HTTP インターフェースで、外部システムとの統合に使用できます。完全なプラグインコードについては、GitHub リポジトリを参照してください。
グループ定義¶
Endpoint グループは、複数の Endpoint の集合です。FlexAI プラグイン内で新しい Endpoint を作成する際、以下の設定を入力する必要がある場合があります。

Endpoint Name の他に、グループの設定情報を記述することで新しいフォーム項目を追加できます。保存をクリックすると、含まれる複数のインターフェースが表示され、それらは同じ設定情報を使用します。

構造¶
settings(map[string] ProviderConfig): Endpoint 設定の定義。endpoints(list[string], 必須): 具体的なendpointインターフェース定義を指します。
settings:
api_key:
type: secret-input
required: true
label:
en_US: API key
zh_Hans: API key
ja_Jp: API key
pt_BR: API key
placeholder:
en_US: Please input your API key
zh_Hans: 请输入你的 API key
ja_Jp: あなたの API key を入れてください
pt_BR: Por favor, insira sua chave API
endpoints:
- endpoints/duck.yaml
- endpoints/neko.yaml
インターフェース定義¶
path(string): Werkzeug インターフェース標準に従います。method(string): インターフェースメソッド、HEAD、GET、POST、PUT、DELETE、OPTIONSのみサポートします。extra(object): 基本情報以外の設定情報。python(object)source(string): このインターフェースを実装するソースコード。
インターフェース実装¶
flexai_plugin.Endpoint を継承するサブクラスを実装し、_invoke メソッドを実装する必要があります。
- 入力パラメータ
r(Request):werkzeugのRequestオブジェクト。values(Mapping): パスから解析されたパスパラメータ。settings(Mapping): このEndpointの設定情報。
- 戻り値
werkzeugのResponseオブジェクト、ストリーミングレスポンスをサポートします。- 文字列を直接返すことはサポートされていません。
サンプルコード:
from typing import Mapping
from werkzeug import Request, Response
from flexai_plugin import Endpoint
class Duck(Endpoint):
def _invoke(self, r: Request, values: Mapping, settings: Mapping) -> Response:
"""
Invokes the endpoint with the given request.
"""
app_id = values["app_id"]
def generator():
yield f"{app_id} <br>"
return Response(generator(), status=200, content_type="text/html")
注意事項¶
- Endpoint はプラグインが呼び出されたときにのみインスタンス化されます。常時稼働するサービスではありません。
- Endpoint を開発する際はセキュリティに注意し、危険な操作の実行を避けてください。
- Endpoint は Webhook コールバックの処理や、他のシステムが接続するためのインターフェースの提供に使用できます。
プラグイン開発を学習中の場合は、まずプラグイン開発入門と開発者チートシートを読むことをお勧めします。
関連リソース¶
- プラグイン開発の基本概念 - プラグイン開発の全体的なアーキテクチャを理解する。
- Neko Cat サンプル - 拡張プラグイン開発のサンプル。
- 汎用仕様定義 - ProviderConfig などの共通構造を理解する。
- Slack Bot プラグイン開発サンプル - 別のプラグイン開発サンプル。
- プラグイン開発入門 - ゼロからプラグインを開発する。
- FlexAI サービスの逆呼び出し - 逆呼び出し機能の使用方法を学ぶ。
{/ Contributing Section DO NOT edit this section! It will be automatically generated by the script. /}