gemini-fullstack-langgraph-quickstart
是一个由谷歌开源的示例项目,展示如何使用谷歌的Gemini模型和LangGraph框架构建一个全栈智能研究应用。前端使用React提供用户界面,后端通过LangGraph驱动的智能代理完成复杂的研究任务。这个项目能根据用户输入生成搜索查询,通过谷歌搜索API获取网页信息,分析信息缺口并迭代优化,最终输出带引用的详细答案。项目适合开发者学习如何结合大语言模型和开源框架,打造一个支持动态研究和对话的AI应用。它强调透明的研究过程,适合需要深入研究或验证信息的场景。
功能列表
- 动态查询生成:基于用户输入,Gemini模型生成相关搜索查询。
- 网页信息检索:通过谷歌搜索API获取实时网页数据。
- 反思与优化:代理分析搜索结果,识别信息缺口,迭代优化查询。
- 答案合成与引用:综合收集的信息,生成带网页引用的详细答案。
- 全栈架构:React前端提供交互界面,FastAPI后端处理复杂逻辑。
- 命令行研究:支持通过命令行快速运行单次研究任务。
- 实时流式输出:使用Redis实现后台任务的实时数据流。
- 状态持久化:Postgres数据库存储代理状态、线程和长期记忆。
使用帮助
安装流程
要使用gemini-fullstack-langgraph-quickstart
,需要完成以下安装步骤,确保环境配置正确。以下是详细的安装和运行指南:
- 克隆项目仓库
在终端运行以下命令,克隆项目到本地:git clone https://github.com/google-gemini/gemini-fullstack-langgraph-quickstart.git cd gemini-fullstack-langgraph-quickstart
- 获取API密钥
- Gemini API密钥:访问Google AI Studio,注册并生成Gemini API密钥。
- LangSmith API密钥(可选):访问LangSmith官网,注册并生成密钥,用于调试和观察。
- 配置环境变量
进入backend
目录,创建.env
文件并添加API密钥:cd backend echo 'GEMINI_API_KEY="YOUR_ACTUAL_API_KEY"' > .env echo 'LANGSMITH_API_KEY="YOUR_ACTUAL_LANGSMITH_API_KEY"' >> .env
将
YOUR_ACTUAL_API_KEY
替换为实际的Gemini API密钥,YOUR_ACTUAL_LANGSMITH_API_KEY
替换为LangSmith密钥(如果使用)。 - 安装后端依赖
在backend
目录下,安装Python依赖:pip install .
确保Python版本为3.8或以上,且
pip
指向正确版本。 - 安装前端依赖
返回项目根目录,进入frontend
目录,安装Node.js依赖:cd ../frontend npm install
- 运行开发服务器
- 同时运行前后端:在项目根目录运行以下命令,启动前后端开发服务器:
npm run dev
前端默认运行在
http://localhost:5173/app
,后端API运行在http://127.0.0.1:2024
。 - 单独运行后端:在
backend
目录运行:langgraph dev
这会启动后端服务并打开LangGraph UI。
- 单独运行前端:在
frontend
目录运行:npm run dev
- 同时运行前后端:在项目根目录运行以下命令,启动前后端开发服务器:
- 使用Docker部署(可选)
如果希望通过Docker运行,需先安装Docker和Docker Compose。然后执行:docker build -t gemini-fullstack-langgraph -f Dockerfile . GEMINI_API_KEY=<your_gemini_api_key> LANGSMITH_API_KEY=<your_langsmith_api_key> docker-compose up
应用运行后,访问
http://localhost:8123/app
查看界面。
功能操作流程
1. 通过Web界面进行研究
- 访问前端:打开浏览器,访问
http://localhost:5173/app
。 - 输入查询:在输入框中输入研究问题,例如“2025年可再生能源的最新趋势”。
- 查看研究过程:提交后,界面会显示代理的每一步操作,包括生成查询、搜索网页、分析结果等。
- 获取答案:最终答案会以文本形式显示,包含引用的网页链接。
2. 通过命令行进行快速研究
- 在
backend
目录运行:python examples/cli_research.py "你的研究问题"
- 代理会直接在终端输出研究结果和引用,适合快速验证。
3. 实时流式输出
- 项目使用Redis作为发布-订阅经纪人,确保后台任务的实时输出。需要在本地安装Redis并确保其运行。
- 配置Redis:在
.env
文件中添加Redis连接信息(默认使用redis://localhost:6379
)。 - 流式输出会在Web界面或终端实时显示研究进度。
4. 数据持久化
- 项目使用Postgres存储代理状态和线程信息。需要在本地安装Postgres并配置连接:
echo 'DATABASE_URL="postgresql://user:password@localhost:5432/dbname"' >> .env
- 数据库会记录每次研究的上下文,便于长期记忆和状态管理。
注意事项
- 确保网络连接稳定,因为代理需要通过谷歌搜索API获取实时数据。
- 如果遇到API密钥错误,检查
.env
文件是否正确配置。 - 项目需要大量计算资源,建议在性能较好的设备上运行。
应用场景
- 学术研究
研究人员可以使用该应用快速收集某领域的最新信息。例如,输入“量子计算的最新进展”,代理会生成相关查询,搜索学术资源并整理答案,附上可靠来源链接。 - 商业情报分析
企业分析师可利用该工具研究市场趋势或竞争对手动态。例如,输入“2025年电动车市场趋势”,应用会提供详细报告和数据来源。 - 教育辅助
学生和教师可通过该工具快速验证信息或准备课程材料。例如,输入“气候变化的影响”,可获得带引用的综合答案,适合课堂讨论。 - 技术开发参考
开发者可学习如何结合Gemini模型和LangGraph框架,构建类似的研究代理,探索AI驱动的应用开发。
QA
- 需要哪些API密钥才能运行项目?
必须提供Gemini API密钥,可从Google AI Studio获取。LangSmith API密钥为可选,用于调试和观察。 - 如何查看代理的研究过程?
在Web界面中,提交查询后,界面会实时显示代理的每一步操作,包括查询生成、网页搜索和反思过程。 - 项目支持哪些编程语言?
后端使用Python(LangGraph和FastAPI),前端使用JavaScript(React)。Docker用于部署。 - 是否支持离线运行?
不支持完全离线运行,因为代理需要通过谷歌搜索API获取实时网页数据。