介绍

欢迎使用 AIPECO 环评智审公用 API。该 API 允许开发者上传环评报告、启动审核、查询进度并获取最终的审核报告。报告可通过 HTML、PDF 与标准化 JSON 三种形式获取。通过此开发文档,开发者能够将强大的 AIPECO 环评智审系统融入自己的产品和服务。所有 API 请求都基于 HTTP,并返回 JSON 格式的响应数据(文件下载除外)。


为了方便您的开发,建议您在开发前准备一个只有两三句话的短小文档,并向我们申请仅用于开发和测试的 API Key 次数。


我们的产品正在开发和迭代,但会保证当前版本的 API 能被未来版本兼容。您可以在未来出现更新时根据需要来升级到新的版本,届时我们会提供更新指引。API 文档的编写时间有限,我们致力于确保本文档的准确性和完整性,但疏漏之处在所难免。如果您发现任何错误或不一致的问题,欢迎随时向我们反馈,我们将不胜感激。对于任何技术性问题,您可以随时与我们联系。

API 基地址: https://aiapi.hab65.com/api

身份认证

所有 API 请求都需要通过 API Key 进行身份验证。您需要在每个请求的 HTTP Header 中包含 Authorization 字段,其值为您的专属 API Key。

请求头示例

Authorization: YOUR_API_KEY

请妥善保管您的 API Key,不要泄露给他人。所有使用您 API Key 的请求都将被视为您本人的操作。

我们不建议您将 API Key 放置在代码明文中,最佳实践方式是放在环境变量和本地配置文件中,遵循“密钥不进入代码仓库”的原则。

1. 上传并创建项目

此端点用于上传环评报告文件。成功上传后,系统会为该项目创建一个唯一的 project_id,用于后续的操作。请将此 project_id 存放于数据库中或妥善保管,便于之后的调用。

POST /upload_project

请求体 (multipart/form-data)

  • file: (必需) 环评报告文件。目前支持 .pdf, .doc, .docx 格式,后续将会开放压缩包上传及附件上传功能,即将上线,敬请期待。

成功响应 (200 OK)

{
    "success": true,
    "project_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef"
}

cURL 示例

curl -X POST "https://aiapi.hab65.com/api/upload_project" \
-H "Authorization: YOUR_API_KEY" \
-F "file=@/path/to/your/report.docx"

项目与 API Key 作绑定,API Key 是访问项目的凭证。

2. 启动项目审核

项目上传成功后,其初始状态为“待启动”。调用此端点将项目正式放入审核队列,开始排队等待处理。当前通过 API 调用的审核项目会被尽可能优先处理,未来将采用 API 高速专线处理,以保证 API 的使用体验。

POST /start_auditing

请求体 (application/json)

{
    "project_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef"
}

成功响应 (200 OK)

{
    "success": true,
    "message": "项目已成功放入审核队列"
}

cURL 示例

curl -X POST "https://aiapi.hab65.com/api/start_auditing" \
-H "Authorization: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"project_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef"}'

3. 查询项目状态

通过此端点可以轮询获取指定项目的当前审核状态和详细进度。建议轮询间隔为 10-15 秒。

GET /project/<project_id>/status

可能的状态 (status)

  • 待启动: 文件已上传,等待调用“启动审核”接口。
  • 排队中: 已进入队列,等待服务器资源。
  • 进行中: 正在进行审核。(注意: 如果服务器空闲,项目会直接进入此状态)
  • 已完成: 审核成功,可以获取报告。
  • 失败: 审核过程中发生错误。

成功响应 (200 OK)

{
    "success": true,
    "status": "进行中",
    "status_detail": "正在分块审核 57.1%"
}

cURL 示例

curl -X GET "https://aiapi.hab65.com/api/project/a1b2c3d4-e5f6-7890-1234-567890abcdef/status" \
-H "Authorization: YOUR_API_KEY"

4. 获取HTML报告

当项目状态变为“已完成”后,通过此端点可以下载可视化的HTML格式审核报告。

GET /project/<project_id>/get_html

成功响应 (200 OK)

响应体为一个 HTML 文件,其 Content-Typetext/html。浏览器将触发文件下载,文件名为 <project_id>.html

cURL 示例

curl -X GET "https://aiapi.hab65.com/api/project/a1b2c3d4-e5f6-7890-1234-567890abcdef/get_html" \
-H "Authorization: YOUR_API_KEY" \
-o "report.html"  # 将输出保存到 report.html 文件

