Skip to content

StanMey/Robotreporter

Repository files navigation

Robotreporter

Robotreporter is een generatief AI-systeem, dat zelf artikelen schrijft. Het systeem werkt met een combinatie van NLG-technieken om artikelen te maken. Om te demonstreren hoe de de AI werkt, wordt er beursinformatie gebruikt. Het systeem bekijkt het koersverloop van alle aandelen in de Nederlandse AMX-index, en maakt artikelen over deze aandelenkoersen.

Dit project is een samenwerking tussen Ict Institute en het lectoraat Articificial Intelligence van de Hogeschool Utrecht.

Voor demonstratie doeleinden is er een website gemaakt waarop dit systeem te zien is.

Gebruik systeem

Bij deze repository wordt zowel een [requirements.txt] geleverd alsmede een [environment.yml] voor het installeren van de dependencies van deze repo.

Verder is in deze repo een .env.example toegevoegd. Na het clonen van deze repo moeten de environment variabelen die hierin opgeslagen staan ingevuld worden en moet dit bestand opgeslagen worden als een [.env] bestand.

Als laatste wordt er zowel in de productie als in development gebruik gemaakt van een postgres database.

Lokaal installeren

  1. git clone https://github.com/StanMey/Robotreporter
  2. cd .\Robotreporter\
  3. conda env create -f environment.yml
  4. conda activate nieuwsbot_env
  5. python manage.py migrate
  6. python manage.py setup_project
  7. python manage.py runserver

over het systeem

opzet van de website

De website is opgezet en verdeeld in 5 verschillende modules. Dit valt ook terug te zien in de navigatiebalk.

image

Module timeseries

In deze module zijn alle dagelijkse koersen van alle AMX-aandelen verzameld. De gebruiker kan door op een aandeel te klikken per data de geschiedenis terugzien.

Module observations

In deze module worden alle gevonden observaties weergegeven. Hier kan de gebruiker filters overheen zetten om de observaties te bekijken.

Module article-generation

In deze module kan de gebruiker de settings kiezen die gebruikt worden tijdens de generatie van een nieuw artikel.

Module articles

In deze module worden alle gegenereerde artikelen getoond.

Module uitleg

In deze module wordt alle uitleg over het systeem en het project weergegeven.

opzet van de NLGengine module

Voor de opzet van de NLGengine module is voor een modulaire aanpak gekozen. De code voor het zoeken naar patronen bevinden zich in de patterns folder. Deze patterns worden aangeroepen vanuit het analyse.py bestand.

Binnen de content_determination folder staat alle code en informatie die nodig is om observaties te selecteren voor in het artikel. Deze observaties worden ingedeeld in paragrafen en aan de planner doorgegeven in de microplanning folder. Deze paragrafen worden uiteindelijk doorgegeven aan de Realiser binnen de realisation folder die deze omzet naar het uiteindelijke artikel.

generatie van afbeelding bij een artikel

Om een afbeelding bij een artikel te genereren wordt gebruik gemaakt van de logo's van de componenten en een achtergrond afbeelding. Allereerst worden de twee vormen van de logo's met elkaar vergeleken om op basis van de vormen de logo's ofwel naast elkaar ofwel onder elkaar te plaatsen.

Om zelf een afbeelding te genereren moet allereerst de shell geopend worden met behulp van de manage.py command. Hierna kan door een functie te importeren een afbeelding gegenereerd worden. De stappen gaan als volgt:

python manage.py shell
from articles_app.nlg_queries import generate_and_save_headline_img
generate_and_save_headline_img([componenten], sector_focus='sector')

Op de plaats van het woorde componenten moeten de componenten omringd door "" worden teruggegeven (bijvoorbeeld: ["Fagron", "Fugro"] of ["SIGNIFY NV"]). Als sector_focus kan gekozen worden voor een specifieke sector waarvoor dan een sectorspecifieke achtergrond wordt gebruikt (niet voor alle sectoren geïmplementeerd) Hieronder worden een aantal voorbeelden teruggegeven waar afbeeldingen zijn gegenereerd.

image image

Meer over Robotreporter

Eén van de doelen van dit project is om mensen op een zo praktisch mogelijke manier zelf AI te laten gebruiken. Het Robotreporter project zelf heeft geen winstoogmerk en het systeem wordt open-source beschikbaar gesteld dankzij de sponsoring door ICT Institute.

Voorbeelden van gegenereerde artikelen

Hieronder worden twee voorbeelden van gegenereerde artikelen getoond:

image image

Inspiratie en links

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published