快速开始
Policy Agent API 运行在端口 3800,无需鉴权,CORS 已开启。所有请求和响应均使用 JSON 格式。
http://localhost:3800服务启动后默认监听 0.0.0.0:3800,支持跨域请求。生产环境建议配置 Nginx 反向代理和 HTTPS。
健康检查
curl http://localhost:3800/api/health
政策匹配
curl -X POST http://localhost:3800/api/match \
-H "Content-Type: application/json" \
-d '{
"company_name": "衍策智能科技",
"industry": "人工智能",
"region": "上海市徐汇区",
"development_stage": "成长期",
"employee_count": 50
}'API 端点一览
共 9 个 REST 端点,涵盖政策匹配、文本提取、工单生成和系统管理。
/api/match政策匹配
根据企业画像自动匹配适用政策,返回适配度评分、政策条款和材料缺口分析。
Enterprise Profile JSON/api/extract政策文本提取
输入政策原文,自动提取结构化字段:政策名称、发布机构、适用行业、申报条件、补贴金额、截止日期。
{ "text": "..." }/api/policies查询所有政策
返回政策库中所有政策记录,支持分页和筛选。
/api/policies/:id查询单条政策
根据政策 ID 返回完整的政策详情,包括原文、提取字段和关联企业信息。
/api/ticket生成 ParkOps 工单
根据匹配结果自动生成 ParkOps 服务工单,包含企业信息和待办事项。
{ "company": "...", "policy_id": "..." }/api/report生成分析报告
为指定企业生成完整的政策匹配分析报告,包含匹配结果、材料清单和建议。
Enterprise Profile JSON/api/policies新增政策
向政策库中添加新的政策记录。支持批量导入和单条录入。
Policy Object JSON/api/stats数据库统计
返回政策库的统计概览:政策总数、行业分布、地区覆盖、最近更新等。
/api/health健康检查
检查 API 服务运行状态和数据库连接。
请求与响应示例
核心端点的完整请求和响应示例,可直接复制使用。
/api/match— 政策匹配{
"company_name": "衍策智能科技",
"industry": "人工智能",
"region": "上海市徐汇区",
"development_stage": "成长期",
"employee_count": 50,
"rd_ratio": 18,
"ip_count": 12,
"has_high_tech_cert": true,
"is_sme": true
}{
"status": "success",
"matches": [
{
"policy_id": "pol_2024_sh_003",
"policy_name": "上海市人工智能产业专项扶持",
"score": 92.5,
"dimensions": {
"industry_match": 20,
"region_match": 15,
"stage_match": 12,
"rd_match": 13,
"ip_match": 12,
"cert_match": 10,
"scale_match": 6,
"time_match": 4.5
},
"materials_needed": [
"高新技术企业认定证书",
"近三年审计报告",
"研发项目立项书"
],
"deadline": "2025-06-30"
}
],
"total_matches": 3,
"generated_at": "2025-01-15T10:30:00Z"
}/api/extract— 政策文本提取{
"text": "关于印发《上海市促进人工智能产业创新发展若干政策》的通知..."
}{
"status": "success",
"extracted": {
"policy_name": "上海市促进人工智能产业创新发展若干政策",
"issuer": "上海市经济和信息化委员会",
"publish_date": "2024-03-15",
"industry": ["人工智能", "集成电路"],
"conditions": [
"注册在上海的独立法人",
"从事AI相关业务",
"研发投入占比不低于5%"
],
"subsidy_amount": "最高500万元",
"deadline": "2025-12-31"
}
}/api/health— 健康检查// GET http://localhost:3800/api/health
{
"status": "ok",
"version": "1.0.0",
"uptime": "2d 14h 32m",
"database": "connected",
"policies_count": 14
}/api/stats— 数据库统计// GET http://localhost:3800/api/stats
{
"status": "success",
"stats": {
"total_policies": 14,
"by_industry": {
"人工智能": 5,
"生物医药": 3,
"集成电路": 4,
"新能源": 2
},
"by_region": {
"国家级": 4,
"上海市": 6,
"徐汇区": 4
},
"last_updated": "2025-01-14T08:00:00Z"
}
}企业画像字段定义
Enterprise Profile 包含 9 个字段,用于描述企业基本信息和政策匹配维度。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| company_name | string | 必填 | 企业名称(全称) |
| industry | string | 必填 | 所属行业(如:人工智能、生物医药、集成电路) |
| region | string | 必填 | 所在区域(如:上海市徐汇区) |
| development_stage | string | 必填 | 发展阶段(初创期 / 成长期 / 成熟期) |
| employee_count | number | 必填 | 员工人数 |
| rd_ratio | number | 可选 | 研发投入占比(0-100) |
| ip_count | number | 可选 | 知识产权数量(专利 + 软著) |
| has_high_tech_cert | boolean | 可选 | 是否持有高新技术企业认定 |
| is_sme | boolean | 可选 | 是否为中小微企业 |
提示:前 4 个字段(company_name、industry、region、development_stage)为必填项。 可选字段提供后会显著提升匹配精度,建议尽量填写完整。
匹配算法权重
政策匹配基于 8 个维度的加权评分,总分 100%。权重可根据园区需求自定义。
| 维度 | 权重 | 说明 |
|---|---|---|
| 行业匹配 | 20% | 企业所属行业与政策适用行业的吻合度 |
| 区域匹配 | 15% | 企业注册地与政策覆盖区域的匹配 |
| 发展阶段 | 12% | 企业所处阶段与政策扶持对象的匹配 |
| 企业规模 | 10% | 员工人数和营收规模的条件匹配 |
| 研发投入 | 13% | 研发占比是否达到政策门槛 |
| 知识产权 | 12% | IP 数量和质量是否满足申报要求 |
| 资质认证 | 10% | 高新技术企业等资质认定的匹配 |
| 时效性 | 8% | 政策有效期与申报截止时间的权重 |
错误处理
API 使用标准 HTTP 状态码,所有错误响应包含统一的 JSON 结构。
错误响应格式
{
"status": "error",
"code": 400,
"message": "缺少必填字段: company_name",
"details": {
"field": "company_name",
"expected": "string",
"received": "undefined"
}
}| 状态码 | 含义 | 常见场景 |
|---|---|---|
| 200 | 成功 | 请求正常处理,返回结果数据 |
| 400 | 请求参数错误 | 缺少必填字段、字段类型不匹配、JSON 格式错误 |
| 404 | 资源不存在 | 查询的政策 ID 不存在 |
| 405 | 方法不允许 | 对 GET 端点发送 POST 请求 |
| 422 | 数据验证失败 | 字段值不在允许的范围内 |
| 500 | 服务器内部错误 | 数据库连接失败、未知异常 |
检查 status 字段
所有响应都包含 status 字段("success" 或 "error"),优先用它判断请求结果。
处理 rate limit
虽然当前版本不限速,但建议在客户端实现指数退避重试,为生产环境做好准备。
验证必填字段
在发送请求前确保所有必填字段已填写,避免 400 错误。参考上方 Schema 表格。