shimai
yesterday 6f45735adfdcd973a19f638f9ced9629f79cd6de
API文档.md
@@ -3079,6 +3079,26 @@
### 返回数据结构
## GET 未命名接口
GET /X
> 返回示例
> 200 Response
```json
{}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
# AI云小调/AI调解实时看板
## GET 查询调解记录列表(实时看板专用)
@@ -3635,6 +3655,53 @@
|»» startTime|string|true|none||none|
|»» duration|string|true|none||none|
## PUT 人工接管API
PUT /api/v1/mediation-timeline/v2/case/202601301030001111/takeover
> Body 请求参数
```json
{
  "userName": "tony"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|body|body|object| 否 ||none|
|» userName|body|string| 是 | 当前用户名|none|
> 返回示例
> 400 Response
```json
{
  "code": 400,
  "message": "案件已被接管,不允许重复接管",
  "data": null
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|none|Inline|
### 返回数据结构
状态码 **400**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» message|string|true|none||none|
|» data|null|true|none||none|
# AI云小调/调解协议
## POST 调解协议生成
@@ -3956,5 +4023,369 @@
|»» agreeId|string|true|none|协议ID|none|
|»» agreeContent|string|true|none|协议内容|none|
# AI云小调/外呼通话
## POST 智能外呼拨打电话
POST /api/v1/outbound-bot/call-v2
> Body 请求参数
```json
{
  "caseId": "string",
  "mediationId": "string",
  "callAuto": 0,
  "callPersonId": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|body|body|object| 否 ||none|
|» caseId|body|string| 是 | 案件ID|none|
|» mediationId|body|string| 是 | AI调解反馈ID|none|
|» callAuto|body|integer| 是 | 是否自动拨打(0:自动,1:手动)|none|
|» callPersonId|body|string| 是 | 被呼叫人ID|none|
> 返回示例
> 201 Response
```json
{
  "code": 201,
  "message": "外呼请求处理完成",
  "data": [
    {
      "errorCode": 0,
      "message": "外呼发起成功",
      "id": 26,
      "mediationId": 20,
      "nodeId": 5,
      "taskName": "履约回访",
      "result": null,
      "personType": 0,
      "mediationType": 1,
      "personId": "2303191513081131",
      "jobId": "1770463000471-447e-96ea-97523c61189b",
      "instanceId": "4087bb39-7688-4c5b-a4c5-01f7bb98e466",
      "jobGroupId": "dfd0c60b-6434-4482-afc7-ac5f83f9ffe6",
      "scriptId": "3c0aabe5-eb82-4f25-a8c2-8a66ddd5fa0f",
      "callStatus": "Scheduling",
      "remark": null,
      "deleteStatus": 1,
      "creator": "system",
      "createTime": "2026-02-07",
      "modifier": null,
      "modifyTime": null,
      "startTime": null,
      "callInterval": null
    },
    {
      "errorCode": 0,
      "message": "外呼发起成功",
      "id": 27,
      "mediationId": 20,
      "nodeId": 5,
      "taskName": "履约回访",
      "result": null,
      "personType": 0,
      "mediationType": 1,
      "personId": "2303191513081130",
      "jobId": "1770463016662-4d90-ab26-a10656d79a73",
      "instanceId": "4d5f2f2b-c7c2-4c41-b19c-02a72341323b",
      "jobGroupId": "280e5420-e0e2-43a9-be51-c54270f6abdd",
      "scriptId": "fc73783d-1ea6-4282-a116-7b2ab6186470",
      "callStatus": "Scheduling",
      "remark": null,
      "deleteStatus": 1,
      "creator": "system",
      "createTime": "2026-02-07",
      "modifier": null,
      "modifyTime": null,
      "startTime": null,
      "callInterval": null
    }
  ]
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|none|Inline|
### 返回数据结构
状态码 **201**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» message|string|true|none||none|
|» data|[object]|true|none||none|
|»» errorCode|integer|true|none|错误码(0:成功,1001:须等待,1002:呼叫已达上限)|none|
|»» message|string|true|none||none|
|»» id|integer|true|none|调解记录ID|none|
|»» mediationId|integer|true|none|调解ID|none|
|»» nodeId|integer|true|none|节点ID|none|
|»» taskName|string|true|none|任务名称|none|
|»» result|null|true|none|记录结果|none|
|»» personType|integer|true|none|用户类型|none|
|»» mediationType|integer|true|none|调解方式|none|
|»» personId|string|true|none|用户ID|none|
|»» jobId|string|true|none|工作ID|none|
|»» instanceId|string|true|none|实例ID|none|
|»» jobGroupId|string|true|none|工作组ID|none|
|»» scriptId|string|true|none|场景ID|none|
|»» callStatus|string|true|none|呼叫状态|none|
|»» remark|null|true|none||none|
|»» deleteStatus|integer|true|none||none|
|»» creator|string|true|none||none|
|»» createTime|string|true|none||none|
|»» modifier|null|true|none||none|
|»» modifyTime|null|true|none||none|
|»» startTime|null|true|none|下一轮呼叫开始时间|none|
|»» callInterval|null|true|none|下一轮呼叫间隔|none|
## GET 获取通话录音接口
GET /api/v1/outbound-bot/conversation-log
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|caseId|query|string| 否 ||案件id|
|personId|query|string| 否 ||当事人id|
|jobId|query|string| 否 ||工作ID|
> 返回示例
> 200 Response
```json
{
  "code": 200,
  "message": "查询成功",
  "data": [
    {
      "callType": "follow_up",
      "jobId": "1770604607798-4f25-a8be-32a23b347047",
      "conversations": "[{\"timestamp\": 1770604618000, \"speaker\": \"Contact\", \"script\": \"\", \"action\": \"BeginDialogue\"}, {\"timestamp\": 1770604619000, \"speaker\": \"Robot\", \"script\": \"您好,刘树杰先生,请问您有关于调解协议执行情况的问题吗?我是负责跟进您与胡龙光先生之间调解协议执行情况的调解员。\", \"action\": \"Broadcast\"}, {\"timestamp\": 1770604629000, \"speaker\": \"Contact\", \"script\": null, \"action\": \"EndDialogue\"}]",
      "callStatus": "Succeeded",
      "recordUrl": "http://voicenavigator-cn-shanghai.oss-cn-shanghai.aliyuncs.com/exported_files/e938a68795634c88b8160f30c6da7b67.wav?Expires=1770691031&OSSAccessKeyId=LTAIHgPej9maicqw&Signature=oFCXtkSWyuEjOQQl97nBRnCIxUA%3D"
    },
    {
      "callType": "follow_up",
      "jobId": "1770602740446-4bb6-bbbd-ffe36aea0c10",
      "conversations": "[{\"timestamp\": 1770602756000, \"speaker\": \"Contact\", \"script\": \"\", \"action\": \"BeginDialogue\"}, {\"timestamp\": 1770602762000, \"speaker\": \"Robot\", \"script\": \"您好!我是您的调解员。请问有关调解协议的执行情况,您需要了解哪方面的信息?例如支付进度或是遇到的任何问题。\", \"action\": \"Broadcast\"}, {\"timestamp\": 1770602765000, \"speaker\": \"Contact\", \"script\": null, \"action\": \"EndDialogue\"}]",
      "callStatus": "Succeeded",
      "recordUrl": "http://voicenavigator-cn-shanghai.oss-cn-shanghai.aliyuncs.com/exported_files/c88d0baef0274b7fac77dc295305e18c.wav?Expires=1770689167&OSSAccessKeyId=LTAIHgPej9maicqw&Signature=kU56Yb6AoJGcolEwAfvDNQ80X48%3D"
    },
    {
      "callType": "follow_up",
      "jobId": "1770463373513-4403-bf04-c3874e76dc45",
      "conversations": "[{\"timestamp\": 1770463384000, \"speaker\": \"Contact\", \"script\": \"\", \"action\": \"BeginDialogue\"}, {\"timestamp\": 1770463385000, \"speaker\": \"Robot\", \"script\": \"您好!我是您的调解员。请问关于调解协议的执行情况,您需要了解哪方面的信息?例如支付进度或是遇到的问题等。\", \"action\": \"Broadcast\"}, {\"timestamp\": 1770463392000, \"speaker\": \"Contact\", \"script\": null, \"action\": \"EndDialogue\"}]",
      "callStatus": "Succeeded",
      "recordUrl": "http://voicenavigator-cn-shanghai.oss-cn-shanghai.aliyuncs.com/exported_files/4839545695964058a1034c574023076a.wav?Expires=1770549793&OSSAccessKeyId=LTAIHgPej9maicqw&Signature=jQhpnhu7OU7YZYTmkGwApTlDyiA%3D"
    },
    {
      "callType": "follow_up",
      "jobId": "1770463328247-4d9e-9280-9f529c2ddc2e",
      "conversations": "[{\"timestamp\": 1770463341000, \"speaker\": \"Contact\", \"script\": \"\", \"action\": \"BeginDialogue\"}, {\"timestamp\": 1770463343000, \"speaker\": \"Robot\", \"script\": \"您好,我是您的调解员。请问您是刘树杰先生吗?关于您与胡龙光先生之间的调解协议,我需要了解一些执行情况。您可以告诉我目前的进展吗?\", \"action\": \"Broadcast\"}, {\"timestamp\": 1770463344000, \"speaker\": \"Contact\", \"script\": null, \"action\": \"EndDialogue\"}]",
      "callStatus": "Succeeded",
      "recordUrl": "http://voicenavigator-cn-shanghai.oss-cn-shanghai.aliyuncs.com/exported_files/c70a9ead18884893ab75f7fa23a3b2fe.wav?Expires=1770549745&OSSAccessKeyId=LTAIHgPej9maicqw&Signature=oTTdOvz0TxAsybkF762Nd2Tc1b4%3D"
    },
    {
      "callType": "follow_up",
      "jobId": "1770463016662-4d90-ab26-a10656d79a73",
      "conversations": "[{\"timestamp\": 1770463027000, \"speaker\": \"Contact\", \"script\": \"\", \"action\": \"BeginDialogue\"}, {\"timestamp\": 1770463029000, \"speaker\": \"Robot\", \"script\": \"您好,刘树杰先生,请问您有关于调解协议执行情况的问题吗?需要我帮忙确认什么信息?\", \"action\": \"Broadcast\"}, {\"timestamp\": 1770463029000, \"speaker\": \"Contact\", \"script\": null, \"action\": \"EndDialogue\"}]",
      "callStatus": "Succeeded",
      "recordUrl": "http://voicenavigator-cn-shanghai.oss-cn-shanghai.aliyuncs.com/exported_files/4630b437e9604e308a538a6fd7ae7b07.wav?Expires=1770549430&OSSAccessKeyId=LTAIHgPej9maicqw&Signature=Hom7YsvUoYUtl5lNpJZ1WBuOTbc%3D"
    },
    {
      "callType": "agreement",
      "jobId": "1770443034230-469e-a0f0-ea0aa3ab6bea",
      "conversations": "[{\"timestamp\": 1770443048000, \"speaker\": \"Contact\", \"script\": \"\", \"action\": \"BeginDialogue\"}, {\"timestamp\": 1770443050000, \"speaker\": \"Robot\", \"script\": \"您好,刘树杰女士。经过前期沟通,您与胡龙光先生已就3742元工资支付达成初步共识。以下是调解协议草案的主要内容:\\n\\n1. **分期支付**:6月26日前支付1500元,7月26日前支付1500元,8月26日前支付742元。\\n2. **支付方式**:通过微信转账至您的微信号liusujie7879。\\n3. **协议效力**:本协议将申请司法确认,具有法律强制力。\\n\\n请您仔细审阅以上内容,确认是否同意此方案?如有任何修改意见,请及时提出。谢谢。\", \"action\": \"Broadcast\"}, {\"timestamp\": 1770443064000, \"speaker\": \"Contact\", \"script\": null, \"action\": \"EndDialogue\"}]",
      "callStatus": "Succeeded",
      "recordUrl": "http://voicenavigator-cn-shanghai.oss-cn-shanghai.aliyuncs.com/exported_files/45f8967ff20d4c8aa4f514bdb3e80945.wav?Expires=1770529466&OSSAccessKeyId=LTAIHgPej9maicqw&Signature=phWs9VrnkMf9lM1xKJzu9G6thsI%3D"
    },
    {
      "callType": "follow_up",
      "jobId": "1770434323240-43e9-9322-c3ee9a5432e6",
      "conversations": "[{\"timestamp\": 1770434333000, \"speaker\": \"Contact\", \"script\": \"\", \"action\": \"BeginDialogue\"}, {\"timestamp\": 1770434335000, \"speaker\": \"Robot\", \"script\": \"您好!我是您的调解员。请问您是刘树杰先生吗?关于您与胡龙光先生之间的调解协议履行情况,我需要进行回访。根据协议,胡龙光先生应在2025年10月31日前一次性支付给您3742元工资。请问您是否已经收到了这笔款项?如果还没有收到,我们将帮助您跟进此事。如果有任何问题或需要进一步的帮助,请随时告诉我。\", \"action\": \"Broadcast\"}, {\"timestamp\": 1770434341000, \"speaker\": \"Contact\", \"script\": \"我是我是。\", \"action\": \"Dialogue\"}, {\"timestamp\": 1770434342000, \"speaker\": \"Robot\", \"script\": \"刘树杰先生,感谢您的确认。根据我们之前的调解协议,胡龙光先生应在2025年10月31日前一次性支付给您3742元工资。请问您是否已经收到了这笔款项?如果已收到,请确认金额是否准确;如果没有收到,我们将协助您跟进此事。请您告知具体情况,以便我们能够提供相应的帮助。\", \"action\": \"Broadcast\"}, {\"timestamp\": 1770434348000, \"speaker\": \"Contact\", \"script\": null, \"action\": \"EndDialogue\"}]",
      "callStatus": "Succeeded",
      "recordUrl": "http://voicenavigator-cn-shanghai.oss-cn-shanghai.aliyuncs.com/exported_files/69599600af11482fb693e9e040394d2c.wav?Expires=1770520749&OSSAccessKeyId=LTAIHgPej9maicqw&Signature=00KtVr%2BIszHq1wW5gRwWJQlyGhc%3D"
    },
    {
      "callType": "follow_up",
      "jobId": "1770430061262-4918-88b2-5f24100726d7",
      "conversations": "[{\"timestamp\": 1770430070000, \"speaker\": \"Contact\", \"script\": \"\", \"action\": \"BeginDialogue\"}, {\"timestamp\": 1770430071000, \"speaker\": \"Robot\", \"script\": \"您好!我是您的调解员。请问关于您的调解协议有需要确认或跟进的事项吗?特别是关于胡龙光先生应支付的款项,您是否已经收到了相应的金额?如果有任何问题或需要帮助的地方,请随时告诉我。\", \"action\": \"Broadcast\"}, {\"timestamp\": 1770430081000, \"speaker\": \"Contact\", \"script\": \"都搞定了都搞定了。都搞定了。问题。\", \"action\": \"Dialogue\"}, {\"timestamp\": 1770430085000, \"speaker\": \"Robot\", \"script\": \"好的,看起来可能有些重复了。如果问题是关于调解协议的后续事宜或者其他相关问题,请直接说明,我会尽力帮助您。是否有具体的事项需要确认或处理?\", \"action\": \"Broadcast\"}, {\"timestamp\": 1770430091000, \"speaker\": \"Contact\", \"script\": \"都搞定了都搞定了。\", \"action\": \"Dialogue\"}, {\"timestamp\": 1770430092000, \"speaker\": \"Robot\", \"script\": \"非常好,既然一切都已解决,如果您未来有任何其他问题或需要帮助,无论是关于这次调解还是其他事宜,都欢迎随时联系我。祝您生活顺利!如果有新的问题或需要进一步的帮助,请告诉我。\", \"action\": \"Broadcast\"}, {\"timestamp\": 1770430095000, \"speaker\": \"Contact\", \"script\": null, \"action\": \"EndDialogue\"}]",
      "callStatus": "Succeeded",
      "recordUrl": "http://voicenavigator-cn-shanghai.oss-cn-shanghai.aliyuncs.com/exported_files/15f0eb41b36c41fdaeaceedc322c568c.wav?Expires=1770516497&OSSAccessKeyId=LTAIHgPej9maicqw&Signature=ipoBRl%2FtUQCQUSsM6cUogXBVMas%3D"
    },
    {
      "callType": "follow_up",
      "jobId": "1770428492869-4a7c-bd6b-9cb47940c1d4",
      "conversations": "[{\"timestamp\": 1770428515000, \"speaker\": \"Contact\", \"script\": \"\", \"action\": \"BeginDialogue\"}, {\"timestamp\": 1770428520000, \"speaker\": \"Robot\", \"script\": \"您好!我是您的调解员。请问关于您的调解协议有需要确认或跟进的事项吗?特别是关于胡龙光先生应支付的款项,您是否已经收到了相应的金额?如果有任何问题或需要帮助的地方,请随时告诉我。\", \"action\": \"Broadcast\"}, {\"timestamp\": 1770428536000, \"speaker\": \"Contact\", \"script\": \"嗯,调解协议内容有什么呢?\", \"action\": \"Dialogue\"}, {\"timestamp\": 1770428537000, \"speaker\": \"Robot\", \"script\": \"根据我们之前达成的调解协议,主要内容如下:\\n\\n1. **纠纷背景**:您在胡龙光经营的心怡服装厂工作,由于服装厂经营不善,胡龙光拖欠您2025年4月份工资共计人民币3742元。\\n\\n2. **调解结果**:\\n   - 胡龙光同意一次性支付您2025年4月份工资共计人民币3742元。\\n   - 支付方式为转账至您指定的银行账户。\\n   - 履行期限为2025年10月31日前完成支付。\", \"action\": \"Broadcast\"}, {\"timestamp\": 1770428549000, \"speaker\": \"Contact\", \"script\": null, \"action\": \"EndDialogue\"}]",
      "callStatus": "Succeeded",
      "recordUrl": "http://voicenavigator-cn-shanghai.oss-cn-shanghai.aliyuncs.com/exported_files/0e94b3c359fd4366a0b7d380b0477a64.wav?Expires=1770514950&OSSAccessKeyId=LTAIHgPej9maicqw&Signature=oZn8wXu7wit9gs%2F3%2FvE4rJXLF5k%3D"
    }
  ]
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» message|string|true|none||none|
|» data|[object]|true|none||none|
|»» callType|string|true|none|阶段类型|none|
|»» jobId|string|true|none|工作ID|none|
|»» conversations|string|true|none|通话列表|none|
|»» callStatus|string|true|none|通话状态|none|
|»» recordUrl|string|true|none|音频地址|none|
## GET 通话状态查询
GET /api/v1/outbound-bot/status
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|caseRef|query|string| 否 ||案件id|
|phoneNumber|query|string| 否 ||电话号码|
|jobId|query|string| 否 ||工作ID|
> 返回示例
> 200 Response
```json
{
  "code": 200,
  "message": "查询成功",
  "data": {
    "caseRef": "202601281644031088",
    "phoneNumber": "13922111489",
    "jobId": "1770616775983-4d49-942b-14fb194e6527",
    "callStatus": "Succeeded",
    "fetchTime": "2026-02-09 14:10:11",
    "jobGroupId": "0a541bee-0d6d-461f-ac84-4de2cd765ea1",
    "instanceId": "4087bb39-7688-4c5b-a4c5-01f7bb98e466"
  }
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» message|string|true|none||none|
|» data|object|true|none||none|
|»» caseRef|string|true|none|案件ID|none|
|»» phoneNumber|string|true|none|手机号|none|
|»» jobId|string|true|none|工作ID|none|
|»» callStatus|string|true|none|呼叫状态|none|
|»» fetchTime|string|true|none|更新时间|none|
|»» jobGroupId|string|true|none|工作组ID|none|
|»» instanceId|string|true|none|场景ID|none|
## POST 更新呼叫状态
POST /api/v1/outbound-bot/update-status
> Body 请求参数
```json
{
  "jobId": "string",
  "callStatus": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|body|body|object| 否 ||none|
|» jobId|body|string| 是 | 工作ID|none|
|» callStatus|body|string| 是 | 外呼状态|none|
> 返回示例
> 200 Response
```json
{
  "code": 200,
  "message": "状态更新成功",
  "data": null
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» message|string|true|none||none|
|» data|null|true|none||none|
# AI云小调/OCR识别AI总结
## POST 自动获取文件ocr
POST /api/v1/case-files-ocr/process
> 返回示例
> 200 Response
```json
{}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
# 数据模型