Google刚刚开源的这个项目,短短三天就斩获了14000多颗星,对于想理解并实践deepresearch的同学来说,简直是一大福音。快来看看吧,动手实践一下,马上可以集成到你自己的项目中,实现你的梦想。
Gemini Fullstack LangGraph Quickstart
该项目演示了一个使用 React 前端和 LangGraph 驱动的后端代理的全栈应用程序。该代理旨在通过动态生成搜索词、使用 Google 搜索进行网页查询、反思搜索结果以识别知识缺口,并不断优化搜索,直到能够提供包含引文的、支持充分的答案,从而对用户查询进行全面的研究。此应用程序是使用 LangGraph 和 Google Gemini 模型构建研究增强型对话式 AI 的示例。
特征
- 💬 具有 React 前端和 LangGraph 后端的全栈应用程序。
- 🧠 由 LangGraph 代理提供支持,用于高级研究和会话式 AI。
- 🔍 使用 Google Gemini 模型生成动态搜索查询。
- 🌐 通过 Google 搜索 API 集成网络研究。
- 🤔 通过反思推理来发现知识差距并改进搜索。
- 📄 根据收集到的来源的引文生成答案。
- 🔄 在开发过程中对前端和后端进行热加载。
项目结构
该项目分为两个主要目录:
frontend/:包含使用 Vite 构建的 React 应用程序。backend/:包含 LangGraph/FastAPI 应用程序,包括研究代理逻辑。
入门:开发和本地测试
按照以下步骤使应用程序在本地运行以进行开发和测试。
1. 先决条件:
- Node.js 和 npm(或 yarn/pnpm)
- Python 3.11+
GEMINI_API_KEY:后端代理需要 Google Gemini API 密钥。
- 导航到
backend/目录。 .env通过复制文件来创建一个名为的文件backend/.env.example。- 打开
.env文件并添加您的 Gemini API 密钥:GEMINI_API_KEY="YOUR_ACTUAL_API_KEY"
2.安装依赖项:
后端:
cd backend pip install .
前端:
cd frontend npm install
3.运行开发服务器:
后端和前端:
make dev
这将运行后端和前端开发服务器。打开浏览器并导航到前端开发服务器的 URL(例如http://localhost:5173/app)。
或者,您可以分别运行后端和前端开发服务器。对于后端,请在backend/目录中打开一个终端并运行langgraph dev。后端 API 将在 处可用http://127.0.0.1:2024。它还会打开一个浏览器窗口,指向 LangGraph UI。对于前端,请在目录中打开一个终端frontend/并运行npm run dev。前端将在 处可用http://localhost:5173。
后端代理的工作原理(高级)
后端的核心是 中定义的 LangGraph 代理backend/src/agent/graph.py。它遵循以下步骤:
- 生成初始查询:根据您的输入,它使用 Gemini 模型生成一组初始搜索查询。
- 网络研究:对于每个查询,它使用 Gemini 模型和 Google 搜索 API 来查找相关的网页。
- 反思与知识差距分析:代理会分析搜索结果,以确定信息是否充足或是否存在知识差距。它使用 Gemini 模型进行此反思过程。
- 迭代细化:如果发现差距或信息不足,它会生成后续查询并重复网络研究和反思步骤(最多配置的最大循环次数)。
- 最终确定答案:一旦研究被认为充分,代理就会使用 Gemini 模型将收集到的信息综合成一个连贯的答案,包括来自网络来源的引用。
CLI 示例
对于快速的一次性问题,您可以从命令行执行代理。该脚本backend/examples/cli_research.py将运行 LangGraph 代理并打印最终答案:
cd backend python examples/cli_research.py "What are the latest trends in renewable energy?"
部署
在生产环境中,后端服务器负责优化的静态前端构建。LangGraph 需要一个 Redis 实例和一个 Postgres 数据库。Redis 用作发布‑订阅代理,用于实现后台运行的流式实时输出。Postgres 用于存储助手、线程、运行、持久线程状态和长期内存,并使用“恰好一次”语义管理后台任务队列的状态。有关如何部署后端服务器的更多详细信息,请参阅LangGraph 文档。以下示例展示了如何构建包含优化的前端构建和后端服务器的 Docker 镜像并通过 运行它docker-compose。
注意:对于 docker‑compose.yml 示例,您需要一个 LangSmith API 密钥,您可以从LangSmith获取一个。
注意:如果您没有运行 docker‑compose.yml 示例或将后端服务器公开到公共互联网,则应将文件apiUrl中的更新frontend/src/App.tsx到您的主机。目前,docker‑compose 或开发环境 的apiUrl设置为。http://localhost:8123http://localhost:2024
1.构建Docker镜像:
从项目根目录运行以下命令:
docker build -t gemini-fullstack-langgraph -f Dockerfile .
2. 运行生产服务器:
GEMINI_API_KEY=<your_gemini_api_key> LANGSMITH_API_KEY=<your_langsmith_api_key> docker-compose up
打开浏览器并导航至http://localhost:8123/app/以查看该应用程序。API 可在 处获取http://localhost:8123。
使用的技术
- React (使用Vite ) ‑ 用于前端用户界面。
- Tailwind CSS——用于样式。
- Shadcn UI ‑ 用于组件。
- LangGraph——用于构建后端研究代理。
- Google Gemini ‑ 用于查询生成、反射和答案合成的 LLM。
许可协议
本项目遵循 Apache License 2.0 许可协议。详情请参阅LICENSE文件。

