2024-12-06 Eldigen Document checker task

Darbību secība:

  1. Tiek pieslēgtas integrācijas, viena no:

    1. Sharepoint, NextCloud faili no konkrētas direktorijas. Taisam, ka Ja direktorija satur apakšdirektorijas, tad katra jaunā direktorija ir jauna failu grupa, jeb iesniegums. Ja satur tikai failus, tad katrs fails atsevišķi ir iesniegums.

    2. Epastos saņemtie attachements faili, atfiltrējot pēc tēmu kritērijiem (kā jau tas tagad ieplānots). Vienā epastā var būt vairāki faili, kas visi tiks apstrādāti vienā grupā.

    3. Formas no Custom business.gov.lv vai nākotnē google forms, airtable, typeform, HTML formas

    4. Vēl var arī vispār neizmantot nekādas integrācijas un manuāli augšupielādēt failus. Faili var saturēt arī vairākus failus, jeb failu grupu. Pievienojot jaunus submissions nav jānorāda checklists, jo visi būs aktīvi konkrētajam agent.

      image-20241206115100647

  2. Tiek izveidoti checklists, kur var izvēlēties:

    1. Visi pievienotie checklists tiks izpildīti uz attiecīgā aģenta pievienotajiem dokumentiem caur integrācijām vai manuāli. Jāspē Pārkopēt checklists no cita agent savā organizācijā, lai nav vēlreiz manuāli jāievada.

    2. Minimālo procentu pie kura dokuments kvalificējas - nevis jautājumu, bet tieši kritēriju procentu

    3. Piesaisti konkrētai Formai vai Failiem

      1. Ja ir izvēlēts Fails, tad nenorāda vispār nekādu lauku pie jautājuma un tiks izmantots RAG, lai meklētu teksta gabalus, kas pamato atbildes. Jair izvēlēts fails jābūt iespējai pievienot opcionāli Zvaigznīšu filename atpazīšanu, lai atpazītu, kuram failam jāpielieto konkrētais checlist!

      2. Ja ir izvēlēta Forma , tad pārbauda katru definēto lauku

    4. Kvalifikācijas kritērijus

      1. Pats kritērijs var būt "Kritisks" pārsaukt "Obligāts" nevis Jautājumi Kritiski 🔴 Viktors.

      2. Katrs kritērijs sastāv no jautājumiem Jā/Nē

      3. Nosaka vai visi jautājumi izpildās kā OR vai kā ANY

      4. Nosaka, kuram laukam atbilst Jautājums, ja ir izvēlēta Formai

      5. Svarīgi, ka ievades lauks Formai arī var būt Fails (vai vairāki faili!), tādā gadījumā tiks izmantots RAG

      image.png

    5. 🔴 Raitis - Neveiksmīgs dizains (līdzīgi kā pie topics editora), kur vienā pusē ļoti garš scroll

    6. Checklists pārskatā qualified documents varētu rādīt kā procentus ar domu, lai saprastu cik daudz dokumenti spējuši izturēt atlasi

    7. image.png|400

  3. Submissions skati (pārsaukt Submissions / Iesniegumi jeb dokumentu)

    1. Dokumentu skati ir paši galvenie ikdienā, tur parāda cik daudz saturs ir noprocesēts un kādu kvalifikācijas kritērija vērtību esam ieguvuši

    2. Pēc submission izveides nevar vairāk pievienot jaunas checklists, documents utt.

    3. Rādam vienmēr visus dokumentus un pretī checklists katram dokumentam (var būt vairāki katram dokumentam) vienā grupā, iespējams labāks vizualizēt ne kā tabulu, bet kā atdalītu grupu

    4. Ir jābūt funkcijai dzēst sumbmission “Delete”

    5. Funkcija lejupielādēt failus

    6. “View” funkcija pieejama tikai pie katra checklist. Atverot checklist formas gadījumā rādīt arī laukus. Failu gadījumā, iespēja lejupielādēt failus.

    7. Jārāda cik kritēriji ir % noprocesēti un cik ir % kritēriju izpildās no katra checklist, ja visi izpildās ir Qualified. Jārada arī no kuras formas nāk dokuments, ka tāda forma eksistē. Šeit vara arī manuāli augšupielādēt dokumentus, kuri izprocēsēs visus checklists, kas ir pievienoti agent. Ja būs 3 checklisti, tad katram dokumentam būs 3 kvalifikācijas rezultāti - būtu labi tos sagrupēt vizuāli, bet lielākajā daļā gadījumu būs tikai viens checklist. Ja izpildās visi checklists, tad dokuments vai forma ir Qualified. Var redzēt arī katras apakš cheklist statusu. Ja ir tikai viens checklist visu rādam vienā rindā bez grupas. image.png

