26 lines
1.4 KiB
PHP
26 lines
1.4 KiB
PHP
<?php
|
|
|
|
/** Async clinician-facing analysis. Enable only after migration and workers are ready. */
|
|
return [
|
|
'enabled' => filter_var(env('prescription_analysis.ENABLED', false), FILTER_VALIDATE_BOOLEAN),
|
|
'encryption_key' => (string) env('prescription_analysis.ENCRYPTION_KEY', ''),
|
|
'start_at' => (int) env('prescription_analysis.START_AT', 0),
|
|
'transcript_wait_seconds' => 300,
|
|
'debounce_seconds' => 60,
|
|
'lease_seconds' => 600,
|
|
'max_attempts' => 3,
|
|
'max_manual_retries' => 2,
|
|
'daily_model_tasks' => (int) env('prescription_analysis.DAILY_MODEL_TASKS', 200),
|
|
// Analyses of one prescription per day. Regenerating after each change is the normal way to
|
|
// review a case, so this is a budget guard, not a correctness limit.
|
|
'daily_patient_batches' => (int) env('prescription_analysis.DAILY_PATIENT_BATCHES', 20),
|
|
// Tasks that may run at the same time for one model, so several prescriptions are analysed
|
|
// concurrently instead of queueing behind each other. Each running task needs its own consumer
|
|
// process: start this many `php think prescription-ai:work --lane=<model>` instances.
|
|
'max_parallel_per_model' => max(1, (int) env('prescription_analysis.MAX_PARALLEL_PER_MODEL', 4)),
|
|
'refresh_recent_days' => 7,
|
|
'auto_refresh_sources' => true,
|
|
'auto_refresh_prescription' => true,
|
|
'max_context_bytes' => 8000000,
|
|
];
|