Daily updates from Odoo
Thursday, January 29, 2026
3 changes
2 changes
Code cleanup and technical improvements
This update enhances the testing process for Odoo's Arabic accounting modules (l10n_ar). Specifically, a new testing method and refactoring of the test suite ensures more reliable and accurate verification of these modules, improving overall system stability and accuracy for Arabic-speaking users.
Original PR description
- Implemented a working `assert_json` method on `AccountTestInvoicingCommon`, that also supports the ignore_schema system and quick save using the `SAVE_JSON` test tag. - Refactors the whole test suite of `l10n_ar*` modules to use the new accounting test helpers properly. task-4891206 Forward-Port-Of: odoo/odoo#245457 Forward-Port-Of: odoo/odoo#242309
This update streamlines the testing process for the Ar-EDI module by automatically verifying data against JSON files. This change allows tests to run without external dependencies and simplifies updates to test data through a simple tag.
Original PR description
This commit refactors the whole `l10n_ar_edi` test suite to use the new helpers, and made it possible for the test to (finally) be run without external mode. Now, when running these new tests, the test framework will by default assert the request data with their associated JSON file. When a change is made, new overwrites for the test files can be easily changed by just adding the `SAVE_JSON` test tag on the command to run the tests. task-4891206 Forward-Port-Of: odoo/enterprise#105299 Forward-Port-Of: odoo/enterprise#103370
1 change
Code cleanup and technical improvements
This update simplifies adding new AI providers to Odoo by introducing a standardized API service structure. It improves the LLM's ability to handle conversations and interactions, enabling new features like user-interactive tools and batch record updates. The refactoring also addresses previous issues with statelessness and inefficient reasoning.
Original PR description
This PR introduces a refactoring of the LLMApiService which aims to make use of inheritance in order to simplify the addition of new providers to odoo. It creates a new `AIApiService` base class that exposes 4 public methods: - `get_completions`: the main method to retrieve completions from the LLMs. - `get_embeddings`: method to retrieve the embeddings for a given input. - `get_transcription`: method to create a transcription for an audio file. - `get_realtime_session`: method to create a realtime transcription session. These methods (particularly the `get_completions` rely on overrides of private methods in the specific services to specialise the request/response cycle to a specific provider. This commit also introduce a new `AIApiServiceFactory` class which is used to initialise an `AIApiService` of proper type based on the model that is requested (i.e. OpenAIApiService for `gpt-5`, and `GoogleAIApiServie` for gemini-2.5-flash)