# ai **Repository Path**: CruzePan/ai ## Basic Information - **Project Name**: ai - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-12 - **Last Updated**: 2026-03-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI工程实战 ## 一、技术栈 ### 1.基础环境 - Mac darwin/amd64 - Docker Desktop 4.24.2 - JDK 17.0.7 ### 2.框架 - Spring Boot 3.5.11 - Spring AI 1.1.2 - Nacos 2.5.1 - Maven 3.9.9 ### 3.大模型 - 阿里云Qwen大模型: - qwen-plus(文本模型) - text-embedding-v4(向量模型) ### 4.向量数据库 - ElasticSearch-8.13.4 - kibana-8.11.0 ## 二、工程概述 本工程基于旨在基于生产实践标准构建AI工程化落地代码,按照技术进阶路线逐步实现: 1. 搭建基础环境,实现与大模型的对接交互。 2. 搭建提示词工程,提供提示词路由与优化功能。 3. 搭建文本解析、文本拆分、数据清洗、向量化存储的标准流程。 4. 实现重排序功能,实现基于向量数据库的向量搜索,返回最匹配的片段。 5. 待添加..... ## 三、模块描述 ### [prompt-engnieering](prompt-engnieering) 提示词工程模块,基于Spring AI 封装的 Prompt 引擎,实现: - 结构化 Prompt 模板 - 包含系统指令、用户模板、示例、默认变量等 - 动态变量替换 - 支持 {{variable}} 语法的模板渲染 - 多场景策略 - 针对不同场景的优化 Prompt 策略 - 上下文增强 - 自动注入时间戳等上下文信息 - 后处理机制 - 对 AI 响应进行格式化(如代码块标记) - 流式输出 - 支持 SSE 实时输出 - 版本管理 - 模板支持版本号,便于迭代 - 错误处理 - 完善的异常处理和日志记录 - 可配置参数 - temperature、maxTokens 等参数可调 **使用示例** 1. 代码生成 ```shell curl -X POST "http://localhost:8080/api/prompt/code?requirement=实现一个单例模式&language=Java" 2. 翻译 ```shell curl -X POST "http://localhost:8080/api/prompt/translate?text=Hello World&sourceLang=英文&targetLang=中文" 3. 文本摘要 ```shell curl -X POST "http://localhost:8080/api/prompt/summary?text=长文本内容&maxLength=200" 4. 流式输出(SSE) ```shell curl -N "http://localhost:8080/api/prompt/stream/code?requirement=实现快速排序" 5. 查看模板 ```shell curl "http://localhost:8080/api/prompt/template/code" ### [rag](rag) 实现代码功能:对于用户输入的文本进行标准化的渲染优化,其步骤和用到的技术栈要求如下: **1. 文档解析读取器(4 种)** - HybridDocumentReader - 基于 TikaDocumentReader 的混合格式处理 - PagePdfDocumentReader - PDF 按页解析 - ParagraphPdfDocumentReader - PDF 按段落解析保留语义 - GenericTikaReader - 通用 Apache Tika 读取器 **2. 文档切片策略(5 种)** - FixedLengthChunkingStrategy - 固定长度切片 - ImprovedFixedLengthChunkingStrategy - 改进固定长度切片(考虑边界) - SemanticChunkingStrategy - 语义切片 - SlidingWindowChunkingStrategy - 滑动窗口切片 - HierarchicalChunkingStrategy - 层次切片 **3. 数据清洗策略(5 种)** - RegexCleaningStrategy - 正则表达式规则过滤 - PositionBasedCleaningStrategy - PDF 基于位置的过滤 - CharacterValidationCleaningStrategy - 字符合法性校验 - SensitiveWordCleaningStrategy - 敏感词过滤 - MeaninglessParagraphCleaningStrategy - 无意义段落过滤 **4. RESTful API 接口** - POST /api/v1/document/process - 处理本地文档 - POST /api/v1/document/process-from-resources - 处理 resources 目录下的文档 - GET /api/v1/document/strategies/chunking - 获取所有切片策略 - GET /api/v1/document/strategies/cleaning - 获取所有清洗策略 - GET /api/v1/document/readers - 获取所有读取器类型 **5. 日志记录** - 自动在 ./logs/chunks 目录下生成日志文件 - 每个片段单独一段,包含元数据和内容预览 - 生成处理摘要日志 **6. 使用示例** ```json { "filePath": "documents/sample.txt", "readerType": "HYBRID", "chunkingStrategy": "SEMANTIC", "cleaningStrategies": ["REGEX_CLEANING", "MEANINGLESS_PARAGRAPH_CLEANING"] } ``` ## 四、重大变更历史 **1. Day1:** 搭建调用阿里云Qwen大模型的交互demo,实现: - 使用 ChatClient 进行简单同步调用对话; - 使用Flux返回实现流式调用 (Streaming) ,每个元素是一个文本片段,展示前端打字机效果 Day4: ## 附录:AI写代码提示词 **1. 提示词工程模块** 实现一个Prompt Engineering(提示词工程)的样例代码,基于Spring AI框架,要满足生产实践的要求: - Prompt 模板管理服务 - 支持结构化 Prompt 模板 - Prompt 增强器 - 支持动态变量替换、上下文注入 - 多场景 Prompt 策略 - 针对不同场景的 Prompt 优化 - Prompt 版本管理 - 支持 A/B 测试和版本迭代 - 示例 Controller - 展示如何使用 Prompt Engineering **2. RAG模块** rag模块下chunking包下为实现文档解析、文档切片与数据清洗功能的代码,其中具体功能描述如下: 1. 文档解析使用Spring AI 封装的 Tika 能力,实现三种读取器: ○ 一个是基于TikaDocumentReader实现的混合格式处理读取器; ○ 一个是基于PagePdfDocumentReader 实现的PDF按页解析读取器; ○ 一个是基于ParagraphPdfDocumentReader实现的pdf按段落解析保留语义结构读取器。 2. 文档解析直接使用Apache Tika实现通用的文件解析读取器。 3. 文档切片采用策略模式,分别实现固定长度切片、改进固定长度切片、语义切片、滑动窗口切片、层次切片这几种策略。 4. 数据清洗实现对常见噪声类型的清理,比如页眉页脚、水印、注释、乱码、导航元素等;同时清洗策略采用策略模式,分别实现基于正则表达式的规则过滤策略、针对PDF文档的基于位置的过滤策略、字符合法性校验策略、敏感词过滤策略、无意义段落过滤策略。 5. 此外,为了能够更好的验证功能,实现以下功能: ○ 提供一个API接口,能出发文档解析、文档切片与数据清洗整个步骤,完成本地文档的处理,最终生成解析后的结果。 ○ 待解析文档可以先按照从resources目录下读取的方式来实现。 ○ 解析的结果以log日志的形式存储在项目根目录下,每个解析出来的片段单独一段。 ○ 上述所有功能均提供统一的restful风格的API接口供前台调用,以便测试与调试 请实现上述要求的完整的代码,要能够满足生产实践使用的标准