FAQ Ingestion ============= The *FAQ Ingestion* feature streams the content of the Rexpondo FAQ knowledge base into the AI platform so it can be used as a Retrieval-Augmented Generation (RAG) source by the other AI features (Chat, Answer Suggestion, Categorization). The integration is driven by FAQ events: every time a FAQ item is created, updated or deleted, a thin event handler delegates to the dedicated service, which builds the JSON payload and pushes it to the Margot Ingestion API via HTTP POST.. Delete operations use a separate id so that the create/update and delete pipelines on the AI side can be wired to different tools. Enable the Feature ------------------ 1. Contact E-Time to purchase and activate the AI integration for your subscription. 2. Make sure the calling user is allowed to use AI features. 3. Set the event module ``FAQ::EventModule###9900-MargotIngestion`` to *valid* (it is shipped *invalid* by default). 4. Deploy the System Configuration. After enabling, any existing FAQ item can be re-ingested by simply opening it and saving it again (which triggers the update event). Settings Reference ------------------ .. list-table:: :header-rows: 1 :widths: 35 25 40 * - SysConfig key - Default - Description * - ``FAQ::EventModule###9900-MargotIngestion`` - ``Module=Kernel::System::FAQ::Event::MargotIngestion``, ``Event=FAQCreate|FAQUpdate|FAQDelete``, ``Transaction=1`` - Event module registration. Shipped *invalid*: switch to *valid* to activate the ingestion pipeline. How Ingestion Works ------------------- On ``FAQCreate`` and ``FAQUpdate`` events the service: 1. Loads the FAQ item and its attachments through ``Kernel::System::FAQ``. 2. Renames each attachment as ``FAQ--``. 3. Builds a JSON payload with the textual fields plus the list of attachment names and posts it to the URL stored in ``ToolID``. 4. For every attachment, builds a second payload with the Base64-encoded content and posts it to the same endpoint. On ``FAQDelete`` events the service: 1. Receives the ``FAQNumber`` captured before deletion (the record is already removed from the database at that point). 2. Builds a minimal delete payload and posts it to the endpoint stored in ``DeleteToolID``.