# ai-agent **Repository Path**: boundless-learning/ai-agent ## Basic Information - **Project Name**: ai-agent - **Description**: ai项目 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-08 - **Last Updated**: 2026-02-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 银行流水分析系统 这是一个基于LangChain4j的智能银行流水分析系统,能够解析PDF和Excel格式的银行流水文件,进行信贷风控检查,并生成详细的分析报告。 ## 功能特性 - **多格式文件解析**:支持PDF、Excel、CSV格式的银行流水文件解析 - **真实性验证**:检测流水是否伪造或篡改 - **套现检测**:识别信用卡套现行为和可疑交易模式 - **行业合规性检查**:验证流水是否符合特定行业特征 - **综合风险评估**:提供全面的信贷风险评估 - **动态配置**:支持风险阈值和提示词模板的动态更新 - **详细报告生成**:生成结构化的分析报告 ## 技术架构 - **Spring Boot**:应用框架 - **LangChain4j**:AI服务集成 - **Apache POI**:Excel文件处理 - **PDFBox**:PDF文件处理 - **Jackson**:JSON处理 ## 安装与配置 ### 1. 环境要求 - Java 21+ - Gradle 8.0+ ### 2. 配置AI模型 在 `langchain4j/src/main/resources/application.yaml` 中配置AI模型参数: ```yaml ai: model: provider: openai # 可选: openai, ollama, qwen name: gpt-3.5-turbo # 或其他模型名称 temperature: 0.2 # 较低温度以获得更确定的回答 max-tokens: 4000 # 较长的输出以适应详细分析 api-key: ${OPENAI_API_KEY:your-openai-api-key-here} # 使用环境变量或默认值 ``` ### 3. 启动应用 ```bash cd langchain4j ../gradlew bootRun ``` ## API接口 ### 1. 文件分析 **POST** `/api/credit-expert/analyze/file` 上传银行流水文件进行分析: ```bash curl -X POST \ http://localhost:8080/api/credit-expert/analyze/file \ -F "file=@bank_statement.pdf" \ -F "industry=RETAIL" \ -F "applicantInfo={\"name\":\"张三\",\"yearsInBusiness\":3}" ``` ### 2. 生成详细报告 **POST** `/api/credit-expert/analyze/file/report` 上传文件并生成详细分析报告: ```bash curl -X POST \ http://localhost:8080/api/credit-expert/analyze/file/report \ -F "file=@bank_statement.xlsx" \ -F "industry=MANUFACTURING" ``` ### 3. 动态配置管理 **GET** `/api/config/all` - 获取所有配置 **PUT** `/api/config/risk-thresholds` - 更新风险阈值 **PUT** `/api/config/suspicious-thresholds` - 更新可疑交易检测阈值 **PUT** `/api/config/prompt-templates` - 更新提示词模板 ## 配置说明 ### 风险阈值配置 - `critical`: 0.8 (严重风险) - `high`: 0.6 (高风险) - `medium`: 0.4 (中等风险) - `low`: 0.2 (低风险) ### 可疑交易检测参数 - `round_amount_ratio`: 整数金额比例阈值 - `suspicious_counterparty_ratio`: 可疑交易对手比例 - `holiday_transaction_ratio`: 节假日交易比例 - `large_cash_withdrawal_count`: 大额取现次数阈值 - `same_day_cycle_count`: 当日循环次数阈值 ## 使用示例 ### 1. 单文件分析 ```java // 使用CreditRiskAnalyzer直接分析 @Autowired private CreditRiskAnalyzer analyzer; // 分析PDF或Excel文件 ComprehensiveAnalysisResult result = analyzer.analyzeBankStatementFile( file, // MultipartFile对象 "RETAIL", // 行业类型 applicantInfo // 申请人信息 ); ``` ### 2. 批量分析 ```bash curl -X POST http://localhost:8080/api/credit-expert/analyze/batch \ -H "Content-Type: application/json" \ -d '{ "statements": ["statement1...", "statement2..."], "industry": "RETAIL" }' ``` ### 3. 信贷咨询 ```bash curl -X POST http://localhost:8080/api/credit-expert/consult?sessionId=test123 \ -H "Content-Type: application/json" \ -d '{"question": "这份流水的风险点在哪里?"}' ``` ## 报告内容 生成的分析报告包含以下内容: 1. **基本信息**:分析ID、时间、风险评分等 2. **银行流水分析**:收入、支出、现金流等 3. **真实性验证**:流水真实性评分和验证详情 4. **套现检测**:套现概率和检测到的模式 5. **行业合规性**:是否符合行业特征 6. **风险因素**:主要风险点分析 7. **信贷建议**:授信建议和条件 8. **关键发现**:重要发现和红色警报 9. **分析总结**:整体评估和建议 ## 扩展功能 - **自定义提示词**:通过配置端点动态更新AI提示词 - **阈值调整**:根据业务需要调整风险检测阈值 - **多行业支持**:扩展行业标准和合规检查规则 - **集成RAG**:结合知识库进行更精确的分析 ## 注意事项 1. 确保AI模型API密钥配置正确 2. 文件大小限制为10MB 3. 支持的文件格式:PDF、XLS、XLSX、CSV 4. 生产环境建议使用HTTPS和认证授权 ## 开发指南 项目结构: ``` src/main/java/pres/moling/langchain/ ├── agent/ # AI代理和分析工具 │ ├── CreditRiskAnalyzer.java # 信贷风险分析主类 │ ├── TransactionAnalyzer.java # 交易分析工具 │ ├── ReportGenerator.java # 报告生成器 │ └── ConfigurationManager.java # 配置管理器 ├── api/ # API控制器 │ └── CreditExpertController.java └── model/ # AI模型配置 ``` ## 贡献 欢迎提交Issue和Pull Request来改进此项目。 ## 重新生成说明 本系统经过重新生成和修复,解决了以下问题: - 修复了各组件间的方法调用错误 - 统一了数据模型和类型定义 - 改进了PDF和Excel文件解析功能 - 增强了套现检测和真实性验证算法 - 完善了报告生成和API接口 - 优化了系统架构和组件协调