-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SD-2693/Metais-projects #151
base: master
Are you sure you want to change the base?
Conversation
…l/redflags.slovensko.digital into SD-2693/Metais-projects
queue_as :metais_data_extraction | ||
|
||
def perform(project_uuid) | ||
url = "#{ENV.fetch('API_URL')}/projects/#{project_uuid}" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
celkom ok tie joby, ale bolo by krajšie mať na to nejaký module v app/lib/metais_ai_api.rb
, z ktorého budeme volať 4 metódy - ten post, status, get a delete. Tým pádom sa nám tu v joboch nebude opakovať nastavovanie URL ani error handling. Podobne ako tu: https://github.com/slovensko-digital/govbox-pro/blob/main/app/lib/fs/api.rb ale jednoduchšie, lebo tu v RF máme menej endpointov.
|
||
def create_human_origin | ||
@project = Metais::Project.find(params[:id]) | ||
origin_type = Metais::OriginType.find_by(name: 'Human') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Rozmýšľam, či tie typy by nebolo lepšie spraviť takto cez osobitné subclassy: https://github.com/slovensko-digital/govbox-pro/blob/main/app/models/automation/action.rb ale nechajme to asi ako poslenejší detail nice to have - je to trochu komplikovanejšie imo
|
||
project_origin.save! | ||
|
||
Metais::ProjectDataExtractionJob.set(wait: 5.minutes).perform_later(metais_project.uuid) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@tomasdrga ešte tu jedna z posledných vecí, keďže sa blížime spusteniu do produ, najradšej by som to spúšťal iba vtedy, keď sa zmenia súbory. A ideálne len vtedy, keď sa zmení projektový zámer, ktorý sa spracúval. Napíše, prosím, nápad, ako by sme to spravili.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@celuchmarek Rozumiem, rozmýšlal som nad tým, nápad bol, že vieme spraviť job, ktorý sa bude pozerať daily na dokumenty a checkovať, či sa niečo pridalo.
Rozpoznanie projektového zámeru však bude problém, keďže ich názvy nie sú konzistentné. Možno by pomohol nejaký regex ale to by nebolo 100% riešenie. Projektový zámer ako taký sa tam nemení, alebo teda pridá sa tam nový file s inou verziou.
Ten extraktor práve hľadá poprvé, či tam nejaký projektový zámer je alebo nie. Ak áno zoberie najnovší.
Čiže v reálnom scenári si to predstavujem tak, že povedzme máme projekt, ktorý mal už projektový zámer. Daily job deteguje, že bol pridaný nový file, ktorý bol projektový zámer. Spustí sa extrakcia s najnovším projektovým zámerom.
Keď by sme mali projekt, ktorý mal projektový zámer, pridá so dokument, ktorý nie je zámer. Spustí sa extrakcia nad pôvodnym a môže spôsobiť problém, že hodí nejaké iné výsledky.
Keď by sme mali projekt, ktorý nemal žiaden projektový zámer a pristane nový dokument, projektový zámer. Spustí sa extrakcia projektového zámeru.
Keď projekt nemal zámer, pridá sa dokument, ktorý nie je zámer. Extrakcia sa spustí ale skončí len na prvom calle, ktorý hľadá zámer.
Porozmýšlam ešte nad tým ako to detegovať lepšie.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@tomasdrga vachádza mi z toho, že ten DetectionJob by mal zavolať na AIExtractore osobitný endpoint vráť mi najnovší projektový zámer, ak existuje
. Nejaké ID tohto dokumentu si v RF uložíme, ak ešte nebol žiadny. Ak už nejaký je, porovnáme, či novo nájdený dokument je iný ako ten uložený (čiže iné ID). A až keď vieme, že sa zmenilo ID dokumentu s projektovým zámerom, sputíme extrakciu.
Tým pádom potrebujeme do RF pridať niekde do DB, ktorý dokument bol naposledy detegovaný ako projektový zámer. A v AIExtractore treba oddeliť tú detekciu správneho dokumentu do osobitního endpointu.
potrebuje to ešte cleaning a testy...