Atverot checklius Šādā veidā vizuāls saturs būtu labāk, jāņem vērā, ka būs daudz lapas un vajadzētu image.png|600

Atvērt var katra checklist rezultātus atsevišķi image.png

 

  1. AI pārbaudes daļa

    1. Submission sastāv no submission_files un submission_forms (var saturēt vienu vai vairākus failus vai vienu vai vairākas formas). Katram checklist pretī ir submission_checklist_result, kas saturēs submission_checklist_criteria_result un katrai criteria ir submission_checklist_criteria_question_result. Tas nav pretī visam submission, bet tikai pretī checklist. Submission statistika ir pašā submission tabulā.

    2. Jāatceras, ka vienā submission var saturēt N submission_checklist_result un katrai checklist var būt N files piesaistīti vai viena forma. Bet formā var būt lauki, kurā ir N files. Submission progress sastāv no visu apakš cheklistu progresu summas, bet qualified_percentage ir minimālā vērtība, lai novērstu, to, ka kā deal apakš checklist ir disqualified, bet kopējais ir qualified.

    3. submission saturēs failus datu struktūrā submission_files, tāpāt jābūt submission_forms, kuri sasaistīti ar submission. Katru failu varētu parsēt ar jau esošo facts processing, bet nav nepieciešams izveidot Jautājums - Atbildes daļu, jāizmanto Raw translated teksts.

    4. Faili tiek apstrādāti kā Facts un tiek meklēta atbilde jebkuram no piesaistītajiem jautājumiem. Checklist sadaļā varēs ievadīt regex filename filtru, lai atrastu konkrētus failus. Jo piemēram, viens submission saturēs dažādus failus piemēram CV, motivācijas raksts, portfolio, etc. Katram var tikt uzmantots cits checklist.

    5. Formas tiek piesaistītas tiešā veidā checklistam ar dropdown un katrs jautājums arī tiek piesaistīts formas laukam. šajā gadījumā nav vajadzīgs RAG, lai atrastu atbildi, kuru jāievada forms laukā.

    6. Number laukiem, jautājumus jāpārvērš python code un jātaisa (jāuztaisa aizsardzība pret injections). Kodā ir jāpārvērš cilvēka dotais jautājums, lai atbilde netiktu ģenerēta ar LLM. Piemēram vismaz 2000 EUR apgrozījums. input >= 2000 jo laukā nevar ievadīt tekstu.

  1. Failu gadījumā - Jāveic semantic un BM25 search no translated teksta un jāpiemeklē chunks pārbaudei, lai nebūtu pilnīgi viss jāpārbauda. BM25 implementāciju paņemt no tā, ko Reinis izveidoja.

  2. Nedrīkst izmantot Jauātājums - Atbildes daļu, jāizmanto Raw translated teksts, jāveic prompt engineering pēc principa:

file_id vietā tik tiešām var izmantot source_id, tikai atceries, ka procesējot nevajag ģenerēt jautājumu-atbildes faktiem

 

🔴Ir pievienots question_original_text, jo mēs negribam pārprocesēt submissions pēc checklist pievienošanas.

checklist
checklist_id: PK
assistant_id: FK
checklist_name: string
checklist_type: form | files
checklist_form_name: string
qualified_percentage: number
checklist_criteria
checklist_criteria_id: PK
checklist_id: FK
criteria_id: FK
criteria_order: number
criteria_type: or | and
is_critical: boolean
checklist_criteria_question
checklist_criteria_question_id: PK
checklist_id: FK
criteria_id: FK
question_id: FK
question_order: number
question_type: yes_no | number
question_form_field_name: string
submission
submission_id: PK
assistant_id: FK
submission_type: form | files
submission_name: string
submission_form_name: string
submission_status: qualified | not_qualified
submission_qualified_percentage: number
submission_progress_percentage: number
submission_sources
submission_source_id: PK
submission_id: FK
source_id: FK
source_name: string
source_url: string
source_type: string
source_size: number
source_translated_text: string
submission_forms
submission_form_id: PK
submission_id: FK
form_id: FK
form_name: string
form_url: string
submission_checklist_result
submission_id: FK
checklist_id: FK
checklist_status: qualified | not_qualified
checklist_qualified_percentage: number
checklist_progress_percentage: number
submission_checklist_criteria_result
submission_id: FK
checklist_id: FK
criteria_id: FK
criteria_status: qualified | not_qualified
submission_checklist_criteria_question_result
submission_id: FK
checklist_id: FK
criteria_id: FK
question_id: FK
question_original_text: string
question_status: qualified | not_qualified
question_reference_text: string
question_reference_source_name: string
question_reference_source_id: FK
question_reference_source_url: string
question_reference_source_chunk_id: FK
question_reference_source_page_number: number
question_reference_fact_id: FK
assistant