Skip to content

Smart Travel AI Assistant: A Vibe Coding Project with Amazon Q Developer CLI.

Notifications You must be signed in to change notification settings

xiaomo1128/travel-ai-assistant

Repository files navigation

旅游AI助手 - Next.js 与 LangChain 集成项目

这是一个基于 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 密钥

安装步骤

  1. 克隆仓库
  2. 安装依赖:
npm install
  1. 配置环境变量:

创建一个 .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
  1. 启动开发服务器:
npm run dev
  1. 打开浏览器访问 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 - 日文版天气页面

自定义和扩展

添加新的语言

  1. /src/messages 目录中创建新的语言文件,例如 fr.json
  2. middleware.ts 中的 locales 数组中添加新的语言代码
  3. LanguageSelector 组件中添加新的语言选项

添加新的 LangChain 功能

要添加新的 LangChain 功能,可以在 /src/utils/langchain.ts 中创建新的链,然后在 API 路由中使用它们。

部署

该项目可以部署到 Vercel、Netlify 或任何支持 Next.js 的平台。确保在部署环境中设置所有必要的环境变量。

许可证

MIT

About

Smart Travel AI Assistant: A Vibe Coding Project with Amazon Q Developer CLI.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published