NLWeb サーバーをローカルで動かしてみた
こんにちは、酒井です!
株式会社 EGGHEAD(エッグヘッド)という「製造業で生成 AI を活用したシステム開発」をしている会社の代表をしております。
Microsoft Build 2025でMicrosoftがNLWebという新しいプロジェクトを発表されたようなので実際にサンプルコードを動かしてみました。
NLWebの概要については以下の記事も併せてどうぞ!
以下では、下記の手順でローカル環境で Qdrant ベクターデータベースと RSS フィードを組み合わせて NLWeb サーバーを立ち上げる手順を書いています!
前提条件
- Python 3.10 以上がインストールされていること
- OpenAI API キーを取得し、環境変数
OPENAI_API_KEY
に設定済みであること
セットアップ手順
-
リポジトリのクローン
ターミナルで以下を実行し、NLWeb のソースコードを取得します。git clone https://github.com/microsoft/NLWeb cd NLWeb
-
仮想環境の作成と有効化
Python の仮想環境を用意し、アクティベートします。python -m venv venv source venv/bin/activate
-
依存パッケージのインストール
プロジェクト直下のcode
ディレクトリに移動し、必要なライブラリをインストールします。cd code pip install -r requirements.txt
-
環境変数ファイルの準備
.env.template
をコピーし、OpenAI API キーを.env
に設定します。cp .env.template .env
.env
ファイル内で以下のように編集してください:OPENAI_API_KEY=<あなたの OpenAI API キー>
※ Qdrant ローカル用の設定はデフォルトのままで問題ありません。
-
設定ファイルの更新(code/config フォルダ内)
各 YAML ファイルのprovider
を以下のように設定します。-
config_llm.yaml
provider: openai
-
config_embedding.yaml
provider: openai
-
config_retrieval.yaml
provider: qdrant_local
-
-
RSS フィードの読み込み
Zenn の「生成AI」トピックフィードを Qdrant にロードします。python -m tools.db_load "https://zenn.dev/topics/%E7%94%9F%E6%88%90ai/feed" "Zenn-生成AI"
-
サーバーの起動
以下のコマンドでアプリケーションを立ち上げます。python app-file.py
-
動作確認
ブラウザで http://localhost:8000/ を開くと、以下のようなチャット画面が表示されます。
まとめ
ここまで読んでいただきありがとうございました!
まだあまり解像度は高くないですが、Webページに標準でチャットボットが搭載されるようなイメージなんですかね。もう少し調べて分かったら追記していこうと思います。
参考
Discussion