Skip to content

ly-xxx/Offer-Patato

Repository files navigation

OfferPotato repo banner

OfferPotato

GitHub stars GitHub forks GitHub issues MIT license

local first Codex CLI managed TypeScript 5.9 React 19 SQLite indexed Chinese and English docs

English README · 技术报告 · mywork 指南 · 常见问题

Try OfferPotato Demo

在线试用入口(无需本地安装)

如果你正在准备技术面试,大概率会遇到这三个死局:

  1. “结合你的项目讲讲?” —— 八股文背得再熟,面试官一问怎么落地到你的项目里,大脑直接空白。
  2. “收藏从未停止,学习从未开始” —— 存了上百个面经和教程仓库,零散破碎,根本不知道从哪看起,也连不成一条学习主线。
  3. “AI 模拟面试太水” —— 用通用 AI 辅助,它只会吐出干巴巴的标准答案,根本不会像真实的面试官那样抓着细节连环追问。

OfferPotato 就是为了打破这个局面而生的。 它不是另一个平铺直叙的“八股文汇总”仓库,而是一个面试准备工作台。你只需要提供三样东西:学习指南面经题库你的个人材料(代码/论文/笔记)。它会把这些整合成一个串联的知识域,不仅告诉你这题怎么答,还会翻出你的代码告诉你**“结合你的这个项目,你应该这么聊”**。

核心工作流

输入 OfferPotato 的处理 输出
主线学习文档 切分章节、提取知识点、建立路径 可顺畅阅读的主线文档站
面经题库 去重、分类、关联知识点 挂载在章节底部并高亮的面经集合
mywork/ (个人材料) 递归扫描、相关性评估、保守引用 结合你真实项目经验的个性化回答
Codex 受管调用、任务化运行、实时刷新 批量生成答案、压力面试对练、文档翻译

OfferPotato 不绑定特定技术栈。无论你是准备 LLM、前端、后端、算法还是其他方向,只要有“教程 + 面经 + 个人项目”,就可以套用这套工作流。

核心特性

  • 文档与题库联动:把完整的学习指南作为阅读主线,相关面经题目会作为“注脚”直接高亮在对应知识点处。
  • 结合经验生成答案:告别套话。AI 会优先读取 mywork 中的个人项目代码、实验记录或笔记,为你量身定制回答逻辑。找不到相关经验时,也会诚实地回归知识点本身。
  • 压力面试模式:生成答案只是开始。系统会扮演面试官,针对你的回答继续卡边界、抠细节,进行多轮深度追问。
  • 沉浸式 AI 工作台:内置受管 Codex 浮窗,支持在阅读文档时直接追问、补充文件或修改正文,所见即所得。
  • 面经一键导入:支持直接粘贴文本或截图 OCR 导入新题目,自动结构化入库。

快速开始

仓库内置了公开的测试数据,即便你还没整理好自己的资料,也可以直接跑起来体验整套界面和工作流。

git clone https://github.com/ly-xxx/Offer-Patato.git
cd Offer-Patato
npm install
npm run setup:serve

该脚本会自动完成检查、同步公开源、构建 SQLite 索引及前后端,并在 6324 端口启动服务。启动后直接访问:http://127.0.0.1:6324

(注:请确保本地已配置好可用的 codex / codex-cli,OfferPotato 本身不提供大模型 API,需自行解决调用渠道)

首次上手建议

  1. 使用内置示例源启动站点,熟悉主界面布局。
  2. 进入设置页,将 mywork 路径绑定到你真实的本地项目目录。
  3. 启动索引任务,等待你的代码/笔记被纳入知识库。
  4. 打开一篇主线文档,查看底部的关联题目。
  5. 挑选一题生成个性化答案,并尝试进入“压力面试模式”进行对练。

GitHub Pages Demo(自动同步)

仓库已包含 GitHub Pages 自动发布工作流:.github/workflows/pages.yml
当前发布的是 web/ 前端本体(与你本地 UI 一致),但会在部署时自动切到 demoMode

  • 前端请求会转到 web/public/demo-api/*.json 示例数据
  • 写操作(生成答案、重建索引、导入等)会被禁用
  • 不会调用后端,也不会触发模型 token 消耗

开启步骤

  1. 打开仓库 Settings -> Pages
  2. Build and deployment 选择 Source: GitHub Actions
  3. 推送一次 main 分支,等待 Deploy Web Demo To GitHub Pages 工作流完成。

展示数据与 Demo 配置

你可以直接改这些文件来更新线上展示内容:

  • web/public/demo-api/meta.json
  • web/public/demo-api/questions.json
  • web/public/demo-api/questions/*.json
  • web/public/demo-api/documents*.json
  • web/public/demo-api/work-projects*.json

工作流会在发布时自动生成 runtime-config.json 并启用 demoMode

{
  "apiBaseUrl": ".",
  "wsBaseUrl": ".",
  "demoMode": true
}

更新文件并推送后,Pages 页面会自动同步。

界面预览

主工作台

主线文档、知识高亮、章节题目、mywork 引用和 Codex 浮窗全部集成在单页面内。

OfferPotato 主工作台总览

全局检索与文档联动

检索结果同时命中题库与主线,点击直达原文上下文。

命中题库与主线 直达对应文档
OfferPotato 全局检索与工作台总览 OfferPotato 搜索结果与主线文档联动

个性化答案与追问

不只是标准答案,而是包含开场白、项目依据、知识骨架及高频追问的完整回答包。

个性化答案总览

结合项目依据 知识骨架与生成记录 后续追问与溯源
个性化答案开头与项目依据 个性化答案中的知识骨架与生成记录 个性化答案中的下一轮追问与引用回溯

压力面试模式

模拟真实面试场景,逼迫你理清思路并应对细节追问。

答不上来时,引导说出推导路径 回答后,继续深挖细节
面试官压力模式第一轮追问 面试官压力模式第二轮回答后的继续追问

主题配置

提供多套主题,适配长期阅读。

雾青 石墨 砂页
OfferPotato 雾青主题 OfferPotato 石墨主题 OfferPotato 砂页主题

目录结构与数据源

仓库默认包含公开示例,详见 docs/SOURCES.md。系统会自动识别以下结构:

sources/
├── documents/           # 存放主线学习文档
│   └── <你的教程目录>/
└── question-banks/      # 存放面经题库
    └── <你的题库目录>/

关于 mywork

建议将你准备用来面试的项目 README、论文草稿、代码、实验记录或复盘笔记放入 ./mywork/ 目录中。该目录已被加入 .gitignore,不会被提交到远程。OfferPotato 采用保守扫描策略,仅在相关度足够高时才会进行引用关联,避免强行匹配。更多组织建议请参考 docs/MYWORK.md

常用命令

  • npm run bootstrap: 同步配置中声明的 Git 公开源
  • npm run build:data: 构建 SQLite 索引
  • npm run refresh:data: 刷新来源并重建索引
  • npm run batch:generate: 批量生成个性化答案
  • npm run setup:serve: 一键安装、建索引、构建并启动
  • npm run clean:data: 清理数据库、缓存与中间产物

更多文档

Star History

Star History Chart

About

我是OfferPotato,帮你全方位准备任何面试。输入面经和你现阶段的工作,即可生成成体系的,结合你工作内容的个性化答案。支持面试官压力模式,完全本地化部署保证隐私,只要配了codex-cli就可以直接使用。

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors