feat(ai): TranslationEngine trait + Bergamot/LibreTranslate/DeepL + cache SQLite (#58, #59) #180

Closed
charles wants to merge 3 commits from feat/58-59-translation-engine into main
Owner

Résumé

  • #58TranslationEngine trait async : translate(text, source, target), health_check(), supported_pairs(), name()
  • #59 — 3 backends complets : BergamotEngine (local offline), LibreTranslateEngine (self-hosted/public), DeepLEngine (free + pro tier)
  • CachedTranslationEngine<E> : wrapper générique qui cache les traductions dans SQLite (translations.db)
  • LangPair sérialisable pour la configuration

Changements

  • crates/fractal-ai/src/translation.rs (nouveau) — trait + 3 backends + cache SQLite
  • crates/fractal-ai/src/lib.rs — ajout pub mod translation + re-exports

Plan de test

  • cargo check -p fractal-ai passe
  • BergamotEngine::default() pointe sur 127.0.0.1:8787
  • LibreTranslateEngine::translate() envoie le bon JSON (q, source, target)
  • DeepLEngine utilise api-free.deepl.com si free_tier = true
  • CachedTranslationEngine ne rappelle pas le backend pour une traduction déjà en cache

Closes #58, closes #59

## Résumé - **#58** — `TranslationEngine` trait async : `translate(text, source, target)`, `health_check()`, `supported_pairs()`, `name()` - **#59** — 3 backends complets : `BergamotEngine` (local offline), `LibreTranslateEngine` (self-hosted/public), `DeepLEngine` (free + pro tier) - `CachedTranslationEngine<E>` : wrapper générique qui cache les traductions dans SQLite (`translations.db`) - `LangPair` sérialisable pour la configuration ## Changements - `crates/fractal-ai/src/translation.rs` (nouveau) — trait + 3 backends + cache SQLite - `crates/fractal-ai/src/lib.rs` — ajout `pub mod translation` + re-exports ## Plan de test - [ ] `cargo check -p fractal-ai` passe - [ ] `BergamotEngine::default()` pointe sur `127.0.0.1:8787` - [ ] `LibreTranslateEngine::translate()` envoie le bon JSON (q, source, target) - [ ] `DeepLEngine` utilise `api-free.deepl.com` si `free_tier = true` - [ ] `CachedTranslationEngine` ne rappelle pas le backend pour une traduction déjà en cache Closes #58, closes #59
feat(ai): export TranslationEngine from fractal-ai (#58, #59)
Some checks failed
CI / cargo check (pull_request) Has been cancelled
CI / cargo test (pull_request) Has been cancelled
CI / clippy + rustfmt (pull_request) Has been cancelled
b078eb74ce
charles closed this pull request 2026-04-06 02:45:49 +00:00
Some checks are pending
CI / cargo check (pull_request) Has been cancelled
CI / cargo test (pull_request) Has been cancelled
CI / clippy + rustfmt (pull_request) Has been cancelled
qa
Required

Pull request closed

Sign in to join this conversation.
No description provided.