GitHub Copilotの裏の処理をOllamaにするプロキシ、Ollama Copilotを試した&コンテナ化

初LLMです。

背景

VSCodeでローカルLLMを使った補完を使いたかった。ざっくり探すと以下のようなものがあった。

ただ、VSCode機能拡張はこのご時世もあり、あまり入れたくないな、という感じなのと、そもそもGitHub Copilotがあるのだから、それをそのまま使えないのだろうか?と思った。

調べると通信先としてプロキシを通させるオプションがあり、それを利用したものを探したところ以下が見つかった。

FauxPilotはOllamaに対応してなさそうということで、Ollama Copilotを試してみた。あとコード量も時間を書ければ全然読めるレベルだったので変なもん入ってもすぐにわかりそう、という安心感があった。

しかし、こちらもバイナリの配布はなかったのと、ollamaの用意とかも面倒だった。

コンテナ化

ということでコンテナにしてみた。

github.com

Dockerイメージもあげてあります。

https://hub.docker.com/r/ryozitn/ollama-copilot

Linuxな環境(特にWSL)でdocker or podmanがある環境なら compose upすれば使えるはず。WSLで動かせばWindows(ホスト)のVSCodeからでも通信できる。devcontainerからは試してない…(`--add-host="host.docker.internal:host-gateway"みたいなオプションを与えれば行けるかもしれない?)

つたないREADME_ja.mdでも読んでください。

最近はPodmanに凝っているのでPodmanでも動作するように頑張った(PodmanはRUN --mount=type=bind回りにバグがあるっぽいので2回目以降のビルドはうまくいかないかも)

(人のもんを勝手にDockerコンテナ化して配るってどうなんですかね)

動かしてみた

コード補完が動いた。Chatは無効化されていたりコミットメッセージの補完は動かなかった。やはり簡単にはいかないのか。

youtu.be

codellama:codeは無から補間されるコードはイマイチっぽかった。httpサーバでrecv(BUFSIZE)なんてしたら永久に待ってしまう可能性があるので。これは与えたタスクが悪いというのはあるかもしれない…

あとは謎の補完が出たりすることがあるのが気になる。

他気になってるところ。

  • TLSの通信が失敗するログがしばしば出るのが気になる。Microsoft宛てっぽい。自分の環境だけかもしれない?
  • GPUを使わないととんでもないCPU使用率になってタイムアウトした
  • 初動はモデルのロードがあるからか少し時間がかかる

でもローカルLLMが発展してくれればollamaを通して恩恵が得られるはず。凄い人たち頑張ってくれー

ちなみにGitHub Copilot自体は全く使ったことがない。(コード補完以外にどういった機能があるかわかってない)

Windows11の鬱陶しい機能を切るやつをレジストリファイルにまとめた

gist.github.com

メモ帳を開いて、上記の内容を張り付けて、なんとか.regって名前でファイルで保存して、クリックして結合してください。

きっかけは以下をはてブで見かけて、そういえば「Winキー押した後にキー入力するとBing検索されるやつ」を消したいな、と思ったことから。

pc.watch.impress.co.jp

こういうのは助かりますね。とはいえ、GUIをポチポチでやるのはつらいでしょうから、レジストリファイルにしておくとよいでしょう。

自分だけのレジストリファイルを作ろう!


こういうのはWebで調べれば出るので別にまとめなくてもいいかと思っていたんですが、Windows10の設定が出てきたりと意外と面倒なのと、よくわからんレジストリも一緒に書き換えていたりとよくわからなかったので、むしゃくしゃして書き始めた。

「そういう設定があるのか」と知ってからは、画面のどの項目に対応しているかを見つけ、設定変更の前後のレジストリをエクスポートしてDiffを取りながら書きました。統一感ないなと思いました。クラウドのIaCみたいに画面の項目とコードを一致させるのが大変みたいな感じがあって気持ち悪くなってた。いや、diff取れる分まだマシか。

結局、「Winキー押した後にキー入力するとBing検索されるやつ」は画面上の項目としては見つからなかったので、"スタート キー入力 Web検索"で検索して見つかったのを適当に書いてます。

グリーンハウスのモニターアームGH-AMDP1-BKを買った

GH-AMDP1-BK

www.green-house.co.jp

Amazonのセールで6000円ぐらいだったので買った。モニターアームは3個目。

遍歴

  • 2011-11頃: エルゴトロン MXシリーズ 45-214-026
    • たしか2台目のモニターを買ったときにサブのモニター用に買った。2023年に引っ越すまで使っていた机は手狭でモニタスタンドが邪魔だった
    • モニタアームといえばエルゴトロンと聞いて、何も考えずに買った記憶がある。当時は安物の机なのでフレームが干渉しないかどうかだけ気にしていた気がする
    • 初モニタアームに感動した
  • 2020-08頃: グリーンハウス GH-AMDD1
    • メインのモニター用に買った。高めに配置したい、机の対面にある布団から寝転がってでも見える位置にモニターを持っていきたい(ので3軸ではなく4軸で)、という感じで探してた気がする
    • ガススプリングでチルトが-40度ぐらい動かせるものは中々なかったが、これが安価で条件を満たしたので買った
    • モニターを支えながらねじ止めしなくてよい仕組みがあってよかった

そして、引っ越しをして奥行きがある机にしたことから、エルゴトロン MXシリーズのものでは手前に引き出しにくかったり高さが低すぎたりと不満を感じていた。

そんな中で今回のモニターアームをセールで見つけてしまったので購入してしまった。

お気に入りポイント

製品のスペックはGH-AMDP1-BKの製品ページを見ればよい。おそらくGH-AMDD1シリーズの後継

私が気に入った個所。

  • シングルモニタアーム
  • 4軸
  • ガススプリングなので上下移動が軽快
  • 奥行も約590mmとかなり手前まで持ってこれる自由度がある
  • 高さ170mm~670mmと高い位置まで配置できる
  • チルトが±45度で、マイナス方向に傾けられる製品は結構少ない
  • クランプに対応

製品ページのおすすめポイントにある「スリムクランプ」はうれしい人もいるかもしれない。下の出っ張りが邪魔だったりするので。

「モニター部分セパレートタイプ」も健在で取り付けも簡単。モニターを支えながらのねじ止めはモニターのサイズによっては一人ではちょっと大変だからこういうのはタスカル。

2個目に買ったGH-AMDD1とほぼ同性能のものが4年間不満なく使えていたので安心感があったのと、ここは粗悪品もよく出すけど謎のメーカーではなくモニタアームとしてはまともという感じがある印象。

残念ポイント

  • このデザインでシングルモニタアーム。このデザインならもう一本つけさせてほしい
  • 黒カラーでもネジはシルバーなので、ネジ部分が目立つ(裏側を見ないと目立たないのでさほど気にならないとは思う)

後の祭り

実は買ったのは7月ごろで、実際の取り付けは9月入ってからとだいぶ放置していた。不満はあったもののなんだかんだで作業できちゃっていたので、交換作業も面倒に感じて放置していた。

そんな折、最近上がった次の動画をみた。この方のレビュー動画だけは毎週楽しみに見てる。

www.nicovideo.jp

そういえばアーム買ってたし取り付けよう、と重い腰を上げたのだった。

最近は在宅でノートパソコンもよく使うので、動画でやっていたノートパソコンスタンドつけるのが良いなと思ってしまいちょっと後悔。まぁ、どうしても欲しくなったら買えば良いし…