Roo Codeをお試ししたときにAPI代で90ドルくらいかかり、 このままガッツリ使うと破産しそうなのでもうちょっと安く済む方法を探している。

候補の一つである、“バックエンドのAPIを自分で用意してそれを使う"をやってみた。

結論からいうと今回利用したOLLAMA DeepSeek R1 32BというモデルではRoo CodeのAPI Providerとしては力不足らしい。

実現したいこと

  • DeepSeek R1をローカルのコンテナで動かす
  • Roo CodeのAPI ProviderとしてローカルのDeepSeekを利用する

環境

  • OS: Ubuntu24.04
  • GPU: NVIDIA RTX4090

やったこと

NVIDIA Driverとかをインストールする

以前にやっていたので今回は特に何もしていない

nvidia-container-runtimeをインストールする

コンテナからGPUを使えるようにするやつ

https://developer.nvidia.com/container-runtime

Ollamaのコンテナを立てる

image: https://hub.docker.com/r/ollama/ollama

立てたコンテナにattachしてモデルをダウンロード&実行する

docker exec -it ollama ollama pull deepseek-r1:32b

この辺はDockerfileに書こうとしたけど何やってもOllamaのサービスが立ち上がっておらずでうまくいかなかった

試してないけどsleepとか挟むといけたりするかも

https://github.com/ollama/ollama/issues/258

モデルのダウンロードが終わったらCLIが立ち上がるのでモデルが動作していることは確認できる。

devcontainerのRoo CodeからローカルのDeepSeek見る

Roo Codeで以下のprofileを追加する

keyvalue
API ProviderOpenAI Compatible
Base URLhttp://172.17.0.1:11434/v1
OpenAI API Keyany
Modeldeepseek-r1:32b

OllamaがOpenAI互換APIを生やしてくれているのでgateway IP(172.17.0.1)を使ってBase URLを指定する

問題

ここまででRoo CodeからDeepSeekを利用できる状態にはなっているのだけど、

なにか指示を投げると、指示と関係なさそうなことを考えたのち、Roo is having trouble...となってしまう。

適当にissueを見た感じ、Roo Codeのシステムプロンプトがモデルへの入力としては複雑すぎる、長すぎるらしい。

https://github.com/RooVetGit/Roo-Code/issues/612

感想

アウトプットが遅すぎるとか質が低すぎて使い物にならないとかは想定していたけど、そもそもインプットすらできなくて厳しい。

issueの回答にもあるFoot Gun System Promptingで適当にシステムプロンプトを縮めるとか、別のモデルを試すとか まだ手はあるけど望みは薄そうな感じがしている。

他の手段としてはClaude Code+Claude Desktopとかもあるっぽいけどコンテナで完結しないのでいまいちやる気がでない。