InfoExtractor

Extraction schemas

Each schema is a JSON file in config/schemas/. Add or edit a file to change what the LLM returns - no code changes, and edits are picked up on the next job.

General page (default.json)

Site-agnostic summary and entity extraction for any web page.

14 fields
Instructions sent to the model:
Extract a factual description of this single web page using ONLY the supplied content. Do not speculate or use outside knowledge. Leave a field null when the page does not state it.
Fields:

Ecommerce page (ecommerce.json)

Product / collection / store information for online shops.

26 fields
Instructions sent to the model:
You are extracting structured data from one page of an online store. Use ONLY facts present in the supplied page content - never invent prices, SKUs or stock status. Prefer values from the JSON-LD block when it is present, since it is authoritative. If the page is not a product page, still fill page_type and the general fields and leave product fields null. Prices must be numbers only, with the currency reported separately in currency.
Fields:

RoaCore product (bilingual) (roa_panel.json)

Field names match RoaCore's ProductCreateDto (Models/DTOs/ProductDTO.cs) directly, so the callback payload maps onto it with no translation layer. GenderId, SizeChartId and DesignerId stay excluded - the designer sets those during their confirm step. CategoryId is the exception: the prompt carries RoaCore's live category tree, so the model picks a real id from a closed list and anything it invents is nulled before the payload is sent.

20 fields
Instructions sent to the model:
Extract product information from this page for a bilingual (English/Arabic) fashion/product marketplace. Use ONLY facts present on the page - never invent a price, SKU, material or stock status. For every *_ar field: if the page already shows Arabic text, use it verbatim; otherwise translate the corresponding *_en value into natural, market-appropriate Arabic - do not leave an *_ar field empty just because the source page is English-only. What the page states includes its visible text, title, description, META TAGS (the keywords tag counts) and structured data. A fact field - material, care instructions, country of origin, SKU, price - is filled only when the page states it; never estimate one from the product type, the photos or what such products are usually made of. If a fact is not stated, the field is null. Every value is the answer itself and nothing else: no reasoning, notes, caveats or qualifiers such as '(estimated)', 'assumed' or 'not specified' inside a value - if a value would need one, the value is null. gender_hint_en is the exception: it is a classification you make rather than a fact to be found - see its description.
Fields: