P.S. このチュートリアルは、Coze と HackerNoon による#AI-chatbot ライティング コンテストの #AI Chatbot デザイン用です。
「プラグイン」タブをクリックし、 「プラグインの作成」をクリックします。または、エージェントの開発ページにアクセスしてプラグインを作成することもできます。
プラグイン ツールの作成方法ドロップダウンで、 Coze IDE で [クラウド プラグイン - 作成]を選択します。
IDE ランタイムで、選択言語としてPython を選択します。
「確認」をクリックすると、プラグイン ページにリダイレクトされ、ツールが作成されます。
プラグイン ページでIDE でツールを作成をクリックします。
「確認」をクリックすると、 Coze IDE ページにリダイレクトされ、ツールをコーディングできるようになります。
依存関係を追加するには、左側のパッケージ パネルの+ アイコンをクリックします。ここでは、HTTP を送信できるように、リクエストパッケージをインストールする必要があります。
from runtime import Args import requests API_KEY = "****" BASE_URL = "//api.coingecko.com/api/v3" def get_coin_data(coin_id: str, currency: str = "usd", logger=None): endpoint = f"{BASE_URL}/coins/markets" params = { "vs_currency": currency, "ids": coin_id.lower(), # Convert to lowercase "x_cg_demo_api_key": API_KEY } try: response = requests.get(endpoint, params=params) response.raise_for_status() # Raise an exception for bad status codes data = response.json() if logger: logger.info(f"API Response: {data}") return data except requests.RequestException as e: if logger: logger.error(f"API Request failed: {str(e)}") return {"error": f"API request failed: {str(e)}"} def handler(args: Args) -> dict: args.logger.info(f"Received args: {args}") args.logger.info(f"Type of args.input: {type(args.input)}") args.logger.info(f"Content of args.input: {args.input}") # Handle CustomNamespace object if hasattr(args.input, 'coin_id') and hasattr(args.input, 'currency'): coin_id = getattr(args.input, 'coin_id', 'bitcoin') currency = getattr(args.input, 'currency', 'usd') else: return { "message": f"Error: Invalid input format. Expected CustomNamespace with coin_id and currency attributes. Input: {args.input}", "data": None } args.logger.info(f"Processed input - coin_id: {coin_id}, currency: {currency}") try: coin_data = get_coin_data(coin_id, currency, args.logger) if "error" in coin_data: return { "message": f"Error: {coin_data['error']}", "data": None } else: # Check if we got any data if not coin_data: return { "message": f"No data found for {coin_id}", "data": None } # Assuming the API returns a list with one item for the specified coin coin_info = coin_data[0] if coin_data else {} return { "message": f"Successfully retrieved data for {coin_id}", "data": { "name": coin_info.get("name"), "symbol": coin_info.get("symbol"), "current_price": coin_info.get("current_price"), "market_cap": coin_info.get("market_cap"), "price_change_24h": coin_info.get("price_change_24h") } } except Exception as e: args.logger.error(f"An error occurred: {str(e)}") return { "message": f"An error occurred while processing the request: {str(e)}", "data": None }
入力パラメータ: coin_id (文字列): 暗号通貨の ID (例: "bitcoin"、"ethereum")。
入力パラメータ:通貨 (文字列): 市場データの対象通貨 (例: "usd"、"eur")
努力パラメータ: message (文字列): リクエストのステータスを示すメッセージ。
努力パラメータ:データ (オブジェクト): このデータ オブジェクト内では、これらのパラメータを使用します。
データ推进力パラメータ内: name (文字列): 暗号通貨の名前。
データ努力パラメータ内: symbol (文字列): 暗号通貨のシンボル。
データ推进力パラメータ内: current_price (数値): 指定された通貨での現在の価格。
データ压力パラメータ内: market_cap (数値): 指定された通貨での時価総額。
データ一定出力パラメータ内: price_change_24h (数値): 過去24時間の価格変動
テストするには、 「テスト コード」タブで入力パラメータを入力し、プラグインを実行します。
[実行]をクリックします。
ツールの応答を表示するには、出力値を表示します。
コンソール パネルでログを表示して、成功したかエラーがあったかを確認します。
テストが成功した場合は、 「公開」をクリックしてプラグインを公開します。
当社のプラグインはユーザー データを収集しないため、[プライバシー収集ステートメント] ダイアログ ボックスで [いいえ]をオンにします。ただし、プラグインでユーザー データが必要な場合は、 [はい]をオンにします。
「公開」をクリックします。ストアにアクセスして、このを調べてください。