feat: configure audio providers and add local sample acceptance
This commit is contained in:
@@ -17,15 +17,17 @@ final class FollowupAudioWorker
|
||||
|
||||
public function runOnce(): bool
|
||||
{
|
||||
if (!FollowupAudioStore::enabled() || !FollowupAudioStore::verified() || !($task = FollowupAudioStore::claim())) {
|
||||
if (!FollowupAudioStore::enabled() || !($task = FollowupAudioStore::claim())) {
|
||||
return false;
|
||||
}
|
||||
$id = (int) $task['id'];
|
||||
$token = (string) $task['lease_token'];
|
||||
$started = (int) ($task['upstream_started_at'] ?? 0) > 0;
|
||||
try {
|
||||
FollowupAudioStore::assertTaskProvider($task);
|
||||
if (!FollowupAudioStore::verified((string) $task['model_key'])) { throw new FollowupAudioException('AUDIO_NOT_VERIFIED'); }
|
||||
$heartbeat = function (array $fields = []) use ($task, $id, $token, &$started): bool {
|
||||
FollowupAudioStore::assertTaskProvider($task);
|
||||
if (!FollowupAudioStore::enabled() || !FollowupAudioStore::verified((string) $task['model_key'])) { return false; }
|
||||
$actor = PrescriptionAiAccess::actor((int) $task['actor_id']);
|
||||
if (!$actor) { return false; }
|
||||
@@ -42,7 +44,7 @@ final class FollowupAudioWorker
|
||||
throw new FollowupAudioException('LEASE_LOST', true);
|
||||
}
|
||||
} catch (FollowupAudioException $e) {
|
||||
FollowupAudioStore::fail($id, $token, $e->errorCode, $e->getMessage(), $e->uncertain);
|
||||
FollowupAudioStore::fail($id, $token, $e->errorCode, $e->getMessage(), $e->uncertain || $started);
|
||||
} catch (\Throwable $e) {
|
||||
// The exception may contain SQL, names, transcript, credentials or a signed URL.
|
||||
FollowupAudioStore::fail($id, $token, 'INTERNAL_ERROR', '音频任务执行异常,请核对任务状态', $started);
|
||||
|
||||
Reference in New Issue
Block a user