FriendsOfREDAXO / FriendsOfREDAXO/ai_platform
Erweiterungspunkt für eigene Provider (AI_PLATFORM_PROVIDERS)
- Dominant language
- PHP
- Stars
- 4
- Forks
- 0
- Avg merge
- 4d 14h
- Merged PRs (30d)
- 5
Description
## Kontext
Beim Bauen eines neuen "OpenAI-kompatibel"-Providers (eigene Basis-URL, für selbstgehostete Server wie Open WebUI/LiteLLM/vLLM/LM Studio, siehe zugehöriger PR) ist aufgefallen: `Service::getProviders()` und `Service::getPlatform()` sind feste `match`-Statements ohne Erweiterungspunkt. Ein Drittanbieter-Addon kann aktuell keinen eigenen Provider registrieren, ohne `lib/Service.php` direkt zu patchen.
Andere Stellen in ai_platform sind dagegen schon bewusst erweiterbar gebaut – `AI_PLATFORM_MCP_TOOLS` für MCP-Tools, `AI_PLATFORM_OAUTH_SCOPES` für OAuth-Scopes. Für Provider fehlt das Äquivalent.
## Vorschlag
Ein neuer `rex_extension`-Erweiterungspunkt, z.B. `AI_PLATFORM_PROVIDERS`, den `getProviders()`/`getPlatform()`/`getModelSuggestions()` zusätzlich zu den fest eingebauten Providern auswerten. Ein Addon würde dann z.B. so registrieren:
```php
rex_extension::register('AI_PLATFORM_PROVIDERS', function (rex_extension_point $ep) {
$providers = $ep->getSubject();
$providers['mein_provider'] = [
'label' => 'Mein Provider',
'factory' => MyAddon\MyPlatformFactory::class, // liefert eine Symfony\AI\Platform\Platform
];
return $providers;
});
```
Vorbild für dieses Muster: `MEDIAPLACE_STORAGE_PROVIDERS` im `mediaplace`-Addon (gleiche Grundidee: Label + Rechte-Check + Factory-Klasse, Registry-Klasse filtert nach `getAvailableProviders()`).
## Nicht dringend
Der generische "OpenAI-kompatibel"-Provider selbst braucht diesen Erweiterungspunkt nicht – der ist breit genug einsetzbar, um fest in ai_platform eingebaut zu bleiben. Der Erweiterungspunkt wäre für speziellere/proprietäre Provider interessant, die einzelne Addons selbst mitbringen wollen, ohne einen PR gegen ai_platform zu brauchen.
🤖 Filed via [Claude Code](https://claude.com/claude-code)
Contributor guide
No contributing guide indexed for this repository
Research direction
Start in lib/Service.php by reading Service::getProviders(), Service::getPlatform(), and Service::getModelSuggestions(), then compare the existing AI_PLATFORM_MCP_TOOLS and AI_PLATFORM_OAUTH_SCOPES extension points. Review MEDIAPLACE_STORAGE_PROVIDERS in the mediaplace addon for the registry pattern. Done means third-party addons can register provider labels and factories without patching ai_platform, while built-in providers remain available.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- php, symfony
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100