LM Studioでgpt-ossが動かせるようになったので早速使ってみた。どうやらメモリが32GBは要りそうな感じ。M4 MacBook Airは32GB RAM積んだので動くが、M2 MacBook Airは、24GBしか積んでいないので、LM Studioの対話形式では動かせるが、API経由だとリソースが足らないと出てしまう。Intel 第12世代のCore i7は、64GB RAM積んでいてAPI動作までできたが、いかんせんGPUが非力すぎるのでM4 MacBook Airとスピードが比較にならない。
RSSリーダーでみていると、今、秋葉原でIntel 第8、第9が安い値段の中古が出回っているが、AIのことを考えるとWindows 11が動く動かない時点でゴミだなぁと思う。また、Macでもやはり64GB RAMとか積んでいないと話にならないかもしれない。昔は仮想環境を建てるためにメモリを大量に積んだが、VMwareの買収の影響で手元に仮想環境はいらなくなったので、これからはAIのためにメモリを積んだマシンが必要になるか?
閑話休題
Roonの膨大な情報をAIで何かしたいと思ったのだが、まず、Roonの膨大の情報を取り出すために、RoonのExtentionを呼び出す必要があることが判明。
Extensionのインストール
注意点は、Roon Coreと同じL2に立てなければいけない。
自分の環境は、Windowsなので、Windowsローカルに建てる羽目に。Linuxにしておけばよかった。
Dockerとかで対応したかったが、Dockerや別サブネットだとL2が異なるので別セグメントになるので認識してくれない。
LinuxのRoon Coreだったら、git行以降でいいはず。
# Install Python 3.12 (adjust minor version if different on your machine) and node.js
winget install -e --id Python.Python.3.12
winget install --id OpenJS.NodeJS.LTS -e --source winget
# Allow local scripts to run (current user only)
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
git clone https://github.com/st0g1e/roon-extension-http-api
cd roon-extension-http-api
npm install
node server.js
以下にExtentionが表示されたらOK。初回はEnableにするおく必要がある。
ちなみに、再起動などをしたらnode server.jsを実行しておく必要がある。つまりターミナルも上げっぱなしにしないとダメ。
バイブコーディングで現在再生中の曲が取れるようになった。。。
(.venv) PS C:\RoonRAG> python .\ingest.py
* Zone: Desktop Hifiberry Digi2+ Pro 1F (state=playing)
* NowPlaying: Ariana Grande – supernatural [Eternal Sunshine]
Upserted 1 chunks into music-rag.
(.venv) PS C:\RoonRAG> python .\ingest.py
* Zone: Desktop Hifiberry Digi2+ Pro 1F (state=playing)
* NowPlaying: Anna Maria Jopek / Pat Metheny / Lyle Mays / Paweł Bzim Zarecki – Are You Going With Me? [Upojenie]
Upserted 1 chunks into music-rag.
(.venv) PS C:\RoonRAG> python .\ingest.py
* Zone: Desktop Hifiberry Digi2+ Pro 1F (state=playing)
* NowPlaying: Yuki Saito – 白い炎 [POETIC Live 1986]
Upserted 1 chunks into music-rag.
(.venv) PS C:\RoonRAG> python .\ingest.py
* Zone: Desktop Hifiberry Digi2+ Pro 1F (state=playing)
* NowPlaying: Ella Mai – Boo’d Up [Ready]
Upserted 1 chunks into music-rag.
(.venv) PS C:\RoonRAG> python .\ingest.py
* Zone: Desktop Hifiberry Digi2+ Pro 1F (state=playing)
* NowPlaying: Yellow Magic Orchestra – BEHIND THE MASK [YMO 1979 TRANS ATLANTIC TOUR LIVE ANTHOLOGY]
Upserted 1 chunks into music-rag.
(.venv) PS C:\RoonRAG> python .\ingest.py
* Zone: Desktop Hifiberry Digi2+ Pro 1F (state=playing)
* NowPlaying: Anderson Bruford Wakeman Howe – Brother of Mine: The Big Dream/Nothing Can Come Between Us/Long Lost Br [Anderson Bruford Wakeman Howe]
Upserted 1 chunks into music-rag.
これをRAGに入れて。。。となるんだが。よくよく考えたら、RoonのExtention使わなくてもLast.fmのAPIからコレ取れるんじゃないかと。。。自分は、Last.fmの課金ユーザだし。
export LF_USER=‘USER名’
export LF_API_KEY=‘APIキー’
curl -sG 'https://ws.audioscrobbler.com/2.0/‘ \
--data-urlencode 'method=user.getRecentTracks’ \
--data-urlencode "user=${LF_USER}” \
--data-urlencode "api_key=${LF_API_KEY}” \
--data-urlencode 'format=json’ \
--data-urlencode 'limit=1'
うーん、時間を返して欲しいw