Open4

Claude OpusをDenoから使ってみる

magurotunamagurotuna

アカウント作成からAPIキー作成まで

  1. https://console.anthropic.com/create にアクセスしてアカウントを作る
  2. ダッシュボードから "Get API Keys" をクリック
  3. Create Key ボタンをクリック
  4. APIキーが生成される
magurotunamagurotuna

動かしてみる

上で入手したAPIキーを AUTHROPIC_API_KEY という環境変数に入れておく(ここでは .envrc に書いて direnv でロードしている)

.envrc
export AUTHROPIC_API_KEY='<put your api key>'

適当なファイルを作成し、以下の内容を貼り付ける (ほぼそのまま https://docs.anthropic.com/claude/reference/client-sdks#typescript から持ってきたもの)

main.ts
import Anthropic from "npm:@anthropic-ai/sdk";

const anthropic = new Anthropic({
  apiKey: Deno.env.get("ANTHROPIC_API_KEY"),
});

const msg = await anthropic.messages.create({
  model: "claude-3-opus-20240229",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Hello, Claude" }],
});
console.log(msg);

実行してみる

deno run main.ts

いくつか環境変数に対するアクセスとapi.anthropic.comに対するネットワークアクセスを要求される。すべて妥当な要求なので許可していくと、以下のように「あなたのプランだとそのモデルは使えないよ」(意訳)と言われる

✅ Granted env access to "ANTHROPIC_API_KEY".
✅ Granted env access to "ANTHROPIC_BASE_URL".
✅ Granted env access to "ANTHROPIC_AUTH_TOKEN".
✅ Granted env access to "DEBUG".
✅ Granted net access to "api.anthropic.com".
error: Uncaught (in promise) Error: 400 {"type":"error","error":{"type":"invalid_request_error","message":"Your credit balance is too low to access the Claude API. Please go to Plans & Billing to upgrade or purchase credits."}}
    at Function.generate (file:///Users/yusuktan/Library/Caches/deno/npm/registry.npmjs.org/@anthropic-ai/sdk/0.16.1/error.mjs:36:20)
    at Anthropic.makeStatusError (file:///Users/yusuktan/Library/Caches/deno/npm/registry.npmjs.org/@anthropic-ai/sdk/0.16.1/core.mjs:256:25)
    at Anthropic.makeRequest (file:///Users/yusuktan/Library/Caches/deno/npm/registry.npmjs.org/@anthropic-ai/sdk/0.16.1/core.mjs:299:30)
    at eventLoopTick (ext:core/01_core.js:166:7)
    at async file:///Users/yusuktan/claude/main.ts:7:13
magurotunamagurotuna

無料クレジットを取得する

$5分のクレジットが無料で利用可能ということなので、取得する

https://console.anthropic.com/settings/plans で Claim をクリック

電話番号を入力してSMSで届く認証コードを入力

$5のクレジットを入手することができた

magurotunamagurotuna

再度実行してみる

main.ts を再度実行してみる。前回の実行でいくつかの環境変数に対するアクセスとapi.anthropic.comへのネットワークアクセスが要求されることが分かったので、それらを許可するオプションも追加しておく

deno run --allow-env --allow-net=api.anthropic.com main.ts

正しく返答を得ることができた!

{
  id: "msg_014L3UxoLjJyF4XrHEE5BAjg",
  type: "message",
  role: "assistant",
  content: [
    {
      type: "text",
      text: "Hello! It's nice to meet you. How can I assist you today?"
    }
  ],
  model: "claude-3-opus-20240229",
  stop_reason: "end_turn",
  stop_sequence: null,
  usage: { input_tokens: 10, output_tokens: 19 }
}