Repository navigation
[19.0][ADD] ai_sale_product_matcher: find best-matched PIM products from requirement docs/images using AI - #106
volkantasci wants to merge 7 commits into
Conversation
|
All pre-commit checks are now green (prettier, eslint, ruff, ruff-format, pylint-odoo mandatory, OCA po/module checks):
Module tests run locally (Odoo 19, scratch DB with The |
Currently translated at 100.0% (14 of 14 strings) Translation: ai-18.0/ai-18.0-ai_connection Translate-URL: https://translation.odoo-community.org/projects/ai-18-0/ai-18-0-ai_connection/it/
This comment was marked as off-topic.
This comment was marked as off-topic.
4dcb263 to
d2b08d0
Compare
|
Rebased onto the latest The Odoo/OCB test jobs still fail for the same reason, at dependency installation:
|
489b575 to
375530e
Compare
afc6b15 to
a6000c0
Compare
a6000c0 to
1528ce1
Compare
Adds
ai_sale_product_matcher— find best-matched PIM products from requirement docs/images using a vision LLM.What it does
Upload a spec sheet, email screenshot or type requirements (e.g. "120 bar soğuk sulu, monofaze, 2.3kW, deterjan tanklı") — the module extracts a canonical requirements JSON using the same
ai_connectionopenai_compatiblevision pipeline asai_document_extraction(only prompts differ), then scores allproduct.templaterecords against the PIM attribute catalog (katalog-sablonu.json→ 232 keys) with type-aware matching (range, tolerance, fuzzy, directionalen az/en fazla) and weighted groups. Top 10 matches are shown on the Sale Order with match % and can be added as order lines.Sales integration:
sale.order→ Find Products with AI wizard (file + text → Extract → editable JSON → Find Matches → Add to Order). Extraction runs viaqueue_job+busso UI never blocks.Key features:
pdf2image/Pillowpreprocessing, multi-page support, live PIM key set in prompt, English prompts sector-independent)queue_job+bus(non-blocking wizard)queue_job/bus/ai_connectiondeps, ACL, i18n (TR), testsTechnical notes
sale,product,bus,queue_job,ai_connection,ai_tool(same stack asai_document_extraction).ai_connectionOpenAI-compatible client; prompts filtered to non-null keys to avoid truncation/401.test_product_matcher,test_requirement_extractor).ir.model.access.csv,AGPL-3).cc @OCA/ai-maintainers