| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
AI (ai_app)
• Discuss (mail) |
| Lines of code | 1690 |
| Technical Name |
suite_self_ai_translate |
| License | OPL-1 |
| Website | https://suitestate.com |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
AI (ai_app)
• Discuss (mail) |
| Lines of code | 1690 |
| Technical Name |
suite_self_ai_translate |
| License | OPL-1 |
| Website | https://suitestate.com |
Self-Hosted AI Translate: DeepSeek, Qwen, Ollama
Self-hosted AI provider + bidirectional Discuss translation for Odoo 19 Enterprise
Overview
Two-in-one module for Odoo 19 Enterprise: registers DeepSeek and any self-hosted OpenAI-compatible LLM as native AI providers, and adds bidirectional real-time translation to all Discuss conversations.
- AI Provider Pool — DeepSeek + Self-Hosted (Ollama, vLLM, LM Studio, Qwen, HuggingFace TGI).
- Discuss AI Translate — incoming and outgoing message translation across 100+ languages.
After installation, DeepSeek and self-hosted models appear in the AI Agent model selector alongside OpenAI and Google Gemini — no patching, no wrapper, no separate configuration page.
AI Provider Pool
DeepSeek
Chat Completions API with function calling. Supports DeepSeek V3
Chat and DeepSeek R1 Reasoner models. Excellent quality at low
cost — ideal for Chinese and multilingual workloads. API key
configured per database in Settings → AI, or via the
ODOO_AI_DEEPSEEK_TOKEN environment variable.
Self-Hosted (OpenAI-compatible)
Any endpoint exposing /v1/chat/completions: Ollama,
vLLM, LM Studio, Qwen, HuggingFace TGI, or custom
deployments. Type host:port and the /v1
suffix is added automatically. API key is optional, suitable for
local installs without authentication.
- Fetch Available Models — one-click discovery from your server's
/v1/modelsendpoint. - Test Connection — verifies reachability before going live.
- Custom model list — manually entered or fetched from the server.
Bidirectional Discuss AI Translate
Outgoing message translation
Type a draft in the composer in any source language, click AI Translate above the composer, then send the translated version with one click. The original draft text is archived on the sent message and accessible via View original.
Incoming message translation
Open any message's three-dot menu and select AI Translate. The translated text appears inline below the original, with a language picker supporting over 100 languages. The last-used target language is remembered per user.
Chat surface coverage
The translation actions are available in Discuss channels and
direct messages, floating chat windows, WhatsApp conversations,
the email composer, record chatter on any
mail.thread model (CRM, Sales, Helpdesk, etc.),
and the live chat agent view.
Provider failover
A primary model and a failover model can be configured. If the primary provider call fails (network error, rate limit, invalid key), the request is retried on the failover model. Configuring two models from different providers gives cross-provider resilience.
Translation caching
Translation results are cached per message and target language
in Odoo's native translation table
(mail.message.translation). Subsequent reads of
the same message in the same target language return the cached
result without re-calling the AI provider. Cache entries are
vacuumed by Odoo's native cleanup mechanism after 2 weeks of
non-access.
Data transmission & privacy
This module transmits message text to a third-party AI provider (DeepSeek, OpenAI, Google Gemini, or your self-hosted server, depending on configuration) over HTTPS for the sole purpose of translation. Review this section and ensure compliance with applicable data handling policies before enabling the feature.
What is sent
- The plain-text body of the message or composer draft selected for translation.
- The target language code (e.g.
en,zh_CN).
What is not sent
- No author names, recipient names, partner records, email addresses, phone numbers, or other personally-identifiable metadata.
- No attachments, images, or files.
- No database records, CRM context, sales data, or invoice data.
- No analytics or telemetry to any party other than the configured AI provider.
Self-hosted advantage
When using a self-hosted server (Ollama, vLLM, etc.), message text never leaves your network. This is ideal for organizations with strict data governance requirements.
Opt-in by design
The feature is disabled by default. An administrator must explicitly enable Enable Discuss AI Translate in Settings → AI → Discuss AI Translate before any text is transmitted.
Scope
Supported
- Discuss channels and direct messages
- Floating chat windows (right-bottom popups from the messaging menu)
- WhatsApp conversations (when Odoo's native
whatsappmodule is set up) - Email composer (
mail.compose.message) - Chatter on any business record (CRM, Sales, Helpdesk, Tasks, any model with
mail.thread) - Live chat conversations — agent side, accessed via the Discuss channel view
- AI Agent model selector — DeepSeek and self-hosted models appear alongside OpenAI and Gemini
- Tool calling / function calling for all registered providers
Not in scope
- Embedding models. No embedding provider is registered. RAG sources continue to use OpenAI or Gemini embeddings.
- File attachments, structured output (JSON schema), and web grounding for DeepSeek / Self-Hosted providers.
- Live chat frontend popup (visitor side). Agents handle conversations from the Discuss backend view, where translation works fully.
- Knowledge module articles.
Use Cases
- Cross-border e-commerce teams communicating with overseas clients via Discuss/WhatsApp
- Chinese enterprises deploying Ollama/vLLM to run domestic LLMs like Qwen
- Hybrid AI setups needing both DeepSeek and OpenAI/Gemini
- Data-sensitive organizations requiring private AI deployment
- Multilingual customer support teams
Supported languages
Over 100 languages, including Chinese (Simplified and Traditional), English, Japanese, Korean, Arabic, Spanish, Hindi, Portuguese, Russian, German, French, and many others. Translation quality for a given language pair depends on the AI provider and model.
Right-to-left languages (Arabic, Persian, Urdu, Hebrew, Pashto,
Kurdish, Yiddish) render with dir="rtl" in the
translation preview and panel.
Configuration
All configuration is in Settings → AI:
Provider settings
- DeepSeek API Key — get one at
platform.deepseek.com. Also readable from env varODOO_AI_DEEPSEEK_TOKEN. - Self-Hosted Server URL — auto-completed from
host:port. - Self-Hosted API Key — optional for local Ollama without auth.
- Custom Models — manually enter or click Fetch Available Models.
Translation settings
- Enable Discuss AI Translate — opt-in switch (off by default).
- Translation Model — primary model (default: DeepSeek V3 Chat).
- Failover Model — automatic fallback when the primary provider fails.
Two system parameters are available for advanced tuning:
suite_ai_translate.temperature (default 0.2) controls
LLM sampling temperature, and
suite_ai_translate.max_input_chars (default 8000)
sets the per-message length cap.
Requirements
- Odoo 19 Enterprise. Depends on the
aiandai_appmodules. - At least one API key (DeepSeek, OpenAI, or Google Gemini) or a reachable self-hosted endpoint.
- Network egress from the Odoo server to
api.deepseek.com,api.openai.com,generativelanguage.googleapis.com, or your self-hosted server.
License & support
Licensed under OPL-1 (Odoo Proprietary License v1).
The full license text is included in the LICENSE file
shipped with the module.
Maintained by SuiteState (ElectroState FZCO).
For questions, bug reports, or feature requests, visit
suitestate.com or contact
hello@suitestate.com.
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module