はてブル 開発メモ Github Copilot Chat ネタ

Github Copilot Chat

VSCodeなどでとても便利な Github Copilot Chat。
直接使われている方もいれば、cline系で、Language Model API として使われている方も少ないと思います。

code.visualstudio.com


これを使うと、GitHub Copilot を使った VSCode拡張機能が作れます。
ん?
ん?
OpenAI互換APIとして動く VSCode拡張機能を作れるんちゃうか?(・ω・)

できました(・ω・)



コーディング専用LLMのはずが、案外動く(ノ∀`) しかも速い。
少なくともモラル的にはアカンやつなので、公開は自重しておきます。
可能不可能で言うと、可能でしたということで。

はてブル 開発メモ Roo Codeの罠

ろぼっとのあたま

開発中に音声読み上げが突然「ろぼっとのあたま」と絵文字を読み上げはじめました(ノ∀`)

はてブル パネル - Chrome Web Store」では、音声読み上げ機能では、絵文字は置き換えていたはず。

たとえば、
ろぼっとのあたま(🤖)
めがほしのえがお(🤩)
を句点に。

突然の読み上げに、どうした\(^o^)/となりコードをみてみると、

本来こうあるはずの部分が、
const emojiPattern = /[\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF]/g;

スカスカに(・ω・)
const emojiPattern = /[-]|[-]|[-]|[-]|[-]|[-]/g;

unicode部分が抜ける

検証していないので確たることは言えないのですが、どうも Roo Code で該当部付近を編集した際にunicodeが抜けた模様。

saveボタンを押すときに、ちゃんと見てない人間ですまん\(^o^)/

 




 

 

 

はてブル 開発メモ 音声認識を付けたかった

音声入力追加、失敗

はてブル パネル - Chrome Web Store」で常時表示ナビに1行増やしたのは、実は、音声入力で検索したかったから(ノ∀`)

Web Speech API

Web Speech API には結構優秀な音声認識機能があります。
これ、ウェブページでは普通に動くのですが、chrome拡張機能で使おうとするとナカナカ厄介です。

  • ウェブページでは動く
  • backgorundでは動かない
  • popupでも動かない
  • sidepanelでも動かない
  • サンドボックスでもダメ

無理矢理実装すると、

  1. 見ているページに音声認識コードを差し込む
  2. そのサイトへマイクを許可するかのポップアップが出る
  3. 許可すると使える

見ているサイトに対してのマイク許可になってしまう点などなど、色々不自然になってしまい、一旦撤退しました。

 

 

 

はてブル 開発メモ Bsky検索APIがジミヘン

またまたBlueskyの検索APIが止まる

はてブル パネル - Chrome Web Store」Blueskyのコメントが出てない(ノ∀`) 1月下旬時同様、403が帰ってくる。

止まっている→キャッシュしない→沢山アクセスする

の悪循環を止めるため、ひとまず、403だったら30分はアクセスしない機構を導入。
※ver 1.24 対応

その後ググってみると、こんな書き込みを発見。

github.com


繋がらないよー

https://public.api.bsky.app/xrpc/app.bsky.feed.searchPosts?q=moss

これは繋がるよ?

https://public.api.bsky.app/xrpc/app.bsky.feed.searchposts?q=moss

まじかよ!まじだよ!\(^o^)/ 違いはなんだよ!?

searchPosts → searchposts
小文字になってる (・ω・) なんやそれ

理由は分かりませんがとりあえず対応。
※ver 1.25 対応

はてブル 開発メモ サーバフォールバック

はてブのコメントが出ない

はてブル パネル - Chrome Web Store」では自前サーバで「はてブ」のコメントを読んで、キャッシュしています(さらにローカルでもキャッシュしてます)。

が、はてブコメントが表示されない!\(^o^)/サーバが落ちていました

落ちた話なのでサービス名は伏せますが、無料サーバです。
落ちているを見たのはここ三ヶ月で初めてなので、ダウンタイムは少ない方だと思います。性能なども不満なし。

とはいえ、できる事はしておきたいので、フォールバック処理を追加しました。
ver 1.22 以降、メインサーバが不調なときには予備サーバを読みに行きます。

ついでにローカルキャッシュのお話し

なお、これが 1月のアクセス。
インストール数の割に多いのは、とりあえず読む!設定だったため。
1 件 1件も軽いので数字ほどの圧はありません。

Blueskyの検索API

1月下旬に、Blueskyの検索APIが一時停止しました。
はてブルでも、Blueskyの検索APIを結構叩きます(ノ∀`)
bot扱いされないようにローカルキャッシュ導入。

ローカルキャッシュの結果

サーバへのアクセスはギュンと減りました。
身の程にあった数字。
冒頭のフォールバック導入はこの更に後となります。




 

 

はてブル 開発メモ なりきり系はLLMの強さが必要

LLMに一言もらう

はてブル パネル - Chrome Web Store」では、本文らしきところにプロンプトをくっ付けて、LLMに一言もらう機能があります。


自由に設定できるプロンプトを3種類切り換えて使えます。

この辺から得た知見。

いままでは、オススメLLMモデルを gemma2:2bにしていました。
1.7GBのサイズなのでとても早い。
そのくせナカナカの出力をくれます。

しかし……

なりきり系には5GB程度のモデルが必要

gemma2:2b ではイマイチなりきってくれません(ノ∀`) 語尾も一人称も変わりにくい
5GB程度以上のサイズのモデルを使うと一気になりきってくれました。
※私はgemma2が好きなので gemma-2-9b-it(7.81GB)を使っていますが、deepseek-r1-distill-llama-8b(4.92GB)あたりでも充分なりきってくれます

ギャルはOMG言いたがる

初期はプリセットのなりきりプロンプトをギャルにしていたのですが、なぜか、OMG!OMG!言いたがるんですね(ノ∀`) これの調整が難しく、ギャルを諦めて宇宙人にしました。
「 わしの宇宙船も、レンタルで使えるようにしたいなぁ🚀😜」とか出すので宇宙人積極採用。

LLM設定なしでも

var 1.23から、↑の🤖ボタンを押すことで、タイトルやURLとプロンプトをブラウザのChatGPTで開くようにしました。

実は、要約機能でもほぼ同じ事ができるのですが、そちらの動きはそのままで、
ローカルLLMやAPIを設定しなくとも、プロンプトを添えた出力が得られる様になりました。

開いたブラウザでチャットを続ける事も\(^o^)/

 

はてブル 開発メモ ちょいニュースを加えたい

コメントのついたソースがほしい

はてなブックマークのトップページ」 は当然そうなっています。
そして、その世界をもうちょっと広げたくなるんですね。

しかも、人の気配がほしい。
XなりYahooニュースなり小町なりが答えの一つですが、
はてブル パネル - Chrome Web Store」 らしく、ここは Bluesky を掘ります。

Blueskyを検索してそれっぽいリストを作る方向。
指針としては、以下な感じ。

  • URLがある
  • コメントが付いてそう
  • ノイズはカットしたい
  • 程良く代謝

URLがある

https:// で良いかなと思いましたが機能せず(ノ∀`)
「ニュース News」をキーワードにすることでひとまず対応。

コメントがある、ノイズカット

Blueskyの検索では「top」と「latest」を選べます。
「top」を選ぶことで、質の向上が望めます。

程良く代謝

「top」を選ぶと、出力の代謝が下がります。
12時間以内に絞ることで、代謝の向上を図ります。

調整

URLの無いものや重複を削除し、整えたものを出力としました。
コメントが沢山付いたニュースの一覧には、正直遠いです(ノ∀`)

ひとまず、BSKY投稿表示の下部に追加。