AccessTokenは、モデルのリクエストに使うAPIキーとは別のもので、アカウントに対してより広い権限を持ちます。
- サーバー内の環境変数かシークレット管理ツールに保管してください。
- ブラウザやクライアントアプリには含めないでください。
AccessTokenの取得
1
アカウント設定を開く
コンソールにログインし、アカウント設定を開きます。
2
システムトークンのダイアログを開く
システムトークン(System Token)を選び、コンソールからパスワードを求められたら入力します。
3
AccessTokenをコピーする
表示されたAccessTokenをすぐにコピーして、安全な場所に保管してください。新しいAccessTokenを生成すると以前のものが無効になることがあるため、使用中のサービスはすべて更新してください。
エンドポイント
Authorization の値にはAccessTokenをそのまま指定します。Accept: application/json と Content-Type: application/json は省略できます。cURLでは、レスポンスを展開するために --compressed を付けることをおすすめします。
レスポンス
成功すると、次のようなレスポンスが返ります。
アカウントによっては、ほかのフィールドが含まれることがあります。必要なフィールドだけを読み取り、未知のフィールドはパーサーで無視してください。
クォータを米ドルに換算する
quota と used_quota は、米ドルではなくクォータ単位で返されます。500,000クォータが約1米ドルです。
この換算は表示用です。リクエストの実際の料金は、モデルの料金、トークングループ、呼び出しログに表示される課金額で決まります。アラートに使う場合は、精度を保つため、換算後の金額と一緒に生の
quota も保存してください。
コード例
ターミナルで、プレースホルダーを置き換えてAccessTokenを一度だけ設定します。- cURL
- cURL with jq
- Python
- Node.js
--compressed を付けないと、ターミナルの出力が文字化けしたり、jq が Invalid numeric literal を報告したりすることがあります。エラー
401 Unauthorized
Authorization ヘッダーが空、AccessTokenが不完全または無効になっている、あるいはAccessTokenではなくモデル用のAPIキーを送っている場合に発生します。原因ごとの対処は、残高照会APIで401が返るときの対処にまとめています。
ステータスコードとレスポンスボディは、組み合わせて判断してください。
Authorizationヘッダーがまったくない場合は、HTTP 401が返り、codeがAUTH_REQUIREDになります。- AccessTokenが誤っているか期限切れの場合は、HTTP 200で
success: falseが返り、AccessTokenが無効である旨のメッセージが付きます。
success を確認してください。
403 Forbidden
文字化け、またはjqのエラー
cURLの出力が文字化けする、またはjq が Invalid numeric literal を報告する場合は、圧縮されたレスポンスが展開されていません。cURLのコマンドに --compressed を付けてください。
残高の監視
残高が減る前に気づけるように、このエンドポイントを定期的に確認します。次のスクリプトは、残高がしきい値を下回るとステータス1で終了します。LAOZHANG_ACCESS_TOKEN はスクリプトかcrontabで渡してください。設定時の注意点は次のとおりです。
LAOZHANG_ACCESS_TOKENは、環境変数かシークレット管理ツールに保管する。- リクエストのタイムアウトを、10秒などに設定する。
- 確認の間隔は控えめにする。残高アラートで毎秒の確認が必要になることはほとんどない。
- アラートには、
quota、換算後の残高、used_quota、request_count、リクエスト時刻、HTTPステータスを含める。 Authorizationヘッダー、access_token、その他の機密のアカウント情報は、ログに出力しない。