Omnia - backend : categorization - Christophe
For the categorization, we have three main packages.
At the bottom : imio.omnia.core
- Secure communication with Omnia / Smartweb agnostic
Then : imio.smartweb.common
- Functionality shared by our different SmartWeb applications (common fields, vocabularies,.. like the audience and topics)
- It knows about the AI categorization process
Finally : imio.smartweb.core
- It knows what a SmartWeb Page is
- how to get its text
- how to handle specific fields like the page category
On the browser side, the button calls the view and then distributes the values into the fields.
- The keys are standard Plone widget IDs (form-widgets-IAm-iam).
- setFieldById handles each widget type and fires the events Plone expects
- The AI is unaware of the form
- smartweb.common : maps the AI's response to field addresses
Ok but... Why imio.smartweb.core ?
- page is a Dexterity container.
- "the page text" is not an attribute read; it is an aggregation.
The AI does not invent categories
To resume and basically, we say:
“Here is the content of the page, and here are the possible values. Please choose the most relevant ones.”
==> The result is then used to pre-fill the form.
==> The editor can review the suggestions and change them if necessary.
==> And now : Rémi !