feat: configure audio providers and add local sample acceptance

This commit is contained in:
2026-10-07 18:15:32 +08:00
parent 70be2fc70f
commit fea33285e8
21 changed files with 1103 additions and 131 deletions
@@ -7,6 +7,7 @@ namespace app\adminapi\logic\tcm;
use app\common\service\followupaudio\FollowupAudioAccess as Access;
use app\common\service\followupaudio\FollowupAudioApply as Apply;
use app\common\service\followupaudio\FollowupAudioFields as Fields;
use app\common\service\followupaudio\FollowupAudioProviderConfig as ProviderConfig;
use app\common\service\followupaudio\FollowupAudioStore as Store;
use app\common\service\followupaudio\FollowupAudioUpload as Upload;
use DomainException;
@@ -23,10 +24,7 @@ final class FollowupAudioLogic
'enabled' => $enabled, 'audio_verified' => $verified,
'can_upload' => $enabled && $verified, 'can_apply' => $enabled && $verified,
'can_daily' => $daily, 'limits' => Upload::limits(),
'models' => array_values(array_filter(
[['value' => 'qwen', 'label' => '千问'], ['value' => 'openai', 'label' => 'OpenAI']],
static fn (array $model): bool => Store::verified($model['value'])
)),
'models' => ProviderConfig::publicModels(),
// No migration/dictionary dependency is introduced when the feature is OFF.
'fields' => $enabled ? self::catalogForActor($diagnosis, $actor, $info) : [],
];
@@ -38,7 +36,7 @@ final class FollowupAudioLogic
throw new DomainException('回访录音功能尚未启用');
}
if ($verified && !Store::verified()) {
throw new DomainException('Dify 音频能力尚未验证,暂不接受真实录音或写入');
throw new DomainException('当前服务与模型的音频能力尚未验证,暂不接受真实录音或写入');
}
}