2026-03-20 14:26:24 +08:00
|
|
|
|
# 学习助手 (Learning Assistant)
|
2026-03-20 13:38:42 +08:00
|
|
|
|
|
2026-03-20 14:26:24 +08:00
|
|
|
|
一个基于AI知识的交互式学习工具,通过生成多种形式的内容帮助你快速掌握知识点。
|
|
|
|
|
|
|
|
|
|
|
|
## 功能特性
|
|
|
|
|
|
|
|
|
|
|
|
- 🎓 **多形式学习内容**:为知识点生成5种不同形式的学习内容
|
|
|
|
|
|
- 📊 **Mermaid图表**:知识结构可视化,自动复制到剪切板
|
|
|
|
|
|
- 🎭 **郭德纲式讲解**:幽默风趣的知识讲解
|
|
|
|
|
|
- ✍️ **十道考核题**:带解析的选择题,检验学习效果
|
|
|
|
|
|
- 📝 **记忆卡片**:结构化的关键知识点总结
|
|
|
|
|
|
- 🏗️ **工程场景**:实际应用案例和代码示例
|
|
|
|
|
|
|
|
|
|
|
|
- 🖥️ **交互式TUI界面**:使用Bubble Tea构建的终端用户界面
|
|
|
|
|
|
- Tab切换查看不同内容
|
|
|
|
|
|
- 键盘导航(←/→翻页,↑/↓滚动)
|
|
|
|
|
|
- 流畅的用户体验
|
|
|
|
|
|
|
|
|
|
|
|
- 🤖 **AI驱动**:基于硅基流动AI服务,使用DeepSeek模型
|
|
|
|
|
|
|
|
|
|
|
|
## 安装
|
|
|
|
|
|
|
|
|
|
|
|
### 前置要求
|
|
|
|
|
|
|
|
|
|
|
|
- Go 1.25.6 或更高版本
|
|
|
|
|
|
- 硅基流动API密钥
|
|
|
|
|
|
|
|
|
|
|
|
### 安装步骤
|
|
|
|
|
|
|
|
|
|
|
|
1. 克隆仓库
|
|
|
|
|
|
```bash
|
|
|
|
|
|
git clone https://github.com/yourusername/learning-assistant.git
|
|
|
|
|
|
cd learning-assistant
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
2. 安装依赖
|
|
|
|
|
|
```bash
|
|
|
|
|
|
go mod tidy
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
3. 构建程序
|
|
|
|
|
|
```bash
|
|
|
|
|
|
go build -o learning.exe cmd/main.go
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
4. 设置API密钥
|
|
|
|
|
|
```bash
|
|
|
|
|
|
export SILICON_API_KEY=your_api_key_here
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 使用方法
|
|
|
|
|
|
|
|
|
|
|
|
### 基本使用
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
./learning.exe
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 操作流程
|
|
|
|
|
|
|
|
|
|
|
|
1. 程序启动后,输入你想学习的知识点
|
|
|
|
|
|
2. 按 Enter 键开始生成
|
|
|
|
|
|
3. 等待AI生成完成(后台并发生成5种内容)
|
|
|
|
|
|
4. 使用 ←/→ 键切换不同的Tab查看内容
|
|
|
|
|
|
5. 使用 ↑/↓ 键滚动长内容
|
|
|
|
|
|
6. 按 q 或 Ctrl+C 退出程序
|
|
|
|
|
|
|
|
|
|
|
|
### 键盘快捷键
|
|
|
|
|
|
|
|
|
|
|
|
| 按键 | 功能 |
|
|
|
|
|
|
|------|------|
|
|
|
|
|
|
| Enter | 确认输入/开始生成 |
|
|
|
|
|
|
| ← | 切换到上一个Tab |
|
|
|
|
|
|
| → | 切换到下一个Tab |
|
|
|
|
|
|
| ↑ | 向上滚动内容 |
|
|
|
|
|
|
| ↓ | 向下滚动内容 |
|
|
|
|
|
|
| q | 退出程序 |
|
|
|
|
|
|
| Ctrl+C | 退出程序 |
|
|
|
|
|
|
|
|
|
|
|
|
## 配置文件
|
|
|
|
|
|
|
|
|
|
|
|
配置文件位于 `config/config.yaml`:
|
|
|
|
|
|
|
|
|
|
|
|
```yaml
|
|
|
|
|
|
api:
|
|
|
|
|
|
endpoint: "https://api.siliconflow.cn/v1"
|
|
|
|
|
|
model: "deepseek-ai/DeepSeek-V3"
|
|
|
|
|
|
timeout: 120
|
|
|
|
|
|
max_retries: 3
|
|
|
|
|
|
|
|
|
|
|
|
ui:
|
|
|
|
|
|
width: 100
|
|
|
|
|
|
height: 30
|
|
|
|
|
|
colors:
|
|
|
|
|
|
primary: "#7D56F4"
|
|
|
|
|
|
secondary: "#04B575"
|
|
|
|
|
|
text: "#FAFAFA"
|
|
|
|
|
|
background: "#232323"
|
|
|
|
|
|
border: "#586069"
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 项目结构
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
learning-assistant/
|
|
|
|
|
|
├── cmd/
|
|
|
|
|
|
│ └── main.go # 程序入口
|
|
|
|
|
|
├── internal/
|
|
|
|
|
|
│ ├── ai/ # AI集成层
|
|
|
|
|
|
│ │ ├── client.go # 硅基流动API客户端
|
|
|
|
|
|
│ │ ├── prompt.go # 提示词管理
|
|
|
|
|
|
│ │ ├── prompts/ # 提示词模板
|
|
|
|
|
|
│ │ └── generators/ # 内容生成器
|
|
|
|
|
|
│ ├── clipboard/ # 剪切板操作
|
|
|
|
|
|
│ └── tui/ # TUI界面层
|
|
|
|
|
|
│ ├── model.go # TUI模型
|
|
|
|
|
|
│ ├── view.go # 视图渲染
|
|
|
|
|
|
│ └── update.go # 事件处理
|
|
|
|
|
|
├── config/
|
|
|
|
|
|
│ └── config.yaml # 配置文件
|
|
|
|
|
|
├── go.mod
|
|
|
|
|
|
├── go.sum
|
|
|
|
|
|
└── README.md
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 技术栈
|
|
|
|
|
|
|
|
|
|
|
|
- **语言**:Go 1.25.6
|
|
|
|
|
|
- **TUI框架**:[Bubble Tea](https://github.com/charmbracelet/bubbletea)
|
|
|
|
|
|
- **样式库**:[Lip Gloss](https://github.com/charmbracelet/lipgloss)
|
|
|
|
|
|
- **剪切板**:[clipboard](https://github.com/atotto/clipboard)
|
|
|
|
|
|
- **AI服务**:硅基流动(DeepSeek模型)
|
|
|
|
|
|
|
|
|
|
|
|
## 示例
|
|
|
|
|
|
|
|
|
|
|
|
### 输入示例
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
🎓 学习助手
|
|
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
|
|
|
|
|
|
|
|
请输入您想学习的知识点: Redis缓存策略
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 输出示例
|
|
|
|
|
|
|
|
|
|
|
|
程序会生成以下内容:
|
|
|
|
|
|
|
|
|
|
|
|
1. Mermaid图表 - 显示Redis缓存策略的思维导图
|
|
|
|
|
|
2. 郭德纲式讲解 - 用幽默的方式讲解缓存策略
|
|
|
|
|
|
3. 十道考核题 - 测试对Redis缓存的理解
|
|
|
|
|
|
4. 记忆卡片 - 总结核心知识点
|
|
|
|
|
|
5. 工程场景 - 展示实际应用案例
|
|
|
|
|
|
|
|
|
|
|
|
## 常见问题
|
|
|
|
|
|
|
|
|
|
|
|
### Q: 如何获取硅基流动API密钥?
|
|
|
|
|
|
|
|
|
|
|
|
A: 访问 [硅基流动官网](https://cloud.siliconflow.cn) 注册并获取API密钥。
|
|
|
|
|
|
|
|
|
|
|
|
### Q: 生成失败怎么办?
|
|
|
|
|
|
|
|
|
|
|
|
A: 检查以下几点:
|
|
|
|
|
|
1. API密钥是否正确设置
|
|
|
|
|
|
2. 网络连接是否正常
|
|
|
|
|
|
3. API额度是否充足
|
|
|
|
|
|
|
|
|
|
|
|
### Q: 如何更改UI主题颜色?
|
|
|
|
|
|
|
|
|
|
|
|
A: 编辑 `config/config.yaml` 文件中的 `ui.colors` 配置项。
|
|
|
|
|
|
|
|
|
|
|
|
## 开发
|
|
|
|
|
|
|
|
|
|
|
|
### 运行开发版本
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
go run cmd/main.go
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 构建
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
go build -o learning.exe cmd/main.go
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 依赖管理
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
go mod tidy
|
|
|
|
|
|
go mod verify
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 许可证
|
|
|
|
|
|
|
|
|
|
|
|
MIT License
|
|
|
|
|
|
|
|
|
|
|
|
## 贡献
|
|
|
|
|
|
|
|
|
|
|
|
欢迎提交Issue和Pull Request!
|
|
|
|
|
|
|
|
|
|
|
|
## 致谢
|
|
|
|
|
|
|
|
|
|
|
|
- [Bubble Tea](https://github.com/charmbracelet/bubbletea) - 强大的TUI框架
|
|
|
|
|
|
- [硅基流动](https://cloud.siliconflow.cn) - AI服务提供商
|