[2025年版] (完全無料) Ollama + Tavily でAI検索チャットボット作ってみた
はじめに
"現代のHello Worldを作ってみたい!"
ということで、ChatGPTやPerplexityのような「自分で調べて回答する」AIエージェントを、無料枠のツールだけで構築してみました。
実装はこちらにあります。
*2025年12月 現在は無料ですが、将来的に無料であり続ける保証はありません。
技術スタック
今回使用した構成は以下の通りです。
| 役割 | 技術 | 備考 |
|---|---|---|
| LLM | Ollama | gpt-oss:120を無料で実行 |
| Orchestration | LangGraph + DeepAgents | エージェントの制御 |
| Search API | Tavily | AI向け検索エンジン(無料枠活用) |
| Backend | FastAPI | 非同期ストリーミング対応 |
| Frontend | Next.js |
assistant_ui & shadcn/ui 利用 |
システム構成図
環境構築
LLM: Ollama
PCにOllamaをインストールします。
ブラウザからOllamaにサインアップしたあと、CLIから、
ollama signin
すると、デバイスがOllamaに登録されます。これでCloudのモデルを使うことができます。
Ollama Keysを見るとサインイン状況がわかります。
ollama run gpt-oss:120b-cloud
で、会話できれば無料でgpt-oss:120b-cloudを使えます!
もちろん、API経由でも使えますので、これを使います。
AI検索ツール: Tavily
Tavilyにログインして、ここ で、tavilyのAPI Keyを取得して環境変数TAVILY_API_KEYに登録します。
実装
実装はサクッと済ませたいので、既存のライブラリを存分に活用した上でAIに実装してもらいました。
AI Agent構築
AI Agentの構築には、LangChainのLangGraph 上に構築された DeepAgents を使います。
DeepAgentsについてはこちらを参照ください。
AI検索ツールには月1000回の無料枠があるTavilyをDeepAgentが使えるようにします。
internet_searchをツールとして定義して、
create_deep_agent(
model=model,
tools=[internet_search],
system_prompt=SEARCH_AGENT_PROMPT,
checkpointer=checkpointer,
)
だけで、検索してまとめてくれるAI Agentができます。
実装は以下にあります。
*Google GeminiのAPI無料枠でやろうとしたけど、すぐQuotaに引っかかって諦めた残骸があります。
ローカルLLMではさすがに性能が足りず、Ollama Cloudにたどり着きました。
Backend API
Frontendの実装には、assitant-uiを使うため、
Chat用のAPIはVercel AI SDKに合わせます。
LangGraphの会話管理であるThreadに対してCRUD処理を作ります。
これで過去の会話を思い出したり、会話の続きをすることができます。
Frontend
Next.js 、 assistant_ui 、 shadcn/ui で作ります。
チャットUIを爆速で構築できます。
完成図
こんな感じです。もはや説明不要かと思います。
実家に帰ったような、安心感がありますね!
FastAPIとNext.jsを使わずとも、Gradioなど使えばいいじゃないかとか、そもそもChatGPTでいいじゃないかという声も聞こえてきますが・・・やってみたかったのです!
まとめ
あっという間にAI チャットボットを作ることができました。
-
Ollama Cloud (gpt-oss) と Tavily の無料枠を組み合わせることで、サーバー代・API代ともに0円で運用可能(2025年現在)
-
DeepAgents を採用することで、簡単にAI検索エージェントを実現
-
Next.js と assistant-ui を使うことで、プロトタイプとは思えない本格的なチャット体験を提供
実用的には、目的に応じてシステムプロンプトやコンテキストを変更したり、RAGなどを導入することで好みのAI Agentを作れるかなと思います。
