GithubCopilot経由で、ClineでClaude3.7をエラー無く使う方法
Claude3.7でエラー出るよね
待望のClaude3.7の出現に浮かれて、早速Clineで使用したユーザーは多いと思います。
そして、期待と裏腹に毎回出てくる謎のエラーに悩まされ、結局Claude3.5に戻した方も多いと思います。
Request Failed: 400 {"error":{"message":"Model is not supported for this request.","param":"model","code":"model_not_supported","type":"invalid_request_error"}}
-悲しみのエラー-
本記事では、copilot-moreを使ってエラーを解消し、Claude3.7を使用する方法を紹介いたします。
対象
今回、対象となるユーザーですが
Cline、Roocode など、Cline系のツールが対象となります。
また、GithubCopilotのAPI経由でClaude3.7を使用します。Proプランだと月額10ドルで使い放題なので素敵!
仕組み
現在、ClindeでGithubCopilot経由でClaude3.7のAPIを叩くと、前述したエラーが発生します。GithubCopilotがIDEからのAPIを"ブロック"していると言われています。(Chat機能は使える)
Copilot-moreを使用し、Dockerコンテナ経由でAPIを叩くことで、IDEであるとさとられず、Claude3.7を利用することができるようになります。
注意
- GitHub Copilot の利用規約を尊重してください。
- コーディング以外の目的でのモデルの使用は最小限に抑えてください。
- 悪用により GitHub Copilot によって禁止されるリスクに注意してください。
copilot-more の導入
エラーを回避してClaude3.7を使用するために、copilot-moreを使用します。
git clone などして、IDEでcopilot-more のプロジェクトファイルを開きます。
リフレッシュトークンの発行
Readmeに従っていきます。最初にリフレッシュトークンの発行
ターミナルで、curl https://github.com/login/device/code -X POST -d 'client_id=01ab8ac9400c4e429b23&scope=user:email
を実行
実行すると、次のようにトークンとユーザーコードが吐き出されます
device_code='トークン'expires_in=899&interval=5&user_code='ユーザーコード'&verification_uri=https%3A%2F%2Fgithub.com%2Flogin%2Fdevice
実行後、verification_urlのGithubURLにアクセスし、上述のユーザーコードを入力して、Authorizeしてください。
Authrrizeが完了したら、ターミナルに戻り、
curl https://github.com/login/oauth/access_token -X POST -d 'client_id=CLIENT_ID&scope=user:email&device_code=YOUR_DEVICE_CODE&grant_type=urn:ietf:params:oauth:grant-type:device_code
を実行するのですが、YOUR_DEVICE_CODE
を先程発行したトークンに置き換えて実行します
すると、リフレッシュトークン(access_token)が出力されます
access_token=ACCESS_TOKEN&scope=user%3Aemail&token_type=bearer
このトークンを控えておいてください。
.envファイルの作成
copilot-moreのプロジェクトファイルに、.envファイルを作成します
以下のコードをコピペし、REFRESH_TOKEN
の内容を先程発行したリフレッシュトークンに変更して下さい。
Required settings
REFRESH_TOKEN=gho_some_token← ココを変更!
Optional settings (defaults shown)
API endpoints
CHAT_COMPLETIONS_API_ENDPOINT=https://api.individual.githubcopilot.com/chat/completions
MODELS_API_ENDPOINT=https://api.individual.githubcopilot.com/models
For enterprise users, you can set the following endpoints:
CHAT_COMPLETIONS_API_ENDPOINT=https://api.business.githubcopilot.com/chat/completions
MODELS_API_ENDPOINT=https://api.business.githubcopilot.com/models
Request settings
MAX_TOKENS=10240
TIMEOUT_SECONDS=300
EDITOR_VERSION=vscode/1.95.3
Debug settings
RECORD_TRAFFIC=false
Docker環境の構築
Docker環境の構築はWindowsだと難しいのですが、そういうところは省略します。
.envファイルに、リフレッシュトークンを記入した後、
copilot-moreのプロジェクトファイルに入って、
docker-compose up --build
、を実行します
ビルドが完了したら、
docker compose up
その後、ブラウザでhttp://localhost:15432
にアクセスします。
こんな感じになってたら動いているってことなので大丈夫です
Cline でAPI設定
Clineの設定で、APIを使えるようにしていきます。
設定で、以下のようにします
- API Provider
- OpenAI Compatible
- Base URL
- API Key
- 任意(aaaa でもOK)
- Model
- claude-3.7-sonnet
これで完了です!!
エラーが出た!
完了!と思いきや、エラーが発生してしましました。
app-1 | "text": "[ERROR] You did not use a tool in your previous response! Please retry with a tool use.\n\n# Reminder: Instructions for Tool Use\n\nTool uses are formatted using XML-style tags. The tool name is enclosed in opening and closing tags, and each parameter is similarly enclosed within its own set of tags. Here's the
そういうときは、次のコードを実行すれば解決
chmod +x refresh-token.sh
./refresh-token.sh
早速実行!
できました!!!!!!!!
完走
Happy Claude3.7 Life!!
Discussion
というエラーが出て使えなくなってました。
試してみて、私も同じ状態です。
APIリミットレートの制限があって、自由と言うまでは使うのは厳しそうです。90000トークンあたりからエラーが出ました
とてもいいと思うのですが、そもそもCline系経由のGitHub Copilotの使用は、アカウントごとBANされる危険性があるんですね…。
must read
Banリスクについてですが、以前までは無料プランで月間のAPI制限は無く、使い放題でありましたがようやく月間制限が導入されたので、希望的観測ですがそのリスクは下がったと思いたいですね..