Skip to content

Latest commit

 

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IntuLing

把 AI 对话沉淀为可复习的英语知识资产

一个面向中文学习者的 AI 英语学习 Agent:从自然对话出发,自动提取语法、词汇与搭配,并串联语法树、个人笔记、音标训练和间隔复习,形成完整学习闭环。

React TypeScript FastAPI PostgreSQL Tests

为什么做 IntuLing

普通 AI 对话很擅长“即时回答”,但有价值的知识往往随着会话结束而流失。IntuLing 关注的不是再做一个聊天框,而是解决三个连续问题:

  1. 理解:让 AI 根据输入自动选择句子解析、单词拆解或自由对话模式。
  2. 沉淀:把聊天中的单词、词根词缀、搭配和语法内容保存为结构化资产。
  3. 复习:通过语法学习进度、个人笔记、音标练习和间隔复习帮助长期掌握。
flowchart LR
    A[自然语言输入] --> B[AI 流式对话]
    B --> C{学习内容识别}
    C --> D[语法知识与笔记]
    C --> E[单词 / 词根词缀 / 搭配]
    E --> F[个人词库]
    D --> G[学习进度]
    F --> H[间隔复习]
    G --> I[长期知识资产]
    H --> I
Loading

核心功能

模块 已实现能力
AI 对话 多会话管理、自动/句子解析/单词拆解模式、SSE 流式响应、Markdown 渲染、学习建议提取
语法树 分阶段课程地图、关卡锁定与解锁、学习会话、进度记录、内置语法课程导入
学习笔记 自动生成课程默认笔记、Markdown 预览、个人内容覆盖与持久化
单词学习 从对话一键收藏、词根词缀与搭配归档、来源去重、搜索筛选、掌握度管理、每日复习队列
音标训练 48 个音标分组、英美音切换、发音方法与常见字母组合、辨音练习、单词音素拆分

产品闭环

  • 对话即采集入口:AI 回复不止用于阅读,还会生成可接受或忽略的学习建议。
  • 内容结构化存储:单词、构词成分、搭配、例句、来源消息和复习记录分别建模。
  • 知识与训练联动:词汇详情关联音标拆分,课程内容关联笔记和学习状态。
  • 自适应复习节奏:根据“忘记 / 困难 / 掌握”更新掌握度、复习阶段和下次复习时间。
  • 响应式学习界面:桌面端侧边栏与移动端底部导航适配五个核心模块。

技术架构

flowchart TB
    subgraph Web[Frontend]
        React[React 19 + TypeScript]
        Query[TanStack Query]
        UI[Tailwind CSS 4]
    end

    subgraph API[Backend]
        FastAPI[FastAPI]
        Service[Domain Services]
        LangChain[LangChain]
    end

    subgraph Data[Data Layer]
        SQLAlchemy[SQLAlchemy 2]
        PostgreSQL[(PostgreSQL)]
        Alembic[Alembic]
    end

    subgraph Model[AI Providers]
        DeepSeek[DeepSeek]
        OpenAI[OpenAI-compatible API]
    end

    React --> Query -->|REST / SSE| FastAPI
    UI --> React
    FastAPI --> Service
    Service --> SQLAlchemy --> PostgreSQL
    Alembic --> PostgreSQL
    Service --> LangChain
    LangChain --> DeepSeek
    LangChain --> OpenAI
Loading

技术选型

  • 前端:React 19、TypeScript 6、Vite 8、React Router、TanStack Query、Tailwind CSS 4、Vitest
  • 后端:Python 3.13、FastAPI、Pydantic Settings、SQLAlchemy 2 Async、Alembic、Pytest
  • AI:LangChain、DeepSeek、OpenAI-compatible API、SSE 流式传输
  • 数据:PostgreSQL、JSONB、异步数据库会话
  • 工程化:npm、uv、Ruff、Oxlint、前后端独立测试

项目结构

IntuLing/
├── frontend/                 # React 单页应用
│   └── src/
│       ├── components/       # 通用 UI、布局与 Markdown 组件
│       ├── features/         # chat / grammar / vocabulary / phonetics
│       ├── lib/              # API Client 与工具函数
│       └── providers/        # TanStack Query Provider
├── backend/                  # FastAPI 服务
│   ├── content/grammar/      # 可导入的 Markdown 语法课程
│   ├── migrations/           # Alembic 数据库迁移
│   ├── src/intuling_api/
│   │   ├── ai/               # 模型 Provider 适配
│   │   ├── api/routes/       # REST / SSE 接口
│   │   ├── models/           # SQLAlchemy 领域模型
│   │   ├── schemas/          # Pydantic 请求响应模型
│   │   └── services/         # 学习领域逻辑
│   └── tests/                # 后端测试
└── Resource/                 # 产品设计与英语学习资料

快速开始

环境要求

  • Node.js 22+
  • Python 3.13+
  • uv
  • PostgreSQL 16+

1. 安装依赖

npm --prefix frontend install
uv sync --directory backend

2. 创建数据库

createdb -h 127.0.0.1 -p 5432 -U postgres intuling_dev

3. 配置环境变量

PowerShell:

Copy-Item backend/.env.example backend/.env
Copy-Item frontend/.env.example frontend/.env

Bash:

cp backend/.env.example backend/.env
cp frontend/.env.example frontend/.env

按本地环境修改 backend/.env 中的数据库连接。使用 AI 对话时,还需要配置模型:

AI_PROVIDER="deepseek"       # 或 openai
AI_MODEL="deepseek-chat"
AI_API_KEY="your-api-key"
AI_BASE_URL=""              # 使用兼容 API 时填写

未配置 AI Key 时,语法内容、单词、音标等非生成式接口仍可使用;AI 对话需要有效的模型配置。

4. 初始化数据

npm run migrate:api
npm run import:grammar

5. 启动项目

分别打开两个终端:

npm run dev:api
npm run dev:web
服务 地址
Web 应用 http://localhost:5173
API 服务 http://localhost:8000
Swagger 文档 http://localhost:8000/docs

测试与质量

# 前端测试 / 构建 / 代码检查
npm run test:web
npm run build:web
npm run lint:web

# 后端测试 / 代码检查
npm run test:api
npm run lint:api

当前测试覆盖了聊天模式识别与 SSE 事件、语法课程解析与解锁规则、词汇去重与复习调度、48 音标数据与单词音素分析,以及核心前端页面交互。

值得关注的工程实现

  • SSE 流式聊天:后端异步生成事件,前端逐块解析并同步更新消息与学习建议。
  • Provider 可替换设计:通过统一配置切换 DeepSeek 或 OpenAI-compatible 模型。
  • 领域化数据模型:将“聊天记录”和“学习资产”解耦,同时保留来源追踪关系。
  • 幂等内容导入:Markdown + Frontmatter 管理语法课程,通过脚本重复导入并更新数据库。
  • 异步全栈链路:FastAPI、SQLAlchemy Async 与 asyncpg 构成非阻塞数据访问链路。
  • 可测试的复习算法:复习阶段、掌握度、间隔天数和每日配额均由独立服务逻辑驱动。

Roadmap

  • 接入语音播放与跟读评分
  • 完善用户系统与多端学习数据同步
  • 增加学习数据可视化与周报
  • 补充 Docker Compose 与在线演示环境

IntuLing — 让每一次 AI 对话都成为可积累、可追踪、可复习的学习过程。

About

AI English learning agent that turns conversations into structured grammar, vocabulary, phonetics, notes, and spaced-review workflows.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages