Add AWS Bedrock three-tier gateway routing (LiteLLM via Colin)

Routes AI tools across three tiers based on task complexity:
- Azure GPT-4o-mini always: redact, translate, timeline-basic, search-legal (mechanical tasks)
- Claude Haiku 4.5 (Bedrock): ask, summarize, timeline-deep, citations (Norwegian nuance)
- Claude Sonnet 4.6 (Bedrock): korrespond, legal-analysis, deep-research, barnevernet-analyze,
  discrepancy-find, advocate (public-facing legal output)

No AWS credentials in app — credentials live in LiteLLM on Colin (same as nova-lite).
Rollback: DBN_BEDROCK_ENABLED=false in .env, no code push needed.

Includes extended thinking support for Pro deep-research via chatWithThinking().
Claude Opus 4.7 constant added for future premium tier (needs litellm_config.yaml entry).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-25 15:22:48 +02:00
parent 17ad54cf36
commit 8a11001bff
11 changed files with 520 additions and 43 deletions
+4 -3
View File
@@ -3,6 +3,7 @@ declare(strict_types=1);
require_once __DIR__ . '/bootstrap.php';
require_once __DIR__ . '/AzureOpenAiGateway.php';
require_once __DIR__ . '/DbnGatewayFactory.php';
/**
* Korrespond — drafts replies or new correspondence to Norwegian authorities
@@ -56,11 +57,11 @@ final class DbnKorrespondAgent
'other' => 'mottaker',
];
private DbnAzureOpenAiGateway $azure;
private DbnAzureOpenAiGateway|DbnBedrockGateway $azure;
public function __construct(?DbnAzureOpenAiGateway $azure = null)
public function __construct(DbnAzureOpenAiGateway|DbnBedrockGateway|null $azure = null)
{
$this->azure = $azure ?: new DbnAzureOpenAiGateway();
$this->azure = $azure ?: DbnGatewayFactory::makeForTool('korrespond');
}
/** Localized chrome/progress strings, keyed by user UI language. */