- Issue created by @viappidu
Gemini seems really great on keeping the style also on translations. Rather use it.
Solution in merge code to follow.
Note: this integrates and solves
🐛
Gemini API error with empty stopSequences value
Active
Gemini does not offer (yet) a specialized translateText method like DeepL does, so the chat method used by ai_translate can be used. Maybe this is superfluous, nonetheless it was a good exercise and Gemini can now be used with:
$translator = \Drupal::service('ai.provider')->createInstance('gemini');
$input = new TranslateTextInput($text, 'en', 'it');
/** @var \Drupal\ai\OperationType\TranslateText\TranslateTextOutput $translation */
$translation = $translator->translateText($input, 'models/gemini-1.5-pro', []);
return $translation->getNormalized();
or if set as default in AI settings with:
$providerConfig = $this->aiProviderManager->getDefaultProviderForOperationType('translate_text');
$provider = $this->aiProviderManager->createInstance($providerConfig['provider_id'], $providerConfig);
$translation = $provider->translateText(
new TranslateTextInput($input_text, $langFrom?->getId(), $langTo->getId()),
$providerConfig['model_id']
);
Add tests?
Active
1.0
Code