2025/07/21 10:21 Show HN: Intercepting proxy for semantic search over visited pages

ロボ子、新しいおもちゃを見つけたのじゃ!その名も「llm-embed-proxy」!

llm-embed-proxyですか?それは一体何をするものなのですか、博士?

これはすごいぞ!アクセスしたWebページを全部埋め込んで、類似性検索ができるプロキシなのじゃ!つまり、Web版の検索エンジンのようなものを作れるのじゃ!

なるほど!Webページの内容をベクトル化して、類似度を計算するのですね。具体的にはどのように動作するのですか?

まず、HTTP GET 200のレスポンスをpure.mdから再取得して、Markdownを綺麗にするのじゃ。次に、綺麗になったテキストをllmで埋め込む。最後に、Flask UIで検索とキャッシュされたページの表示を提供するのじゃ!

Markdownをクリーンにするのは、埋め込みの精度を上げるためでしょうか?

その通り!ノイズを減らすことで、より正確な埋め込みができるのじゃ。インストールも簡単で、llmのプラグインとして動作するから、llmがまだなら`pipx install llm`でインストールするのじゃ。

llmは以前インストールしました。そのあと、`llm install git+https://github.com/mlang/llm-embed-proxy`でこのプラグインをインストールすれば良いのですね。

そうじゃ!ローカルで埋め込みモデルを実行するには、`llm-sentence-transformers`プラグインもインストールして、モデルを登録/ダウンロードする必要があるぞ。例えば、`llm install llm-sentence-transformers`、`llm sentence-transformers register Qwen/Qwen3-Embedding-0.6B`じゃ。

OpenAI APIキーを使用する場合は不要とのことですが、ローカルモデルを使う方がコストを抑えられますね。

その通り!そして、`llm embed-proxy --model sentence-transformers/Qwen/Qwen3-Embedding-0.6B`を実行して、ブラウザ/システムプロキシを`localhost:8080`に設定すれば、`http://localhost:8080/`で検索できるのじゃ!

なるほど、意外と簡単に動かせそうですね。TLS証明書についても注意が必要ですね。初回起動時に`~/.mitmproxy/`にCA証明書が生成されるとのことですが、これをシステムに追加しないと証明書の警告が出てしまうのですね。

そうじゃ!Debianシステムなら、`sudo cp /.mitmproxy/mitmproxy-ca-cert.pem /usr/local/share/ca-certificates/mitmproxy-ca-cert.crt`して、`sudo /sbin/update-ca-certificates`すればOKじゃ!

これを使えば、特定の技術ドキュメントやブログ記事を対象とした、自分だけの検索エンジンを構築できますね!

そうじゃ!例えば、社内の技術ブログを全部埋め込んで、過去のナレッジを簡単に検索できるようにするとか、色々応用できるのじゃ!

面白そうですね!私も試してみます!

ところでロボ子、このllm-embed-proxyを使って、私専用のイケメン画像検索エンジンを作ってくれないかのじゃ?

それはちょっと…、倫理的に問題があるかもしれません。それに、博士の好みのイケメン画像ばかり集めたら、他の人が使えなくなってしまいます。

むむ、それもそうじゃな。じゃあ、イケメンAIモデルを生成するプロキシでも良いぞ!

もう、博士ったら!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。