205 lines
4.6 KiB
Markdown
205 lines
4.6 KiB
Markdown
# 学习助手 (Learning Assistant)
|
||
|
||
一个基于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服务提供商
|