这是一个基于 Next.js 和 LangChain 构建的旅游 AI 助手网站,提供目的地推荐、行程规划、旅游问答和全球天气查询服务,支持多语言国际化。
- 目的地推荐:根据用户的预算、旅行天数、风格和兴趣,推荐最适合的旅游目的地
- 行程规划:为特定目的地创建详细的日程安排
- 旅游问答:回答用户关于旅游的各种问题
- 全球天气查询:查询全球任何地点的实时天气和未来天气预报,支持 Mapbox 地图定位
- 多语言支持:支持英文、中文和日文三种语言
- 响应式设计:完全兼容移动端和桌面端
- 现代化界面:使用 Tailwind CSS 构建的美观界面
- 前端框架:Next.js 14
- AI 集成:LangChain
- 语言模型:OpenAI GPT
- 地图服务:Mapbox
- 天气 API:OpenWeatherMap
- 国际化:next-intl
- 样式:Tailwind CSS
- 图标:React Icons
- Node.js 18.x 或更高版本
- OpenAI API 密钥
- Mapbox API 密钥
- OpenWeatherMap API 密钥
- 克隆仓库
- 安装依赖:
npm install- 配置环境变量:
创建一个 .env.local 文件并添加必要的 API 密钥:
OPENAI_API_KEY=your_openai_api_key_here
MAPBOX_ACCESS_TOKEN=your_mapbox_access_token_here
OPENWEATHERMAP_API_KEY=your_openweathermap_api_key_here
- 启动开发服务器:
npm run dev- 打开浏览器访问 http://localhost:3000
/src
/app # Next.js App Router
/[locale] # 国际化路由
/api # API 路由
/travel # 旅游相关 API
/weather # 天气 API
/recommend # 目的地推荐页面
/itinerary # 行程规划页面
/qa # 旅游问答页面
/weather # 天气查询页面
layout.tsx # 根布局
page.tsx # 首页
/components # 可复用组件
MapboxSearch.tsx # Mapbox 地点搜索组件
WeatherDisplay.tsx # 天气显示组件
LanguageSelector.tsx # 语言选择器组件
MobileMenu.tsx # 移动端菜单
/messages # 国际化消息
en.json # 英文
zh.json # 中文
ja.json # 日文
/utils
langchain.ts # LangChain 工具和配置
weather.ts # 天气 API 工具
middleware.ts # 国际化中间件
该项目支持以下语言:
- 英文 (en)
- 中文 (zh)
- 日文 (ja)
语言切换通过 URL 路径前缀实现,例如:
/en/weather- 英文版天气页面/zh/weather- 中文版天气页面/ja/weather- 日文版天气页面
- 在
/src/messages目录中创建新的语言文件,例如fr.json - 在
middleware.ts中的locales数组中添加新的语言代码 - 在
LanguageSelector组件中添加新的语言选项
要添加新的 LangChain 功能,可以在 /src/utils/langchain.ts 中创建新的链,然后在 API 路由中使用它们。
该项目可以部署到 Vercel、Netlify 或任何支持 Next.js 的平台。确保在部署环境中设置所有必要的环境变量。
MIT