ollama-deep-researcherを試す
はじめに
この記事では、ollama-deep-researcherを試します。
ollama-deep-researcherは、ollamaがホストするローカルLLMを使用する、リサーチアシスタントです。
LangChainのチームが開発をしているOSSのDeep Researchです。
ollamaを使っているため、ローカルでLLMを使用でき、API料金が発生せず、ローカルで色々と試せます。(Web検索を利用するためのAPI料金は発生します)
ollama-deep-researcherを動かす
https://github.com/langchain-ai/ollama-deep-researcher?tab=readme-ov-file#-quickstart に従って、試していきます。
ollamaでdeepseek-r1:8bをダウンロード
ollamaをダウンロードしていない場合は、https://ollama.com/download からダウンロードします。
ローカルLLMとして、deepseek-r1:8bを取得します。
ollama pull deepseek-r1:8b
リポジトリのclone
git clone https://github.com/langchain-ai/ollama-deep-researcher.git
cd ollama-deep-researcher
perplexityのAPIクレジット購入
今回はperplexityで試してみました。
Googleアカウントの無料版で登録しました。
https://www.perplexity.ai/settings/api で支払いのセットアップを押下すると、クレジットカードの登録画面になるので、カードを登録します。
すると、クレジットを購入できる画面になるので、クレジットを購入します。(最低購入額が$3だったので、$3で登録しました。)
利用可能なクレジットのところに「($3 保留中)」が出るので、少し待ちます。
2,3分ほどで、利用可能なクレジットのところに$3が加算され、APIキーの「生成」が押下できるようになりました。
環境変数の設定
cp .env.example .env
.envを編集します。取得したAPIキーを.envの以下に設定します。
PERPLEXITY_API_KEY=pplx-xxxxx # Get your key at https://www.perplexity.ai
Pythonの仮想環境を作成
https://github.com/langchain-ai/ollama-deep-researcher/blob/main/pyproject.toml#L10 を見ると、Python 3.9以降であれば、問題なさそうです。
python -m venv .venv
source .venv/bin/activate
LangGraph serverの起動
curl -LsSf https://astral.sh/uv/install.sh | sh
uvx --refresh --from "langgraph-cli[inmem]" --with-editable . --python 3.11 langgraph dev
LangGraph Studio UI
https://smith.langchain.com/studio/thread?baseUrl=http%3A%2F%2F127.0.0.1%3A2024 へアクセスします。
最初は、configurationタブに行き、以下を設定します。
- Local Llmを「deepseek-r1:8b」
- SearchAPIを「perplexity」
- Max Web Research Loopsを「3」
- Configuration Nameを任意の名前にします
設定が完了後に、Activeを押しておきます。
ollama-deep-researcherを動かす
ここまで来れば、ollama-deep-researcherを動かすことができます。
Research TopicのInputのところに色々入力して、動作を試してみましょう。
1回あたり(今回は、Max Web Research Loopsを「3」とした場合)perplexityのAPI消費は、$0.08でした。
おわりに
本記事では、ollama-deep-researcherを動かしました。
ollama-deep-researcherを使えば、ローカルLLMを使って、OpenAIのDeepResearchのような機能を試すことができます。
最後までお読み頂きありがとうございました。本記事が参考になれば、幸いです。
Discussion