# ai_learning **Repository Path**: OrgXxxx/ai_learning ## Basic Information - **Project Name**: ai_learning - **Description**: 为期8周的java工程师利用python学习AI应用开发的路线规划及学习过程记录项目 - **Primary Language**: Unknown - **License**: AFL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-10 - **Last Updated**: 2026-04-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 核心思路:**用云端的 MiniMax API 替代本地大模型,为电脑“减负”;同时,运用轻量级工具,打造一个“省心”的开发环境**。 **⚙️ 关键调整点** * **云端推理**:弃用Ollama等本地模型,改用 **MiniMax API**。它在中文任务上表现出色,且API兼容OpenAI格式,集成非常方便。 * **轻量级Embedding**:在RAG部分,引入 **`FastEmbed`** 作为嵌入模型。它无需安装PyTorch,以CPU运行为主,非常适合低配置电脑,同时保证不错的向量化效果。 * **轻量级向量库**:继续沿用 **ChromaDB** 作为向量数据库。它足够轻量,通过 `pip install chromadb` 即可安装,是你的最佳拍档。 * **清晰路线图**:计划分为4个阶段,**第一阶段(第1周)** 会直接带你上手MiniMax API,其余阶段的划分保持不变。 * **技术拓展**:**第五阶段(第5周)** 将向你介绍 Spring AI Alibaba 如何与 MiniMax 集成,为你未来回归Java开发铺好路。 --- ### 🐍 8周学习计划 (MiniMax + 轻量级工具版) #### 📌 总体目标 (不变) * 掌握Python开发环境及常用AI库。 * 能独立完成 **RAG 应用**(文档问答、知识库助手)。 * 能开发简单的 **AI Agent**(调用工具、多步推理)。 * 产出2个可展示的项目(简历级)。 --- ### 🔰 第一阶段:Python 环境 & API 速通 (第1周) —— *已根据MiniMax调整* * **每日时间**:1.5 小时 * **核心变化**:第1天就开始集成MiniMax API,让你快速获得正反馈。 | 天 | 内容 | 实战任务 | |---|---|---| | 1 | 安装Python 3.8+,配置VS Code/PyCharm,使用 `venv`。注册MiniMax开放平台并获取API Key和Group ID。 | 创建一个 `ai-learning` 虚拟环境。 | | 2 | 学习使用 `python-dotenv` 管理密钥。使用 `pip install openai` 安装官方SDK。 | 编写代码,通过OpenAI SDK成功调用MiniMax模型,完成一次 `chat.completions.create`。 | | 3 | **核心概念**:理解 `system prompt`、`user prompt`、`temperature`、`max_tokens` 等参数的作用。 | 修改参数,观察模型回答风格的变化。 | | 4 | **对话管理**:学习如何维护 `messages` 列表,实现多轮对话。 | 实现一个能记住历史对话的简单聊天机器人。 | | 5 | **流式输出**:通过设置 `stream=True`,实现类似ChatGPT的逐字输出效果。 | 改造你的聊天机器人,支持流式输出。 | | 6 | **周末实战**:基于MiniMax API,写一个**命令行智能翻译助手**,支持中英互译。 | 使用 `argparse` 库接收命令行参数,如 `python translator.py "Hello"`。 | | 7 | 休息 / 复盘,整理代码和笔记到GitHub。 | | --- ### 🤖 第二阶段:LangChain + MiniMax 核心组件 (第2-3周) | 天 | 模块 | 关键类 / 库 | 实战小任务 | |---|---|---|---| | 1 | **环境搭建** | `langchain`, `langchain-community` | 安装LangChain,并配置使用`MiniMaxChat`模型。 | | 2 | **Model I/O** | `ChatPromptTemplate`, `StrOutputParser` | 创建一个PromptTemplate,动态生成针对不同产品的营销文案。 | | 3 | **输出解析** | `PydanticOutputParser` | 让MiniMax模型返回结构化的JSON数据,并用Pydantic模型解析。 | | 4 | **文档加载** | `DirectoryLoader`, `PyPDFLoader` | 加载本地的一个PDF文件,并将其内容按特定规则分块。 | | 5 | **向量存储** | `Chroma`, `FastEmbed` | 将分块后的文本用`FastEmbed`向量化,存入ChromaDB,并执行相似度搜索。 | | 6 | **第一个RAG链** | `create_retrieval_chain` | 组装一个能根据文档内容回答问题的机器人(周末项目开始)。 | | 7 | **对话记忆** | `ConversationBufferMemory` | 为你的RAG机器人加上多轮对话记忆功能,能基于上下文连续提问。 | **第3周周末项目**:**企业规章制度问答机器人**。上传公司的《请假制度》、《报销流程》等多个PDF,实现一个能准确回答相关问题的智能助手。 --- ### 🔍 第三阶段:手写 RAG 系统(不依赖LangChain)(第4周) * **每日时间**:2 小时 * **核心变化**:Embedding部分替换为轻量级的 `FastEmbed`。 | 天 | 模块 | 实现方式 | |---|---|---| | 1 | 文档解析 | `pypdf` + 正则表达式清洗文本。 | | 2 | 文本分块 | 按固定字符数(如500字符)进行递归分割,保留一定重叠。 | | 3 | 向量化 | 使用 `FastEmbed` 将文本块转换为向量。 | | 4 | 向量检索 | 用 `numpy` 或 `scikit-learn` 实现余弦相似度搜索。 | | 5 | 上下文组装 | 手动拼接检索到的上下文和用户问题,构造最终Prompt。 | | 6 | 完整流程串联 | 将所有模块封装成一个 `MyRAG` 类,实现 `query` 方法。 | | 7 | 性能优化与总结 | 分析检索结果,调整分块大小,对比与LangChain方案的差异。 | > 产出:一个完全由你手写的RAG引擎,深刻理解其原理,面试时能清晰讲解。 --- ### 🛠️ 第四阶段:Agent 开发(让模型自主决策)(第5周) | 天 | 内容 | 实战任务 | |---|---|---| | 1 | 理解 ReAct 原理 | 阅读一篇关于 ReAct 模式的博客文章。 | | 2 | **定义工具** | 使用 `@tool` 装饰器,为 MiniMax 定义两个工具:一个用于计算,一个用于搜索天气。 | | 3 | **创建 Agent** | 使用 `create_react_agent` 和 `AgentExecutor`,让模型学会在需要时调用工具。 | | 4 | **带检索的 Agent** | 将你手写的RAG系统封装成一个工具,让Agent自主决定何时需要检索知识库。 | | 5 | **错误处理与重试** | 为Agent加入异常处理逻辑,当工具调用失败时能进行重试。 | | 6 | **周末项目**:**个人数据分析Agent** | 让Agent连接一个SQLite数据库,能根据自然语言查询并分析数据。 | | 7 | **探索 `LangGraph`** | 简单了解更灵活的Agent框架LangGraph。 | --- ### 🚀 第五阶段:Java + Python 混合实战 (第6周) | 天 | 任务 | 说明 | |---|---|---| | 1 | **API 封装** | 用 `FastAPI` 将你的RAG系统封装成RESTful API。 | | 2 | **安全增强** | 为API增加简单的API Key鉴权和限流(`slowapi`)。 | | 3 | **Java调用** | 在Spring Boot项目中,使用 `RestTemplate` 或 `WebClient` 调用你部署的Python服务。 | | 4 | **工程化实践** | 在Java侧实现Redis缓存,对相同或相似问题的查询结果进行缓存,减轻Python服务的压力。 | | 5 | **性能压测** | 使用 `locust` 或 `jmeter` 对你的Python API服务进行简单的压力测试。 | | 6 | **技术拓展** | **了解 `Spring AI Alibaba`**,它是官方支持的Java AI框架,已集成MiniMax模型,配置简单。 | | 7 | **一键部署** | 编写 `Dockerfile` 和 `docker-compose.yml`,实现Java和Python服务的容器化一键启动。 | > 产出:一个能体现你后端工程能力的全栈项目,极大地提升简历含金量。 --- ### 🧪 第六阶段:项目整合 & 面试准备 (第7-8周) **项目A:企业内部知识库问答系统** * **核心**:上传PDF/Word,建立向量库,支持多轮对话和流式输出。 * **亮点**:可引入BM25算法与语义检索结合,提升检索准确性。 **项目B:AI数据分析Agent** * **核心**:用自然语言查询数据库,自动生成SQL并执行。 * **亮点**:设计“人类确认”环节,对 `DELETE`、`DROP` 等危险操作进行拦截,体现安全性设计。 ### 📚 学习资源与建议 * **核心资源** * **MiniMax官方文档**:首要信息源,涵盖API Key获取与调用细节。 * **LangChain官方文档**:学习LangChain核心概念与用法。 * **Spring AI Alibaba文档**:Java集成MiniMax的首选,助你回归Java生态。 * **硬件与成本控制** * **电脑配置**:8GB及以上内存即可,推荐16GB以获得更流畅体验。纯CPU模式完全可行。 * **Token消耗**:学习阶段建议使用1.5B-3B的轻量级模型,如 `MiniMax-M2` 系列。API调用务必开启流式输出,体验更好且响应更快。 * **Embedding模型**:务必使用 **`FastEmbed`** 或 `BGE-small` 等轻量级模型。 这份路线图屏蔽了硬件门槛,可以聚焦于AI应用的核心开发。