49 lines
3.3 KiB
PHP
49 lines
3.3 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace app\common\service\followupaudio;
|
|
|
|
/** Only stable public codes/messages. Never propagate a response body, URL, key or clinical text. */
|
|
final class FollowupAudioException extends \RuntimeException
|
|
{
|
|
public string $errorCode;
|
|
public bool $uncertain;
|
|
|
|
public function __construct(string $errorCode, bool $uncertain = false)
|
|
{
|
|
$this->errorCode = $errorCode;
|
|
$this->uncertain = $uncertain;
|
|
$messages = [
|
|
'PIPELINE_CHECKPOINT_INVALID' => '分阶段检查点无效,请先核对任务,禁止重复提交',
|
|
'PIPELINE_CHECKPOINT_CONFLICT' => '分阶段检查点版本冲突,请核对任务状态',
|
|
'AUDIO_CHANNELS_UNSUPPORTED' => '仅支持单声道或双声道原件,更多声道须先核实,未混音处理',
|
|
'AUDIO_CHANNEL_REQUIRED' => '双声道处理缺少可信声道选择,已停止请求',
|
|
'PIPELINE_POLICY_CHANGED' => '旧处理策略检查点仅保留读取,不得换绑新策略重跑',
|
|
'ASR_SEGMENT_LIMIT' => '录音分片数量超出处理上限,已在新请求前停止,请核对分片配置',
|
|
'ASR_REJECTED' => '转写服务已明确拒绝该片段,已完成片段已保留',
|
|
'ASR_RESPONSE_INVALID' => '转写服务未返回可核验文本,请先核对该请求',
|
|
'ASR_QUALITY_REVIEW_REQUIRED' => '转写存在异常重复,已保留文本,请人工回听核对后再处理',
|
|
'ASR_TRANSCRIPT_EMPTY' => '完整录音未转写出可提取文本,请回听核对',
|
|
'EXTRACTION_REJECTED' => '提取服务已明确拒绝请求,完整转写已保留',
|
|
'CONFIG_MISSING' => '当前音频模型服务未完整配置,音频能力尚未验证',
|
|
'HTTPS_REQUIRED' => '真实音频只允许通过有效 HTTPS 服务传输',
|
|
'PROVIDER_CONFIGURATION_CHANGED' => '音频模型配置已变化或缺少绑定,任务未发送,请重新核对',
|
|
'FEATURE_DISABLED' => '随访音频功能未启用',
|
|
'AUDIO_NOT_VERIFIED' => '当前应用尚未通过音频能力验证',
|
|
'AUDIO_NOT_PROCESSED' => '上游未确认读取原始音频,未生成可采用结果',
|
|
'UPSTREAM_UNCERTAIN' => '上游结果未知,请先核对任务或计费,禁止重复提交',
|
|
'RECONCILIATION_REQUIRED' => '任务已有上游请求,须先人工核对,禁止重复提交',
|
|
'UPSTREAM_SCHEMA_INVALID' => '上游未返回完整、可核验的结构化音频事实',
|
|
'UPSTREAM_AUDIO_REJECTED' => '当前模型服务拒绝音频附件,未降级为纯文本',
|
|
'LEASE_LOST' => '任务租约或访问权限已失效',
|
|
'ACCESS_REVOKED' => '执行权限已撤销',
|
|
'UPSTREAM_AUDIO_LIMIT' => '录音处理副本仍超出已配置的上游限制,未发送,请联系管理员',
|
|
'AUDIO_NORMALIZATION_FAILED' => '录音兼容处理失败,原件已保留且未发送,请检查 FFmpeg',
|
|
'AUDIO_NORMALIZATION_TIMEOUT' => '录音兼容处理超时,原件已保留且未发送',
|
|
'AUDIO_INVALID' => '音频文件无效、发生变化或超出限制',
|
|
];
|
|
parent::__construct($messages[$errorCode] ?? '随访音频处理失败,请检查服务配置或任务状态');
|
|
}
|
|
}
|