volcengine-sdk-generator について
volcengine-sdk-generatorは、自然言語の依頼からVolcengine SDKコードを生成し、設定に関する質問にも対応するスキルです。API Explorerのメタデータを調べ、指定言語や構成に応じた実行可能な例を作成します。
主な機能
- 01サービス、操作、対象言語の特定
- 02API ExplorerでサービスとAPI情報を検索
- 03API仕様に基づくSDKコード例の生成
- 04リトライ、タイムアウト、認証設定への対応
活用シーン
- 01操作内容からクラウドAPIコードを生成
- 02API操作に対応するサービスとパラメーターの特定
- 03プロキシやコネクションプール設定の追加
- 04Volcengine SDKの設定方法の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ bytedance/ agentkit-samples --skill volcengine-sdk-generatorインストール後、Claude Code で/volcengine-sdk-generatorを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSEreferences/sdk-integration-go.mdsdk-integration-java.mdsdk-integration-nodejs.mdsdk-integration-php.mdsdk-integration-python.md詳細
Volcengine SDK コードジェネレーター
自然言語による説明から、実行可能な完全な Volcengine SDK コードを生成し、SDK の設定に関する質問に回答します。
ワークフロー
ユーザーが Volcengine API の操作を説明した場合は、次の手順に従います。
Step 1: 対象サービス、操作、高度な設定の必要性を特定する
ユーザーの説明を解析して、以下を特定します。
-
対象サービス:対象となる Volcengine サービス(例:ECS、VPC、TOS、billing)
-
対象操作:実行する操作(例:インスタンスの一覧表示、VPC の作成、請求情報の照会)
-
対象言語:使用するプログラミング言語(Go、Python、PHP、Java、Node.js)。指定がない場合は、ユーザーに確認します。
-
高度な設定の必要性:ユーザーが次のいずれかについて言及しているか、またはシナリオから必要性が示唆されるかどうか:
- リトライ:ユーザーが「リトライ」「フォールトトレランス」に言及している、または操作が書き込み/作成タイプである(スロットリングが発生しやすい)
- タイムアウト:ユーザーが「タイムアウト」に言及している、または操作に大量のデータが関わる(一括クエリ、ファイルのアップロード)
- 認証情報:ユーザーが「STS」「AssumeRole」「一時的な認証情報」「OIDC」に言及している、または AK/SK のハードコードを明示的に避けたいと考えている
- プロキシ/ネットワーク:ユーザーが「プロキシ」または「内部ネットワーク」に言及している
- デバッグモード:ユーザーが「デバッグ」または「ログ」に言及している
- コネクションプーリング:ユーザーが「コネクションプール」「高い並行性」または「プール」に言及している
ユーザーがこれらを明示的に要求した場合は、生成コードに対応する設定を含めます。明示的な要求はなくても、シナリオから必要性が示唆される場合(例:リソースの作成では通常リトライが有効)は、推奨設定をコメントとして含めます。
Step 2: Volcengine API Explorer でサービスのメタデータを照会する
正しいサービスコード、バージョン、アクション名を確認するには、次の API を使用します。この手順は重要です。推測すると誤ったコードになりやすいため、API Explorer を信頼できる情報源として使用してください。
2a. ServiceCode を確認する
サービスカタログを取得します。
GET https://api.volcengine.com/api/common/explorer/services
レスポンスの構造:
{
"Result": {
"Categories": [
{
"CategoryName": "...",
"Services": [
{
"ServiceCn": "Cloud Server",
"ServiceCode": "ecs",
"Product": "ECS",
"IsSdkAvailable": true,
"RegionType": "regional"
}
]
}
]
}
}
ServiceCn、Product、カテゴリ名に基づいて、ユーザーの意図に合う ServiceCode を特定します。
2b. API バージョンを確認する
GET https://api.volcengine.com/api/common/explorer/versions?ServiceCode={ServiceCode}
レスポンス:
{
"Result": {
"Versions": [
{
"ServiceCode": "billing",
"Version": "2022-01-01",
"IsDefault": 0
}
]
}
}
IsDefault == 1 のバージョンを使用します。デフォルトバージョンがない場合は、利用可能な最新バージョンを使用します。
2c. Action 名を確認する
GET https://api.volcengine.com/api/common/explorer/apis?ServiceCode={ServiceCode}&Version={Version}&APIVersion={Version}
レスポンス:
{
"Result": {
"Groups": [
{
"Name": "Instance",
"Apis": [
{
"Action": "DescribeInstances",
"NameCn": "Query instance list",
"Description": "..."
}
]
}
]
}
}
Action 名と NameCn(中国語名)を使って、ユーザーの意図に合うものを特定します。
2c-alt: API を検索する(直接検索で見つからない場合)
サービスカタログや API 一覧からユーザーの説明に合うものを明確に特定できない場合(たとえば、ユーザーの表現が曖昧、ServiceCode に直接対応しない中国語名を使っている、または API 一覧に目的の API が見当たらない場合)は、フォールバックとして検索 API を使用します。
GET https://api.volcengine.com/api/common/search/all?Query={URL-encoded search term}&Channel=api&Limit=10
検索語は中国語でも英語でも構いません。ユーザーの説明に最も合う言語を使用します。
レスポンスの構造:
{
"Result": {
"List": [
{
"BizInfo": {
"Action": "ListProjects",
"ServiceCn": "Access Control",
"ServiceCode": "iam",
"Version": "2021-08-01"
},
"Highlight": [
{"Field": "title", "Summary": "Get <em>project</em> <em>list</em>"}
]
}
],
"Total": 200
}
}
ServiceCn、Action、ハイライトテキストに基づいて最適な候補を選び、ステップ 2d に進みます。
検索 API は、特に次のような場合に役立ちます。
- ユーザーが操作を自然言語で説明しているものの、どのサービスが担当するか分からない
- サービスの API が多すぎて、手動で一覧を確認するのが難しい
- 説明が複数のサービスにまたがる(検索ではすべてのサービスから結果が返される)
2d. API パラメーターの詳細をすべて取得する
GET https://api.volcengine.com/api/common/explorer/api-swagger?ServiceCode={ServiceCode}&Version={Version}&APIVersion={Version}&ActionName={Action}
完全な Swagger/OpenAPI 仕様が返されます。次の情報が含まれます。
- HTTP メソッド(GET/POST)
- 型、必須フラグ、説明を含む、すべてのリクエストパラメーター
- レスポンスの構造
- 制約と検証ルール
x-demoフィールド:公式の例を含むrequestDemoとresponseDemo
正確なコードの生成に不可欠なため、この仕様を注意深く確認してください。
2e. パラメーターの例の値を抽出する(x-demo の requestDemo から)
Swagger レスポンスの info.x-demo 配列には、公式のリクエスト例である requestDemo が含まれています。生成コードに設定する、現実的なパラメーター値をここから抽出します。
抽出手順:
info.x-demo[0].requestDemoを特定し、リクエストボディの JSON を解析します- 生成するコードの例には requestDemo の値を使用します。これらは、独自に考えた値よりも正確で現実的です
- マスクされた値(例:
cc5silum********)はマスク形式のまま使用し、実際の値に置き換えるよう促すコメントを追加します - パラメーター値が JSON 文字列(例:
Configフィールド)の場合は、見やすく整形し、各サブフィールドにコメントを付けます
例:VKE CreateAddon の requestDemo には次の値が含まれています:
{
"ClusterId": "cc5silum********",
"Name": "ingress-nginx",
"DeployMode": "Unmanaged",
"DeployNodeType": ["VirtualNode"],
"Config": "{\"Replica\":1,\"Resource\":{\"Request\":{\"Cpu\":\"0.25\",\"Memory\":\"512Mi\"},\"Limit\":{\"Cpu\":\"0.5\",\"Memory\":\"1024Mi\"}},\"PrivateNetwork\":{\"SubnetId\":\"subnet-2d61qn69iji****\",\"IpVersion\":\"IPV4\"}}"
}
空のプレースホルダーの代わりに、これらの値をそのまま使用します。
2f. 複雑なパラメーターの詳細な設定を取得する
一部のパラメーターの description フィールドには、詳細な設定ガイドを示すドキュメントリンク(例:https://www.volcengine.com/docs/...)が含まれています。複雑なパラメーターについては、詳細を確認するためにこれらのリンクを取得します。
ドキュメントを参照するタイミング:
- パラメーター値が JSON 文字列で、
descriptionに「詳細な設定を参照」といった記述がある場合(例:VKE のConfig) - パラメーターが、サブフィールドの形式が外部で文書化されている入れ子構造である場合
enum値の意味が不明確で、ドキュメントで説明されている場合
処理の流れ:
- パラメーターの
descriptionにvolcengine.com/docsのリンクが含まれているか確認します - 含まれている場合は、WebFetch を使用してリンク先のページを取得し、パラメーターに関連する設定の詳細を抽出します
- ドキュメントの例を、コメントまたは構造化されたパラメーターとして生成コードに組み込みます
- ドキュメントにアクセスできない場合は、requestDemo の例の値を使用します
2g. 必須パラメーターと推奨パラメーターを判定する
必須フィールドの判定では、required 配列だけでなく、複数の情報源を参照します。
- 明示的な必須項目:Swagger の
required配列に記載されている項目 - 説明文から推定される必須項目:説明文に「指定する必要があります」「必須」など、同等の表現が含まれている項目
- 論理的に必須の項目:正式に必須と指定されていなくても、意味的に不可欠な項目(例:リソース作成時のインスタンスタイプやネットワーク設定)
- 条件付き必須項目:説明文に「X=Y の場合に必須」と記載されている項目。ユーザーのシナリオに該当する場合は含めます
パラメーター値の優先順位:
- requestDemo の例の値(最優先):公式の例をそのまま使用します
exampleフィールド:Swagger 仕様の各パラメーターのexample値- enum 値:最も一般的な選択肢、または汎用性の高い選択肢を選びます
- ドキュメントの推奨値:リンク先のドキュメントから取得した値
- 業界慣例:クラウドコンピューティングの一般的な規範に沿った妥当なデフォルト値(例:CIDR には
172.16.0.0/16、インスタンスには説明的な名前)
ステップ 3:SDK 設定リファレンスを参照する(必要に応じて)
ステップ 1 で高度な設定が必要と判断された場合は、対象言語の対応するリファレンスファイルを読み、正確な設定コードを確認します。
| 言語 | リファレンスファイル |
|---|---|
| Go | references/sdk-integration-go.md |
| Python | references/sdk-integration-python.md |
| Java | references/sdk-integration-java.md |
| Node.js | references/sdk-integration-nodejs.md |
| PHP | references/sdk-integration-php.md |
これらのファイルには、リトライ、タイムアウト、認証情報、プロキシ、コネクションプーリング、デバッグの設定について、検証済みのコードスニペットが記載されています。こうしたパターンは記憶に頼って書くのではなく、そのまま使用してください。SDK の設定は言語によって大きく異なるため、リファレンスファイルを使うことで正確さを確保できます。
ステップ 4:完全な SDK コードを生成する
次のルールに従って、実行可能な完全なコード例を生成します。
共通ルール(すべての言語)
- 認証:デフォルトでは、環境変数
VOLCENGINE_ACCESS_KEYとVOLCENGINE_SECRET_KEYから AK/SK を読み取ります。別の認証方式(STS、AssumeRole、OIDC)が必要な場合は、リファレンスファイルにある該当パターンを使用してください。読み取り方法は言語によって異なります。各言語のセクションとリファレンスファイルを参照してください。 - リージョン:リージョンサービスでは、デフォルトを
cn-beijingにします。ユーザーが変更できることをコメントで記載してください。 - 必須パラメーター:ステップ 2g のソースを使って、すべての必須パラメーターを含めます。requestDemo またはサンプルフィールドから、現実的な値を使用してください。各値の隣に、その意味と出典を説明するコメントを追加してください。
- パラメーター値の品質:値には、単純なプレースホルダーではなく、現実的な形式とビジネス上の意味を持たせてください。
- インスタンス ID:
i-abc123******のようなマスク形式を使用します(requestDemo から取得)。 - CIDR:
172.16.0.0/16のような適切な範囲を使用します。 - 列挙値:最も一般的な選択肢を使用します。
- ネストされた JSON 設定:フィールドごとにコメントを付けた読みやすい複数行形式に展開します。
- インスタンス ID:
- 複雑なパラメーターの処理:値が JSON 文字列のパラメーター(VKE Config など)は、長い文字列を直接記述するのではなく、まず構造体または辞書を作成してから JSON にシリアライズします。これにより、コードが読みやすく、変更しやすくなります。
- オプションのパラメーター:ページネーションなど、よく使われるオプションのパラメーターは、説明を添えてコメントアウトした行として含めます。
- エラー処理:対象言語の標準的なエラー処理を含めます。
- 出力:レスポンスを読みやすい形式(整形済み JSON など)で出力します。
- コメント:コードの目的を説明するヘッダーコメントを追加します。分かりにくいパラメーターにはインラインコメントを付けます。コメントの言語はユーザーのプロンプトの言語に合わせてください。
- 高度な設定の統合:ユーザーに高度な設定の要望がある場合は、別ブロックではなくメインコードに自然に組み込み、単一の実行可能ファイルにします。
- 再試行:クライアント/設定の初期化時に再試行設定を追加し、デフォルト値と調整可能なパラメーターをコメントで説明します。
- タイムアウト:クライアントの初期化時にグローバルタイムアウトを設定します。必要に応じて、リクエストごとのタイムアウトの使い方も示します。
- 認証情報:デフォルトの AK/SK 認証コードを、ユーザーが指定した方式(STS、AssumeRole など)に置き換えます。
- プロキシ:クライアント設定にプロキシ設定を追加します。
- デバッグ:クライアント設定でデバッグモードを有効にします。
- コネクションプール:クライアント設定でプールのパラメーターを設定します。
Go
Go SDK では {Action}Request ではなく {Action}Input 構造体を使用します。サービスは {service}.New(sess) でインスタンス化します。
package main
import (
"fmt"
"os"
"github.com/volcengine/volcengine-go-sdk/service/{service}"
"github.com/volcengine/volcengine-go-sdk/volcengine"
"github.com/volcengine/volcengine-go-sdk/volcengine/credentials"
"github.com/volcengine/volcengine-go-sdk/volcengine/session"
)
func main() {
ak := os.Getenv("VOLCENGINE_ACCESS_KEY")
sk := os.Getenv("VOLCENGINE_SECRET_KEY")
region := "cn-beijing"
config := volcengine.NewConfig().
WithRegion(region).
WithCredentials(credentials.NewStaticCredentials(ak, sk, ""))
// [Advanced config — add as needed, see references/sdk-integration-go.md]
// Retry: config.WithMaxRetries(5)
// Timeout: config.WithHTTPClient(&http.Client{Timeout: 60 * time.Second})
// Proxy: config.WithHTTPProxy("http://proxy:8080")
// Debug: config.WithDebug(true)
sess, err := session.NewSession(config)
if err != nil {
panic(err)
}
svc := {service}.New(sess)
input := &{service}.{Action}Input{
// Set required parameters here
}
resp, err := svc.{Action}(input)
if err != nil {
panic(err)
}
fmt.Println(resp)
}
要点:
- パッケージパス:
github.com/volcengine/volcengine-go-sdk/service/{service}(小文字。例:billing、ecs、vpc) - 設定チェーン:
volcengine.NewConfig().WithRegion(region).WithCredentials(credentials.NewStaticCredentials(ak, sk, "")) - セッション:
session.NewSession(config)(セッションとエラーを返します) - サービスクライアント:
{service}.New(sess)(例:billing.New(sess)、ecs.New(sess)) - リクエスト構造体:
{Action}Input(例:ListAvailableInstancesInput、DescribeInstancesInput) - メソッド:
svc.{Action}(input)。アクション名はパスカルケースです。
Python
Python SDK では、{SERVICE}Api(サービス名は大文字)と {Action}Request モデルを使用します。
from __future__ import print_function
import os
import volcenginesdkcore
import volcenginesdk{service}
from volcenginesdkcore.rest import ApiException
if __name__ == '__main__':
configuration = volcenginesdkcore.Configuration()
configuration.ak = os.environ.get("VOLCENGINE_ACCESS_KEY")
configuration.sk = os.environ.get("VOLCENGINE_SECRET_KEY")
configuration.region = "cn-beijing"
# [Advanced config — add as needed, see references/sdk-integration-python.md]
# Retry: configuration.max_retry_attempts = 5
# Timeout: configuration.connection_timeout = 10; configuration.read_timeout = 60
# Proxy: configuration.proxy = "http://proxy:8080"
# Debug: configuration.debug = True
volcenginesdkcore.Configuration.set_default(configuration)
api_instance = volcenginesdk{service}.{SERVICE}Api()
request = volcenginesdk{service}.{Action}Request(
# Set required parameters here
)
try:
resp = api_instance.{action_snake_case}(request)
print(resp)
except ApiException as e:
print("API exception: %s\n" % e)
主なポイント:
- パッケージ:
volcenginesdkcore+volcenginesdk{service}(すべて小文字で、区切り文字なし。例:volcenginesdkbilling、volcenginesdkecs) - 設定:
volcenginesdkcore.Configuration()を使用し、.ak、.sk、.regionを設定してからset_default()を呼び出します - API クラス:
volcenginesdk{service}.{SERVICE}Api()— サービス名はすべて大文字です(例:BILLINGApi、ECSApi、VPCApi) - リクエストクラス:
volcenginesdk{service}.{Action}Request(...)(パスカルケース。例:ListAvailableInstancesRequest) - メソッド:
api_instance.{action_snake_case}(request)— スネークケース(例:list_available_instances、describe_instances) - 例外:
from volcenginesdkcore.rest import ApiException
Java
Java SDK では、com.volcengine.{service} 名前空間の下にある {ServiceName}Api と {Action}Request モデルを使用します。
package com.volcengine.sample;
import com.volcengine.ApiClient;
import com.volcengine.ApiException;
import com.volcengine.sign.Credentials;
import com.volcengine.{service}.{ServiceName}Api;
import com.volcengine.{service}.model.*;
public class Example {
public static void main(String[] args) throws Exception {
String ak = System.getenv("VOLCENGINE_ACCESS_KEY");
String sk = System.getenv("VOLCENGINE_SECRET_KEY");
String region = "cn-beijing";
ApiClient apiClient = new ApiClient()
.setCredentials(Credentials.getCredentials(ak, sk))
.setRegion(region);
// [Advanced config — add as needed, see references/sdk-integration-java.md]
// Retry: apiClient.setRetrySettings(new RetrySettings().setMaxAttempts(5));
// Timeout: apiClient.setConnectionTimeout(5000); apiClient.setReadTimeout(30000);
// Proxy: apiClient.setHttpProxy("http://proxy:8080");
// Debug: apiClient.setDebugging(true);
{ServiceName}Api api = new {ServiceName}Api(apiClient);
{Action}Request request = new {Action}Request();
// request.setParamName(value);
try {
{Action}Response resp = api.{actionCamelCase}(request);
System.out.println(resp);
} catch (ApiException e) {
System.out.println(e.getResponseBody());
}
}
}
主なポイント:
- パッケージ:
com.volcengine.{service}(小文字。例:com.volcengine.billing、com.volcengine.ecs) - ApiClient:
new ApiClient().setCredentials(Credentials.getCredentials(ak, sk)).setRegion(region) - API クラス:
{ServiceName}Api(パスカルケース。例:BillingApi、EcsApi)— コンストラクターにはapiClientを渡します - リクエストクラス:
{Action}Request(例:ListAvailableInstancesRequest)— セッターでパラメーターを設定します - メソッド:
api.{actionCamelCase}(request)— キャメルケース(例:listAvailableInstances、describeInstances) - 例外:
ApiException。詳細を確認するにはe.getResponseBody()を使用します
Node.js
Node.js SDK では、コマンドパターンとして {SERVICE}Client + {Action}Command を使用します。
import { {SERVICE}Client, {Action}Command } from "@volcengine/{service}";
// Automatically reads VOLCENGINE_ACCESS_KEY and VOLCENGINE_SECRET_KEY from env
const client = new {SERVICE}Client({
region: "cn-beijing",
// [Advanced config — add as needed, see references/sdk-integration-nodejs.md]
// maxRetries: 5, // retry count
// autoRetry: false, // disable auto-retry
// httpOptions: { timeout: 30000 }, // timeout (ms)
// httpOptions: { proxy: { protocol: "http", host: "127.0.0.1", port: 8888 } }, // proxy
});
async function main() {
try {
const command = new {Action}Command({
// Set required parameters here
});
const response = await client.send(command);
console.log(JSON.stringify(response, null, 2));
} catch (error) {
console.error("Error:", error);
}
}
main();
主なポイント:
- パッケージ:
@volcengine/{service}(小文字。例:@volcengine/ecs、@volcengine/vpc) - クライアント:
{SERVICE}Client(サービス名はすべて大文字。例:ECSClient、VPCClient) - コマンド:
{Action}Command(パスカルケース。例:DescribeInstancesCommand、CreateVpcCommand) - 呼び出し:
client.send(command)— 非同期で、Promise を返します - 認証:環境変数
VOLCENGINE_ACCESS_KEYとVOLCENGINE_SECRET_KEYを自動的に読み取ります。クライアントのコンストラクターにaccessKeyId/secretAccessKeyを渡すこともできます
PHP
PHP SDK では、\Volcengine\{Service}\ 名前空間の下にあるクラスを使用します。
<?php
require_once(__DIR__ . '/vendor/autoload.php');
$config = \Volcengine\Common\Configuration::getDefaultConfiguration()
->setAk(getenv("VOLCENGINE_ACCESS_KEY"))
->setSk(getenv("VOLCENGINE_SECRET_KEY"))
->setRegion("cn-beijing");
// [Advanced config — add as needed, see references/sdk-integration-php.md]
// Proxy and timeout are configured via GuzzleHttp\Client options
$httpClient = new GuzzleHttp\Client([
// 'proxy' => 'http://proxy:8080', // proxy
// 'timeout' => 60, // request timeout (seconds)
// 'connect_timeout' => 10, // connection timeout (seconds)
]);
$apiInstance = new \Volcengine\{Service}\Api\{SERVICE}Api(
$httpClient,
$config
);
$request = new \Volcengine\{Service}\Model\{Action}Request();
// $request->setParamName("value");
try {
$resp = $apiInstance->{actionCamelCase}($request);
print_r($resp);
} catch (Exception $e) {
echo 'API exception: ', $e->getMessage(), PHP_EOL;
}
主なポイント:
- 設定:
\Volcengine\Common\Configuration::getDefaultConfiguration()->setAk()->setSk()->setRegion() - API クラス:
\Volcengine\{Service}\Api\{SERVICE}Api— 名前空間ではパスカルケースのService(例:Billing)、クラス名ではすべて大文字(例:BILLINGApi)を使用します - コンストラクター:
GuzzleHttp\Client()と$configを受け取ります - リクエストクラス:
\Volcengine\{Service}\Model\{Action}Request(例:\Volcengine\Billing\Model\ListAvailableInstancesRequest) - セッターでパラメーターを設定します:
$request->setProduct("value") - メソッド:
$apiInstance->{actionCamelCase}($request)(例:listAvailableInstances)
ステップ 5:結果を提示する
コードを生成した後:
- 正しい言語タグを付けたコードブロックに、コード全体を表示します
- ユーザーがインストールする必要のある依存関係を列挙します(
go get、pip install、npm install、composer require、Maven/Gradle の座標) - 環境変数を設定するようユーザーに注意を促します:
export VOLCENGINE_ACCESS_KEY="your-access-key" export VOLCENGINE_SECRET_KEY="your-secret-key" - API 仕様に関する重要な制約事項(レート制限、必要な権限、データ範囲の制限など)を記載します
- コードに高度な設定が含まれる場合は、各設定の目的、デフォルト値、調整時のアドバイスを簡潔に説明します。例:
- 「リトライのデフォルトは 3 回で、ネットワークエラーとスロットリングを対象とします。
WithMaxRetriesで調整できます」 - 「接続タイムアウトのデフォルトは 30s です。大規模なバッチクエリでは延長を検討してください」
- 「リトライのデフォルトは 3 回で、ネットワークエラーとスロットリングを対象とします。
SDK 設定に関する質問への回答
ユーザーが Volcengine SDK の設定方法や使い方(API 呼び出しコードの生成ではなく)を尋ねた場合は、次の手順に従います:
ステップ 1:ユーザーのニーズを特定する
一般的な設定項目:
- 認証:AK/SK、STS トークン、AssumeRole、OIDC、SAML
- 再試行:有効化/無効化、最大試行回数、バックオフ戦略、カスタム再試行条件
- タイムアウト:接続タイムアウト、読み取りタイムアウト、リクエストごとのタイムアウト
- プロキシ:HTTP/HTTPS プロキシの設定
- エンドポイント:カスタムエンドポイント、リージョンに基づく解決、デュアルスタック(IPv6)
- SSL/HTTPS:SSL 検証の無効化、TLS バージョン、HTTP と HTTPS の切り替え
- 接続プーリング:プールサイズ、キープアライブ、アイドル接続
- デバッグ:デバッグモード、ロギング、ミドルウェア
- エラー処理:例外の種類、再試行可能エラーと再試行不可能エラー
- 環境変数:SDK ごとにサポートされる環境変数
ステップ 2:リファレンスドキュメントを確認する
ユーザーが使用する言語に対応したリファレンスファイルを読みます。
| 言語 | リファレンスファイル |
|---|---|
| Go | references/sdk-integration-go.md |
| Python | references/sdk-integration-python.md |
| Java | references/sdk-integration-java.md |
| Node.js | references/sdk-integration-nodejs.md |
| PHP | references/sdk-integration-php.md |
これらのファイルには、主要な設定項目ごとの簡潔なコード例が記載されています。該当するファイルを読み、正確でコピーしてすぐに実行できるコードを使って回答してください。
ユーザーの質問がリファレンスファイルで扱われていない場合や、さらに詳しい情報が必要な場合は、GitHub から上流のドキュメントを取得してください。
| 言語 | 上流ドキュメントの URL |
|---|---|
| Go | https://raw.githubusercontent.com/volcengine/volcengine-go-sdk/master/SDK_Integration.md |
| Python | https://raw.githubusercontent.com/volcengine/volcengine-python-sdk/master/SDK_Integration.md |
| Java | https://raw.githubusercontent.com/volcengine/volcengine-java-sdk/master/SDK_Integration.md |
| Node.js | https://raw.githubusercontent.com/volcengine/volcengine-nodejs-sdk/master/SDK_Integration.md |
| PHP | https://raw.githubusercontent.com/volcengine/volcengine-php-sdk/main/SDK_Integration.md |
ステップ 3:明確に回答する
- 設定を示す、完全で実行可能なコードスニペットを提示する
- 各設定の目的とデフォルト値を説明する
- 注意点を伝える(例:「SSL 検証の無効化はテスト環境でのみ適切です」)
- ユーザーが言語を指定していない場合は、使用している言語を尋ねる
- 回答の言語はユーザーのプロンプトの言語に合わせる
重要な注意事項
- 常に API Explorer からデータを取得してください。Volcengine API は頻繁に更新されるため、Explorer が信頼できる情報源です。記憶に頼らないでください。
- ユーザーの説明が曖昧で、複数のサービスや操作に該当する可能性がある場合は、選択肢を列挙して確認を求めてください。
- サービスの
IsSdkAvailable: falseの場合は、公式 SDK がそのサービスをまだサポートしていない可能性があることをユーザーに伝え、代替手段として HTTP リクエストの例を提示してください。 - リージョン別サービスの場合、ユーザーのリソースが
cn-beijingにない場合は、リージョン設定を変更するよう案内してください。