PHPackages                             janfish/qw-underwrite-agent - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. janfish/qw-underwrite-agent

ActiveLibrary[API Development](/categories/api)

janfish/qw-underwrite-agent
===========================

Insurance underwriting analysis system based on Tongyi Qianwen API

04PHP

Since Mar 13Pushed 1mo agoCompare

[ Source](https://github.com/zeng444/qw-underwrite-agent)[ Packagist](https://packagist.org/packages/janfish/qw-underwrite-agent)[ RSS](/packages/janfish-qw-underwrite-agent/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

保险承保分析智能体（优化版）
==============

[](#保险承保分析智能体优化版)

基于通义千问 API 的 PHP Composer 插件，将 SDK 层与业务层分离，提供专业、高效、可靠的保险承保分析功能。

架构设计
----

[](#架构设计)

本项目采用统一管理架构，经过全面优化：

### UnderwriteAgent（业务层统一管理）

[](#underwriteagent业务层统一管理)

- **职责**: 统一管理配置和 QwenClient 实例，负责保险承保分析业务逻辑
- **功能**:
    - 配置管理：接收配置数组，内部创建 QwenClient
    - 业务逻辑：参数验证、专业提示词定义、结果解析
    - 异常处理：业务异常和系统异常处理
    - 日志记录：完整的操作日志和错误日志
    - 缓存机制：支持内存缓存和文件缓存

### 内部架构

[](#内部架构)

- **SDK 层**: QwenClient 在内部实例化，负责 API 交互，具备重试机制和错误处理
- **业务层**: 定义专业的保险承保分析提示词和业务逻辑，集成日志和缓存
- **支持层**: 配置管理、日志系统、缓存机制、异常处理

功能特性
----

[](#功能特性)

- **单次承保分析**: 对单个承保条件进行专业分析
- **批量承保分析**: 并发处理多个承保分析请求，支持错误隔离
- **综合承保分析**: 一次性分析多组承保条件，提供综合评估

配置参考
----

[](#配置参考)

### 完整配置选项

[](#完整配置选项)

配置项类型默认值说明`apiKey`string-**必需** 通义千问 API 密钥`baseUrl`string官方 API 地址API 基础地址`timeout`int30请求超时时间（秒）`connectTimeout`int10连接超时时间（秒）`retryAttempts`int3重试次数`retryDelay`int1000重试延迟（毫秒）`model`stringqwen3-max使用的模型`temperature`float0.3温度参数（0-1）`maxToken`int8192最大 Token 数`cache`stringnone缓存类型：none/memory/file。当设置为 memory 或 file 时，自动启用缓存`cacheDir`stringnull文件缓存目录（使用文件缓存时必需）`cacheTtl`int3600缓存时间（秒）`cacheEnabled`boolfalse缓存启用状态（由 cache 参数自动决定，无需手动设置）`logFile`stringnull日志文件路径（设置后启用日志）`logLevel`stringinfo日志级别：debug/info/warning/error### 重要配置说明

[](#重要配置说明)

#### 日志配置注意事项

[](#日志配置注意事项)

**默认行为**：

- `logEnabled` 默认为 `true`（日志功能开启）
- `logFile` 默认为 `null`（不指定日志文件路径）
- **重要**：当 `logFile` 为 `null` 时，系统使用 `NullLogger`，**不会写入任何日志文件**

**正确启用日志文件的方法**： 必须显式设置 `logFile` 参数，指定日志文件路径：

```
$config = [
    'apiKey' => $_ENV['QWEN_API_KEY'],
    'logFile' => '/data/app.log',  // 正确：指定日志文件路径
    'logLevel' => 'debug',        // 可选：设置日志级别
];
```

**常见误区**：

```
// 错误：没有设置 logFile，实际上不会写入日志
$config = [
    'apiKey' => $_ENV['QWEN_API_KEY'],
    'logLevel' => 'debug',  // 虽然设置了日志级别，但没有指定文件路径
];
```

### 配置示例

[](#配置示例)

#### 开发环境配置

[](#开发环境配置)

```
$config = [
    'apiKey' => $_ENV['QWEN_API_KEY'],
    'cache' => 'memory',        // 开发环境使用内存缓存，自动启用缓存
    'logFile' => __DIR__ . '/logs/app.log',  // 必须指定日志文件路径才能写入日志
    'logLevel' => 'debug',      // 开发环境使用调试日志
];
```

#### 生产环境配置

[](#生产环境配置)

```
$config = [
    'apiKey' => $_ENV['QWEN_API_KEY'],
    'timeout' => 60,
    'retryAttempts' => 5,
    'cache' => 'file',                              // 生产环境使用文件缓存，自动启用缓存
    'cacheDir' => '/var/cache/underwrite',        // 指定缓存目录（必需）
    'cacheTtl' => 7200,                            // 2小时缓存
    'logFile' => '/var/log/underwrite/app.log',   // 生产日志文件
    'logLevel' => 'info',                          // 生产环境日志级别
];
```

环境要求
----

[](#环境要求)

- PHP &gt;= 7.4
- Guzzle HTTP Client &gt;= 7.0

快速开始
----

[](#快速开始)

### 安装

[](#安装)

```
composer require janfish/qw-underwrite-agent
```

### 基础使用（推荐方式）

[](#基础使用推荐方式)

```
