Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

logan-xuan/Thinking

Repository files navigation

Thinking - AI 知识处理系统

License Python Node.js

Thinking 是一个类似 NotebookLM 的知识处理系统,帮助用户通过 AI 技术分析、总结和重新组织知识文档。支持多种知识输入源(文件上传、URL抓取),通过自然语言对话进行知识加工,最终生成 Markdown 或 PDF 格式的新文档。

✨ 核心特性

📚 多源知识输入

  • 文件上传:支持 PDF、Markdown 格式文档上传
  • URL 抓取:智能抓取网页内容,自动提取标题、正文、图片和表格,转换为 Markdown 文档
  • 图片处理:自动下载并本地化存储图片,使用相对路径引用

🎨 三栏式界面设计

  • 左栏 - 文件库:管理所有上传和抓取的知识文档
  • 中栏 - 选中文件:灵活选择一个或多个文档作为分析输入
  • 右栏 - 加工区:对话式 AI 交互界面,实时生成和预览内容

🤖 智能对话分析

  • 多轮对话:通过自然语言与 AI 交互,逐步完善分析需求
  • 上下文理解:基于选中的文档内容进行智能分析和总结
  • 实时响应:流式输出,即时查看 AI 生成的内容

📝 多格式导出

  • Markdown 导出:保留原始格式和结构
  • PDF 导出:专业排版,适合打印和分享
  • 思维导图生成:自动从内容生成可视化 XML 思维导图

🔧 灵活配置

  • 支持多种大模型:Qoder Assistant、百炼平台、智谱 GLM-4-Flash
  • 本地数据存储,保护隐私安全
  • 无需用户认证,开箱即用

🚀 快速开始

环境要求

  • Python: 3.11 或更高版本
  • Node.js: 18 或更高版本
  • 系统: macOS, Linux, Windows

安装步骤

1. 克隆项目

git clone git@github.com:logan-xuan/Thinking.git
cd Thinking

2. 配置后端

cd backend
# 创建虚拟环境
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 安装依赖
pip install -r requirements.txt
# 配置环境变量
cp .env.example .env
# 编辑 .env 文件,配置大模型和存储路径

后端环境变量配置 (.env):

# 数据库配置
DATABASE_URL=sqlite:///xknowledge/db/thinking.db
# 大模型配置(选择其一)
LLM_PROVIDER=qoder # 可选: qoder, bailian, zhipu
# 百炼平台配置(如果使用 bailian)
BAILIAN_API_KEY=your_api_key
BAILIAN_MODEL=qwen-turbo
# 智谱配置(如果使用 zhipu)
ZHIPU_API_KEY=your_api_key
ZHIPU_MODEL=glm-4-flash
# 存储路径
STORAGE_PATH=xknowledge
# 开发模式
DEBUG=true

3. 安装 Playwright(用于高级网页抓取)

# 在 backend 目录下
playwright install chromium

4. 配置前端

cd ../frontend
# 安装依赖
npm install
# 配置环境变量
cp .env.example .env
# 编辑 .env 文件,配置 API 地址

前端环境变量配置 (.env):

VITE_API_BASE_URL=http://localhost:8000

运行项目

启动后端服务

cd backend
source venv/bin/activate # Windows: venv\Scripts\activate
python -m uvicorn src.main:app --reload --host 0.0.0.0 --port 8000

后端服务将运行在 http://localhost:8000

启动前端服务

打开新的终端窗口:

cd frontend
npm run dev

前端服务将运行在 http://localhost:5173

🎉 开始使用

  1. 在浏览器中打开 http://localhost:5173
  2. 在左侧文件库上传 PDF/MD 文件,或输入 URL 抓取网页内容
  3. 从文件库中选择一个或多个文档到中间栏
  4. 在右侧对话框输入分析需求,与 AI 交互
  5. 导出生成的内容为 Markdown 或 PDF 格式

📖 使用指南

1. 上传知识文档

文件上传

  • 点击文件库顶部的"上传文件"按钮
  • 支持 PDF 和 Markdown 格式
  • 文件大小限制:50MB

URL 抓取

  • 点击"添加 URL"按钮
  • 输入完整的网页地址
  • 系统自动抓取标题、正文、图片和表格
  • 生成的 Markdown 文档自动保存到文件库

2. 选择分析文档

  • 在左侧文件库中点击文档名称
  • 选中的文档将显示在中间栏
  • 支持多选,组合不同文档进行综合分析
  • 点击"清空选择"可取消所有选中

3. AI 对话分析

在右侧对话框输入指令,例如:

  • "请总结这些文档的核心观点"
  • "提取所有技术要点并整理成清单"
  • "基于这些内容写一篇技术文章"
  • "生成这些知识的思维导图"

4. 导出生成内容

  • 点击"导出 Markdown"生成 .md 文件
  • 点击"导出 PDF"生成 .pdf 文件
  • 点击"生成思维导图"查看 XML 格式的思维导图可视化

🗂️ 项目结构

Thinking/
├── backend/ # Python 后端服务
│ ├── src/
│ │ ├── api/ # API 路由
│ │ ├── db/ # 数据库配置
│ │ ├── models/ # 数据模型
│ │ ├── services/ # 业务逻辑
│ │ └── main.py # 应用入口
│ ├── tests/ # 测试代码
│ └── requirements.txt # Python 依赖
│
├── frontend/ # React 前端应用
│ ├── src/
│ │ ├── components/ # UI 组件
│ │ ├── services/ # API 服务
│ │ ├── stores/ # 状态管理
│ │ └── pages/ # 页面
│ └── package.json # Node.js 依赖
│
├── xknowledge/ # 数据存储目录
│ ├── documents/ # 上传的文档
│ ├── images/ # 图片资源
│ ├── exports/ # 导出的文件
│ └── db/ # SQLite 数据库
│
├── specs/ # 功能规格文档
├── openspec/ # OpenSpec 变更管理
└── README.md # 项目说明

🛠️ 技术栈

后端

  • 框架: FastAPI
  • 数据库: SQLite + SQLAlchemy
  • PDF 处理: PyMuPDF
  • 网页抓取: Trafilatura, BeautifulSoup4, Playwright
  • PDF 生成: WeasyPrint
  • 大模型: OpenAI SDK(兼容多种模型)

前端

  • 框架: React 19
  • 构建工具: Vite
  • 样式: TailwindCSS 4
  • 状态管理: Zustand
  • UI 组件: 自定义组件库
  • 思维导图: Markmap

🔌 API 文档

启动后端服务后,访问以下地址查看自动生成的 API 文档:

🤝 贡献指南

欢迎提交 Issue 和 Pull Request!

开发流程

  1. Fork 本仓库
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'feat: add some amazing feature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

提交规范

遵循 Conventional Commits 规范:

  • feat: 新功能
  • fix: 修复问题
  • docs: 文档更新
  • style: 代码格式调整
  • refactor: 代码重构
  • test: 测试相关
  • chore: 构建/工具链更新

📄 许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件

🙏 致谢

  • 灵感来源于 Google NotebookLM
  • 感谢所有开源贡献者

📞 联系方式


⭐ 如果这个项目对你有帮助,请给个 Star!

About

提供知识库管理,让你的知识瞬间碰出思维火花

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /