広告枠を募集中 ご相談ください

HuggingChatのWeb検索とコミュニティツールを設定し、オープンアクセスモデルに最新のWeb情報をグラウンディングする方法

365Finds Editorial
Wiki 記事 11,430 本収録

あなたの AI で 365 Wiki を使う

下のプロンプトをコピーして、普段使っている AI に貼り付け、そのまま質問してください。

完全版 Skill をダウンロード

まずはプロンプトでお試しください。よく使う場合は完全版 365Wiki Skill をインストールすると、毎回貼り付ける必要がありません。普段使う AI がなければ、Gemini や Microsoft Copilot のウェブ版でも使えます。

オープンアクセス(オープンウェイト)の大規模言語モデルは、アーキテクチャの透明性や自由なデプロイが可能な点で優れていますが、学習データのカットオフ以降の情報や最新の学術論文、ニッチな技術仕様に関してはハルシネーション(事実誤認)を起こしやすいという課題があります。Hugging Faceが提供するオープンソースのチャット環境「HuggingChat」(内部エンジンは chat-ui)には、モデルの回答を信頼できるリアルタイムのWeb情報に結びつける(グラウンディングする)ための2つの機能が標準装備されています。それが「Web Search(Web検索)」と「Community Tools(コミュニティツール)」です。

本記事では、研究者や開発者がHuggingChatのWebインターフェースやセルフホスト環境において、リアルタイム検索を設定し、独自のGradioツールSpaceを連携させ、Command R+やLlama 3.1、Qwen 2.5などのモデルを活用して根拠のある分析アシスタントを構築する実践的な手順を解説します。


1. 手軽に事実検証:HuggingChatの組み込みWeb検索

日常的な文献調査やニュースの事実確認には、HuggingChatに統合されている検索拡張生成(RAG)パイプラインを利用するのが最も効率的です。

チャット画面での有効化手順

  1. HuggingChat(https://huggingface.co/chat)にアクセスします。
  2. 指示追従性と論理的推論に優れたベースモデル(Meta Llama 3.1 70B、Cohere Command R+、Qwen 2.5 72Bなど)を選択します。
  3. 画面下部のプロンプト入力欄にある地球アイコンの「Search web」スイッチをオンにします。
  4. 質問を入力します(例:「今週発表されたDeepSeek-V3テクニカルレポートの主なベンチマーク結果は何ですか?」)。

組み込み検索パイプラインの動作メカニズム

HuggingChatは単に検索エンジンのスニペットを貼り付けるだけではありません。バックエンドの chat-ui が自動的に6段階のRAG処理を実行します:


2. 高度なユースケース:カスタムコミュニティツールの作成と登録

一般的なWeb検索では、論文リポジトリや社内データベースなどの特定フォーマットを柔軟に扱えないことがあります。HuggingChatの「Community Tools」機能を使えば、公開されている任意のHugging Face Space(Gradioアプリ)をモデルから呼び出し可能な外部ツールとして登録できます。

ステップ1:GradioツールSpaceの準備

Gradioで構築された公開Spaceで、関数インターフェースを備えていればツールとして利用可能です。

import gradio as gr
import urllib.request
import xml.etree.ElementTree as ET

def search_arxiv(query: str, max_results: int = 3) -> str:
    url = f"http://export.arxiv.org/api/query?search_query=all:{urllib.parse.quote(query)}&max_results={max_results}"
    response = urllib.request.urlopen(url).read().decode("utf-8")
    root = ET.fromstring(response)
    results = []
    for entry in root.findall("{http://www.w3.org/2005/Atom}entry"):
        title = entry.find("{http://www.w3.org/2005/Atom}title").text.strip()
        summary = entry.find("{http://www.w3.org/2005/Atom}summary").text.strip()
        results.append(f"Title: {title}\nSummary: {summary}\n")
    return "\n---\n".join(results) if results else "No papers found."

demo = gr.Interface(
    fn=search_arxiv,
    inputs=[gr.Textbox(label="Query"), gr.Number(label="Max Results", value=3)],
    outputs="text",
    title="ArXiv Search Tool"
)

demo.launch()

ステップ2:HuggingChatにツールを登録する

  1. https://huggingface.co/chat/tools にアクセスし、「Create New Tool」をクリックします(または https://huggingface.co/chat/tools/new を直接開きます)。
  2. 「Hugging Face Space URL」欄に作成したSpaceのURL(例:https://huggingface.co/spaces/your-username/arxiv-search)を貼り付けます。
  3. 入力すると、HuggingChatがGradioのスキーマを自動解析し、関数や引数設定を読み込みます。
  4. 以下の項目を設定します:
    • Tool Description(ツールの説明): LLMがツールの用途を理解できるよう簡潔に記述します(例:「Searches ArXiv for the latest AI and computer science preprints based on query keywords」)。
    • AI Function Name(関数名): スネークケースで一意の識別名を入力します(例:search_arxiv_preprints)。
    • Arguments(引数の属性設定):
      • Required(必須): モデルが呼び出し時に必ず値を指定する必要がある引数。
      • Optional(任意): デフォルト値があり、必要に応じてモデルが上書きできる引数。
      • Fixed(固定値): ツール作成時に値を固定し、モデルには変更させない引数(内部APIキーや固定フィルタに便利です)。
  5. 保存すると、個人ツールライブラリからいつでも呼び出せるようになります。

3. 専用リサーチアシスタント(Assistant)への統合

チャットセッションを開始するたびに設定をやり直す手間を省くため、HuggingChat Assistants を作成して検索設定とツールを固定化します。

  1. 「Settings > Assistants」または https://huggingface.co/chat/settings/assistants/new を開きます。
  2. 名前とアイコン: アシスタント名(例:「AI論文調査アシスタント」)を設定します。
  3. モデルの選択: ツール呼び出し能力が高いモデルを選択します。Cohere Command R+ や Llama 3.1 70B は、マルチステップの関数呼び出しや正確な出典参照に最適化されています。
  4. システムプロンプト(System Instructions): 事実確認の厳密さとツールの呼び出し方針を指定します:
    あなたは厳格な学術調査アシスタントです。
    最新の研究動向、ベンチマーク数値、公開日に関する質問には、回答する前に必ずWeb検索または連携されたツールを実行して事実を確認してください。
    取得した資料に記載されていない推測や推論は行わないでください。
    回答には必ず参照したWebページのタイトルとURLを明記してください。
    
  5. 機能とツールの割り当て:
    • 「Web search」を有効にして、常時Web検索を行えるようにします。
    • 「Community Tools」から、作成したツールや公開ツールを最大3つまで選択して追加します。
  6. 「Create」をクリックして保存します。完成したAssistantは専用URLで一般公開することも、プライベートな検証環境として運用することも可能です。

4. 研究室・エンタープライズ向けセルフホスト設定(chat-ui)

データの機密性が重視される環境では、Hugging Faceが公開しているオープンソースリポジトリ huggingface/chat-ui を用いて、独自の完全プライベートなHuggingChatインスタンスを構築できます。

環境変数設定(.env.local)

Web検索プロバイダーや社内推論エンドポイントの設定例:

# MongoDBデータベース
MONGODB_URL=mongodb://localhost:27017
MONGODB_DB_NAME=chat-ui

# OpenAI互換推論エンドポイント(vLLM、Ollama、llama.cpp、Hugging Faceルーターなど)
OPENAI_BASE_URL=https://router.huggingface.co/v1
OPENAI_API_KEY=hf_your_huggingface_access_token

# Web検索プロバイダーの設定
SERPER_API_KEY=your_serper_api_dev_key
# またはセルフホストのSearXNGを利用する場合:
# SEARXNG_QUERY_URL=http://localhost:8080/search?q=<query>&format=json

# スクレイピングとセキュリティ制御
USE_LOCAL_WEBSEARCH=false
WEBSEARCH_ALLOWLIST=[]
WEBSEARCH_BLOCKLIST=[]

この設定により、外部へのデータ漏洩を防ぎつつ、社内モデルとリアルタイム検索を組み合わせたセキュアなRAG基盤を構築できます。


実践におけるトレードオフと推奨事項

HuggingChatのWeb検索とCommunity Toolsを組み合わせることで、オープンアクセスモデルは静的な知識の枠を超え、最新の動向を自律的に調査・検証できる強力な研究パートナーへと進化します。

参考資料