Skip to content

Red book chrome extension for easy itinerary plan. 小红书旅游攻略助手, Chrome插件版。

Notifications You must be signed in to change notification settings

Yet-Another-AI-Project/kiwi-pin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

Kiwi Pin Chrome Extension

Kiwi Pin 是一个 Chrome 扩展,帮助在浏览小红书旅游攻略时快速收藏帖子、解析地点并可视化到地图里。本仓库包含完整的前端实现(Manifest V3、React + Vite + Tailwind + Zustand),所有功能均在浏览器本地完成,无后端依赖。

项目介绍

界面预览

Kiwi Pin 截图 1

Kiwi Pin 截图 2

Kiwi Pin 截图 3

核心功能

  1. 小红书帖子收藏

    • 在小红书探索页和搜索结果页自动注入收藏按钮
    • 一键收藏帖子,保存标题、内容、标签、图片等信息
    • 自动下载并缓存帖子图片到本地,避免图片链接过期
  2. AI 智能解析地点

    • 使用 LLM(大语言模型)自动识别帖子中提到的地点
    • 支持文本和图片双重识别(Vision 模式)
    • 批量解析多个帖子,提高效率
  3. 地图可视化

    • 使用 Mapbox 地图展示解析出的地点
    • 支持 Google Places API 和 Mapbox Geocoding API 进行地点搜索和坐标定位
    • 在地图上标记地点,支持导航到 Google Maps
    • 支持按文件夹组织地点,方便行程规划
  4. 数据管理

    • 文件夹管理:创建、编辑、删除文件夹,分类管理收藏的帖子
    • 数据导入导出:支持 JSON 格式的数据备份和恢复
    • 图片缓存管理:查看缓存大小,设置自动清理阈值

技术特点

  • 纯前端实现:所有功能在浏览器本地完成,无需后端服务器
  • 隐私安全:数据仅存储在本地浏览器,不会上传到任何服务器
  • 离线可用:收藏的帖子和图片缓存在本地,可离线查看
  • 现代化技术栈:React 19 + TypeScript + Vite + Tailwind CSS + Zustand

开发准备

cd ~/kiwi-pin/kiwi-extension
npm install

本地开发(监听编译)

Manifest V3 扩展无法直接使用浏览器 Dev Server,需要持续编译打包后再在 Chrome 中加载 dist 目录。

# 持续监听构建(极推荐开发时使用)
npm run dev

该命令会以 development 模式执行 vite build --watch,增量产出到 dist/。每次保存代码后,dist 会更新,刷新扩展即可看到最新效果。

产出正式包

npm run build

dist/ 将包含发布所需的所有文件,可直接打包上传或在 Chrome 中以“加载已解压的扩展程序”形式载入。