5. 获取PDF报告

当项目状态变为“已完成”后,通过此端点可以下载PDF格式的审核报告。

GET /project/<project_id>/get_pdf

成功响应 (200 OK)

响应体为一个 PDF 文件,其 Content-Typeapplication/pdf。浏览器将触发文件下载,文件名为 <project_id>.pdf

PDF报告是后台异步生成的,首次请求此接口可能会触发生成过程。如果返回提示“正在生成中”,请稍后重试。

cURL 示例

curl -X GET "https://aiapi.hab65.com/api/project/a1b2c3d4-e5f6-7890-1234-567890abcdef/get_pdf" \
-H "Authorization: YOUR_API_KEY" \
-o "report.pdf"  # 将输出保存到 report.pdf 文件

6. 获取JSON报告

当项目状态变为“已完成”后,通过此端点可以获取开发者友好的标准化 JSON 报告。该报告按系统现有七类意见归档,区分“重点意见”和“需人工复核的意见”,每条意见都统一为 locationissuesuggestion 三个字段,便于二次加工展示。

GET /project/<project_id>/get_json

成功响应 (200 OK)

{
    "success": true,
    "project_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef",
    "report": {
        "project_name": "示例项目",
        "project_type": "环境影响报告表",
        "created_at": "2026-03-23T16:20:45.000000",
        "summary": {
            "key_findings_count": 3,
            "manual_review_count": 1,
            "categories": [
                {
                    "key": "engineering_analysis_expert",
                    "label": "工程分析",
                    "key_findings_count": 2,
                    "manual_review_count": 0
                },
                {
                    "key": "regulation_timeliness_expert",
                    "label": "法规标准时效性",
                    "key_findings_count": 0,
                    "manual_review_count": 1
                }
            ]
        },
        "key_findings": {
            "engineering_analysis_expert": {
                "label": "工程分析",
                "items": [
                    {
                        "location": "2.4 工程概况",
                        "issue": "原辅材料年用量与产能核算不一致。",
                        "suggestion": "补充物料衡算表,并统一正文与附表中的数据。"
                    }
                ]
            }
        },
        "manual_review": {
            "regulation_timeliness_expert": {
                "label": "法规标准时效性",
                "items": [
                    {
                        "location": "3.2 评价依据",
                        "issue": "引用标准版本可能存在冲突,需人工复核。",
                        "suggestion": "核对标准现行版本及实施日期后更新正文。"
                    }
                ]
            }
        }
    }
}

返回结构说明

  • summary: 报告摘要统计,包含重点意见总数、人工复核总数和七类意见分布。
  • key_findings: 主报告中的重点意见,固定使用七类意见 key 作为一级字段。
  • manual_review: 需人工复核的意见,结构与 key_findings 保持一致。
  • items: 每一条意见都包含 locationissuesuggestion

七类意见 key 对照

  • engineering_analysis_expert: 工程分析
  • regulation_timeliness_expert: 法规标准时效性
  • general_guideline_expert: 宏观原则与总体要求
  • language_logic_expert: 语言逻辑与格式规范
  • source_strength_feasibility_expert: 源强核算与措施可行性
  • quality_technology_expert: 技术质量与设施规范
  • prediction_emergency_expert: 环境影响预测与应急

常见错误响应

{
    "success": false,
    "message": "项目尚未完成,无法获取JSON报告"
}
{
    "success": false,
    "message": "JSON报告不存在"
}

cURL 示例

curl -X GET "https://aiapi.hab65.com/api/project/a1b2c3d4-e5f6-7890-1234-567890abcdef/get_json" \
-H "Authorization: YOUR_API_KEY"

状态码说明

状态码 含义 可能原因
200 OK 请求成功 操作成功执行。
400 Bad Request 请求无效 请求参数缺失或格式错误(如未上传文件、JSON格式错误)。
401 Unauthorized 认证失败 未提供 API Key 或 API Key 无效。
403 Forbidden 禁止访问 API Key 使用次数已达上限,或当前 API Key 无权访问该项目。
404 Not Found 资源不存在 请求的 project_id 不存在,或所请求的报告文件尚未生成。
409 Conflict 状态冲突 尝试启动一个已经启动或已完成的项目,或在项目尚未完成时请求 JSON 报告。
500 Internal Server Error 服务器内部错误 服务器处理请求时发生未知错误,请联系技术支持。