以下の内容はhttps://blue1st-tech.hateblo.jp/entry/2026/01/18/172934より取得しました。


Searxngと連携してローカルLLMのウェブ検索を改善する

LLMをチャットとして実用的に使う上でWeb検索は欠かせない機能要素だろう。

ラフに訊ねた文言から検索キーワードを良い感じに定めて検索を実行し、複数のサイトから情報を拾って時には翻訳までして情報をまとめてくれる。

LLMの性質上どこまでいってもハルシネーションの懸念はあるので全幅の信頼を寄せることはできないものの、ユーザビリティを損ねるWeb広告があふれる昨今では粗めの情報を手っ取り早く得るには便利な手段ではある。


さて、ローカルLLMをWebチャットとして運用できるOpenWebUIにも勿論この機能は搭載されており、検索エンジンとして色々なサービスを選ぶことができる。

github.com

ただ、大抵のものにはAPIキーの登録だったり場合によっては課金が必要なようで、ちょっとプライベートでお試しで触るには気兼ねしてしまうところがある。


DDGSはそのあたりの手間なく使えはするんだけど、中身としてはスクレイピングで各種検索エンジンの結果を拾う感じのものなので、実際に触ってると割とすぐにRateLimitに引っかかったりして、ちゃんと使うには辛い印象を持っている。

DDGS設定

実際に使うサービスも選べる

github.com


そこでもう一つの選択肢となるのが、Searxngというメタ検索エンジンをローカルで立ち上げて繋ぐという方法。

こちらも本質的にはDDGSと同じくスクレイピングによるものではあるんだけど、複数のエンジンへの検索結果を集約できたり良い感じにLimitに引っかからないように加減してくれたり細かい設定ができたりするので、体感ベースだけど丸く使える印象。


それでは実際にDockerコンテナとして立ち上げてみる。

以下のようなcompose.ymlを作成する。また、configというディレクトリをあらかじめ用意しておく。

※前回前々回のドメインおよびtraefikがある前提で作っているけど、そうじゃない環境は普通にportsで内部の8080ポートを出す感じで良いと思う

services:
  searxng:
    image: searxng/searxng:latest
    container_name: searxng
    volumes:
      - "./config:/etc/searxng"
    environment:
      - "BASE_URL=http://0.0.0.0:8080/"
      - "INSTANCE_NAME=SEARXNG"
    networks:
      - traefik-network
    labels:
      traefik.enable: true
      traefik.http.routers.searxng.rule: Host(`searxng.<取得したドメイン>`)
      traefik.http.services.searxng.loadbalancer.server.port: 8080
    restart: unless-stopped
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"

networks:
  traefik-network:
    external: true

一旦docker compose upで起動するとconfigディレクトリ内にsettings.ymlファイルが作成されるので、その中のformats項にjsonを追記しておく。

  # remove format to deny access, use lower case.
  # formats: [html, csv, json, rss]
  formats:
    - html
    - json

以上でdocker compose up -dで起動してブラウザでアクセスしてちゃんと動くことを確認する。

トップページ

検索結果

色々と設定できる

Searxngが単体で動くことが確認できたら、OpenWebUIの設定を行っていく。

アイコンをクリックして出てくるメニューから管理者パネルを開き、設定>ウェブ検索に移動。

ウェブ検索をONにして、ウェブ検索エンジンとしてsearxngを選択、SearxngクエリURLとして以下のような設定を入れる。

http://searxng.******/search?lang=ja&q=<query>

OpenWebUIからの接続設定

処理時間がかかってでも中身をちゃんと踏まえてほしいので、「埋め込みと検索をバイパス」も個人的にはONの方が良いのかなって感触を持ってる。


これでチャットからのウェブ検索が動くことが確認できる。

ローカルLLMでもちゃんと動くぞ




以上の内容はhttps://blue1st-tech.hateblo.jp/entry/2026/01/18/172934より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14