Skip to content
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

Open
wants to merge 39 commits into
base: master
Choose a base branch
from
Open

SD-2693/Metais-projects #151

wants to merge 39 commits into from

Conversation

tomasdrga
Copy link
Contributor

potrebuje to ešte cleaning a testy...

app/helpers/metais/projects_helper.rb Show resolved Hide resolved
app/jobs/set_metais_codes_for_projects_job.rb Show resolved Hide resolved
app/models/combined_project.rb Outdated Show resolved Hide resolved
app/models/datahub/metais/project_document.rb Show resolved Hide resolved
config/clock.rb Outdated Show resolved Hide resolved
config/database.yml Show resolved Hide resolved
app/controllers/admin/metais/projects_controller.rb Outdated Show resolved Hide resolved
app/controllers/admin/metais/projects_controller.rb Outdated Show resolved Hide resolved
app/controllers/admin/metais/projects_controller.rb Outdated Show resolved Hide resolved
queue_as :metais_data_extraction

def perform(project_uuid)
url = "#{ENV.fetch('API_URL')}/projects/#{project_uuid}"
Copy link
Member

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.

app/controllers/admin/metais/project_origins_controller.rb Outdated Show resolved Hide resolved
app/controllers/admin/metais/project_origins_controller.rb Outdated Show resolved Hide resolved
app/controllers/admin/metais/project_origins_controller.rb Outdated Show resolved Hide resolved
app/controllers/admin/metais/project_origins_controller.rb Outdated Show resolved Hide resolved
app/controllers/admin/metais/project_origins_controller.rb Outdated Show resolved Hide resolved
app/controllers/admin/metais/project_origins_controller.rb Outdated Show resolved Hide resolved

def create_human_origin
@project = Metais::Project.find(params[:id])
origin_type = Metais::OriginType.find_by(name: 'Human')
Copy link
Member

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

app/jobs/link_metais_projects_and_evaluations_job.rb Outdated Show resolved Hide resolved
app/jobs/metais/project_data_extraction_result_job.rb Outdated Show resolved Hide resolved
app/models/metais/project.rb Show resolved Hide resolved

project_origin.save!

Metais::ProjectDataExtractionJob.set(wait: 5.minutes).perform_later(metais_project.uuid)
Copy link
Member

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.

Copy link
Contributor Author

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.

Copy link
Member

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants