結論を先に言えって言ったよね
api_versionのエラーが出たのでdockerコマンドで環境変数弄ったら治りました
発生した事象
公式の記述に従って
docker pull docker.all-hands.dev/all-hands-ai/runtime:0.28-nikolaik
docker run -it --rm --pull=always \
-e SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.all-hands.dev/all-hands-ai/runtime:0.28-nikolaik \
-e LOG_ALL_EVENTS=true \
-v /var/run/docker.sock:/var/run/docker.sock \
-v ~/.openhands-state:/.openhands-state \
-p 3000:3000 \
--add-host host.docker.internal:host-gateway \
--name openhands-app \
docker.all-hands.dev/all-hands-ai/openhands:0.28
した後、AzureOpenAIでデプロイしたo3-miniの情報を設定しました。
とりあえずトップページに表示されるデモ用のプロンプトを使用して動作確認を実施したところ、以下のエラーが返されました。
BadRequestError: litellm.BadRequestError: AzureException - Error code: 400 - {'error': {'code': 'BadRequest', 'message': 'Model {modelName} is enabled only for api versions 2024-12-01-preview and later'}}
諸々調べてsdkのせいか?など右往左往したのですが、結果としてはエンドポイントに設定されている
?api-version=2024-12-01-preview
という記述が、AOAIへのリクエスト時に欠落してしまっていることが原因だと判断しました。
そこで、起動時のコマンドを
docker run -it --rm --pull=always \
-e SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.all-hands.dev/all-hands-ai/runtime:0.28-nikolaik \
-e LOG_ALL_EVENTS=true \
-e LLM_API_VERSION=2024-12-01-preview \
-v /var/run/docker.sock:/var/run/docker.sock \
-v ~/.openhands-state:/.openhands-state \
-p 3000:3000 \
--add-host host.docker.internal:host-gateway \
--name openhands-app \
docker.all-hands.dev/all-hands-ai/openhands:0.28
としたところ、無事にAOAIからクエリ結果を得ることができました
環境変数は、この辺を見てこれっぽいなと判断しました。
https://github.com/All-Hands-AI/OpenHands/blob/main/docs/i18n/fr/docusaurus-plugin-content-docs/current/usage/llms/azureLLMs.md
あとがき
PRを出せるといいんですが、能力値が足りませんでした。反省。
o1を使う場合でも出たので、この記事が誰かの時間を節約できたら嬉しいです。
Q: claude 3.7 Sonnetを使わないのは何故ですか?
A: うるせえ!(高すぎるからです)
以上!!!