在 Chrome 中调试

  1. 打包或监听构建后,打开 chrome://extensions
  2. 开启右上角“开发者模式”
  3. 点击“加载已解压的扩展程序”,选择 kiwi-extension/dist 目录
  4. 针对不同模块的调试方式:
    • Content Script:在小红书页面(https://www.xiaohongshu.com/explore)打开 DevTools → Sources → Content scripts,即可看到 content/index.js
    • Background Service Worker:在扩展管理页点击“service worker”,弹出新 DevTools 窗口,可查看日志
    • Dashboard / Options / Popup 页面:直接在扩展页面中右键“检查”,即可使用常规 DevTools
  5. 如需更新代码:
    • 运行 npm run dev 保持 watch
    • 在扩展管理页点击“重新加载”按钮(或开启 auto reload extensions 插件自动刷新)
    • 刷新目标页面(例如小红书)以确保最新脚本生效

配置说明

在使用 Kiwi Pin 之前,需要配置以下 API Key 和 Token。进入扩展的配置页(右键扩展图标 → "选项",或在扩展管理页点击"详细信息" → "扩展选项")进行设置。

必需配置

1. LLM API Key(必需)

用于 AI 解析帖子中的地点信息。

支持的 LLM 服务:

  • OpenAI(默认):https://api.openai.com/v1
  • 其他兼容 OpenAI API 格式的服务(如 Azure OpenAI、其他代理服务等)

配置步骤:

  1. 获取 API Key:
    • OpenAI:访问 OpenAI Platform 创建 API Key
    • 其他服务:根据服务提供商获取相应的 API Key
  2. 在配置页填写:
    • API Base URL:API 服务的基础地址(默认:https://api.openai.com/v1
    • API Key:你的 API Key
    • 模型:使用的模型名称(默认:gpt-4o-mini
    • 启用 Vision:是否启用图片识别功能(推荐开启)

推荐配置:

  • 模型:gpt-4o-mini(性价比高)或 gpt-4o(准确度更高)
  • 启用 Vision:开启(可识别图片中的地点信息)
  • Temperature:0.2(较低的值保证输出稳定性)
  • 超时时间:30000ms(30秒)

2. Mapbox Access Token(必需)

用于地图显示和地点搜索。

配置步骤:

  1. 访问 Mapbox 注册账号
  2. 登录后进入 Account → Tokens
  3. 创建或复制你的 Access Token(默认 token 即可使用)
  4. 在配置页填写 Mapbox Access Token

注意事项:

  • Mapbox 提供免费额度(每月 50,000 次地图加载)
  • 超出免费额度后需要付费,但个人使用通常不会超出

3. Google Places API Key(必需)

用于地点搜索和坐标定位。

配置步骤:

  1. 访问 Google Cloud Console
  2. 创建新项目或选择现有项目
  3. 启用 Places API
    • 进入"API 和服务" → "库"
    • 搜索"Places API"
    • 点击"启用"
  4. 创建 API Key:
    • 进入"API 和服务" → "凭据"
    • 点击"创建凭据" → "API 密钥"
    • 复制生成的 API Key
  5. (可选)限制 API Key 使用范围:
    • 点击创建的 API Key 进行编辑
    • 在"API 限制"中选择"限制密钥"
    • 仅勾选"Places API"
    • 在"网站限制"中添加 chrome-extension://*(用于扩展)
  6. 在配置页填写 Google Places API Key

注意事项:

  • Google Places API 有免费额度(每月 $200 免费额度,约 28,000 次请求)
  • 超出免费额度后按使用量付费
  • 建议设置 API Key 使用限制,避免意外费用

可选配置

地图默认设置

  • 默认中心点:地图初始显示的中心坐标(默认:北京 39.9042, 116.4074
  • 默认缩放级别:地图初始缩放级别(默认:5)

缓存设置

  • 自动清理阈值:当缓存大小超过此值时自动清理(默认:512 MB)
  • 可在配置页查看当前缓存大小,手动清理缓存

配置检查

配置完成后,在收藏页面(Dashboard)会显示配置状态:

  • ✅ 绿色:配置完整
  • ⚠️ 黄色:缺少部分配置
  • ❌ 红色:缺少必需配置

所有必需配置(LLM API Key、Mapbox Token、Google Places API Key)都配置完成后,才能正常使用所有功能。

使用说明

基本使用流程

  1. 收藏帖子

    • 访问小红书探索页(https://www.xiaohongshu.com/explore)或搜索结果页
    • 点击页面右下角的 Kiwi Pin 浮动按钮,启用收藏功能
    • 帖子右上角会出现 ➕ 按钮,点击即可收藏
    • 收藏的帖子会自动保存标题、内容、标签、图片等信息
  2. 解析地点

    • 打开收藏页面(点击浮动按钮菜单中的"进入收藏页面")
    • 在帖子列表中选择要解析的帖子
    • 点击"批量解析"按钮,系统会使用 LLM 自动识别帖子中的地点
    • 解析完成后,系统会使用 Google Places 和 Mapbox 搜索地点的坐标
  3. 查看地图

    • 在收藏页面右侧地图上可以看到解析出的地点标记
    • 点击地点标记可以查看详细信息
    • 点击导航按钮可以跳转到 Google Maps 进行导航
  4. 管理文件夹

    • 创建文件夹来分类管理收藏的帖子
    • 将帖子移动到不同文件夹,方便行程规划
    • 在地图上可以按文件夹筛选显示地点

高级功能

  • 数据备份:在配置页可以导出所有收藏数据为 JSON 文件,也可以导入之前备份的数据
  • 图片缓存:帖子图片会自动下载到本地,即使原链接过期也能正常查看
  • 批量操作:支持批量解析、批量删除等操作,提高效率

常用调试技巧

  • Content Script 内已加入 toast 与日志,可快速验证收藏逻辑
  • Dashboard 页在地图上展示解析出的 Marker,支持导出行程数据
  • Options 页可直接触发缓存清理、查看缓存大小,便于验证图片下载逻辑
  • 若遇到权限或 API 调用失败,可在 background Service Worker 的 console 查看详细报错

后续计划

  • 接入更多地图能力(如路线规划)
  • 增加收藏数据的离线备份与导入校验提示
  • 进一步完善单元测试与 E2E 测试(当前仅保留基础脚手架)

About

Red book chrome extension for easy itinerary plan. 小红书旅游攻略助手, Chrome插件版。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published