Skip to content

[CAI-656] move presidio from chatbot to chatbot-monitor#1844

Merged
mdciri merged 12 commits intoCAI-629-refactor-chatbotfrom
CAI-656-move-dynamo-to-monitor
Nov 25, 2025
Merged

[CAI-656] move presidio from chatbot to chatbot-monitor#1844
mdciri merged 12 commits intoCAI-629-refactor-chatbotfrom
CAI-656-move-dynamo-to-monitor

Conversation

@batdevis
Copy link
Copy Markdown
Collaborator

List of Changes

Move dynamodb query write and presidio masking from chatbot to chatbot-monitor.

Motivation and Context

We want to optimize the boot time of chatbot lambda, and presidio library was very heavy to load at boot time.

How Has This Been Tested?

Locally

Screenshots (if appropriate):

Types of changes

  • Chore (nothing changes by a user perspective)
  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.

@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Nov 17, 2025

🦋 Changeset detected

Latest commit: 6a78754

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 2 packages
Name Type
chatbot-monitor Patch
chatbot Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@batdevis batdevis requested a review from mdciri November 17, 2025 10:16
@batdevis batdevis changed the base branch from main to CAI-629-refactor-chatbot November 21, 2025 11:35
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Nov 25, 2025

Jira Pull Request Link

This Pull Request refers to the following Jira issue CAI-656

@mdciri mdciri merged commit c8f073f into CAI-629-refactor-chatbot Nov 25, 2025
9 checks passed
@mdciri mdciri deleted the CAI-656-move-dynamo-to-monitor branch November 25, 2025 16:05
marcobottaro added a commit that referenced this pull request Feb 25, 2026
* Update chatbot modules

* Update chatbot queries.py

* Update poetry files

* Update chatbot api queries

* Update chatbot dockerfile

* Update chatbot-monitor scripts

* Add changeset

* Update chatbot notebook

* Update chatbot src scripts

* [CAI-656] move presidio from chatbot to chatbot-monitor (#1844)

* save query and evaluate functions refactoring

* dynamodb query put

* presidio

* changeset

* Update chatbot app queries

* Update chatbot-monitor scripts

* Update chatbot-monitor scripts

* Update chatbot queries.py

---------

Co-authored-by: mdciri <marco.cirillo@uqido.com>
Co-authored-by: Marco Domenico Cirillo <59966344+mdciri@users.noreply.github.com>

* [CAI-630] chatbot evaluate refactor (#1868)

* save query and evaluate functions refactoring

* dynamodb query put

* presidio

* changeset

* Update chatbot app queries

* Update chatbot-evaluator modules

* Update poetry files

* Update lambda function

* Update chatbot monitor scripts

* Update chatbot-evaluate scripts

* Update chatbot-evaluate lamda function

* Update chatbot-monitor lambda function

* Add changeset

* Update chatbot-monitor monitor.py

* Update chatbot-monitor monitor.py

* Align to CAI-629

* Update lambda function to consider only unique records

* Update lambda function in chatbot-monitor

* Update chatbot-evaluate lambda function

* Update chatbot-evaluate tests

* Update loggers in chatbot monitor, index, and evaluate

* Update loggers in chatbot, monitor, index, and evaluate

* Update dockerfile for tests

* Add new changeset

* fix: logger param

* fix: comment langfuse add score. We will use SQS queue in another pr

* comment calls to presidio. In a future pr we will use SQS for them

---------

Co-authored-by: batdevis <devis.battisti@uqido.com>

* [CAI-684] Add langfuse release version (#1929)

* Update chatbot settings

* Update chatbot Dockerfiles

* Update chatbot modules

* Update chatbot-monitor to get release app version

* Add changeset

* Update version as tag product

* Update changeset

* [CAI-682] move presidio and dynamodb to chatbot monitor (#1916)

* fix double entry

* event test payload

* docker compose test

* pytest

* pytest

* docker compose test and volumes

* aws motoserver file

* move feedback update to chatbot-monitor

* remove spacy download

* fix test json file

* changeset

* remove duplicate test files

* gitignore autoflake report files

* remove unused imports

* fix log level param

* fix database envs for docker compose

* chore: remove unused env var on .env.example

* sqs local listener

* docker compose

* feat: clean workflow

* docs

* docker compose ports

* chore: Dockerfiles refactor

* Fix loop in the langfuse trace creation

* Update spaces and indentation

* remove logs

* Update crate_langfuse_trace() method to respect API

* Update crate_langfuse_trace() method to respect API

* Removed recursive method in process_span()

* Removed timestamp

* Fix unique records to be processed

* Removed timestamp to logger

* fix bug in monitor.py

* defence from NoneType values

* Update poetry downgrading ragas

* Evaluation accepts mock test

* Update lambda function to wrtie mock scores

* [CAI-729] ecoding decoding AWS SQS payload (#1984)

* Update API to write in SQS monitor

* Add compression and decompression scripts to chatbot, chatbot-evaluate and chatbot-monitor

* Update scripts to compress and decompress payload from/to SQS

* Add changeset

* Update .changeset/pink-kings-enter.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix float number error on scores

* fix compose

* docker files cleanup

* Update return type of process_span() method

---------

Co-authored-by: mdciri <marco.cirillo@uqido.com>
Co-authored-by: Marco Domenico Cirillo <59966344+mdciri@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix docker file name in github action

* fix github action deploy lambda monitor image-uri

* fix image tag in github action

* Update logger level when default is not passed

* Update sqs logs

* dix image uri in github action

* removed info logs

* Removed log about the print of the sqs response

* Fix tag field

* Update devportal rag prompt

* [CAI-758] docker as user (#2009)

* run Docker as normal user

* user home

* changeset

* user home

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

* error handle

Similar to the chatbot-monitor lambda, if SQS_MONITOR is None (which can happen if get_sqs_monitor_queue() fails), calling send_message on it will raise an AttributeError. Consider adding an explicit check before attempting to send the message.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* little fixes

* ensures query data is always persisted

* explicit None

* db save

* fix docker user permission

* Update README

* Add README

* motoserver ports

* Update README

* Update README

* docker compose

* dockerfile user

* Add docker build test script

* Update packages

* Update packages

* env example

* Add log trace id on lambda

* env example

* env example

* readme

* Update README

* Update README

* Update README

* Update README

* Dockerfile alignment

* chatbot monitor tests

* Update .env.example

* add env var

* fix test

* dockerfile cp

* remove ssm retrieve logs

* ssm client fix

* example env files

* Update README

* docker script options

* docker scripts options

* env langfuse file

* env.langfuse

* Renamed file

* Add docker logs

* Update README

* Update file for execution

* env langfuse file

---------

Co-authored-by: Devis Battisti <devis.battisti@uqido.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: uolter <walter.traspadini@pagopa.it>
Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>
marcobottaro added a commit that referenced this pull request Mar 4, 2026
* Update chatbot modules

* Update chatbot queries.py

* Update poetry files

* Update chatbot api queries

* Update chatbot dockerfile

* Update chatbot-monitor scripts

* Add changeset

* Update chatbot notebook

* Update chatbot src scripts

* [CAI-656] move presidio from chatbot to chatbot-monitor (#1844)

* save query and evaluate functions refactoring

* dynamodb query put

* presidio

* changeset

* Update chatbot app queries

* Update chatbot-monitor scripts

* Update chatbot-monitor scripts

* Update chatbot queries.py

---------

Co-authored-by: mdciri <marco.cirillo@uqido.com>
Co-authored-by: Marco Domenico Cirillo <59966344+mdciri@users.noreply.github.com>

* [CAI-630] chatbot evaluate refactor (#1868)

* save query and evaluate functions refactoring

* dynamodb query put

* presidio

* changeset

* Update chatbot app queries

* Update chatbot-evaluator modules

* Update poetry files

* Update lambda function

* Update chatbot monitor scripts

* Update chatbot-evaluate scripts

* Update chatbot-evaluate lamda function

* Update chatbot-monitor lambda function

* Add changeset

* Update chatbot-monitor monitor.py

* Update chatbot-monitor monitor.py

* Align to CAI-629

* Update lambda function to consider only unique records

* Update lambda function in chatbot-monitor

* Update chatbot-evaluate lambda function

* Update chatbot-evaluate tests

* Update loggers in chatbot monitor, index, and evaluate

* Update loggers in chatbot, monitor, index, and evaluate

* Update dockerfile for tests

* Add new changeset

* fix: logger param

* fix: comment langfuse add score. We will use SQS queue in another pr

* comment calls to presidio. In a future pr we will use SQS for them

---------

Co-authored-by: batdevis <devis.battisti@uqido.com>

* [CAI-684] Add langfuse release version (#1929)

* Update chatbot settings

* Update chatbot Dockerfiles

* Update chatbot modules

* Update chatbot-monitor to get release app version

* Add changeset

* Update version as tag product

* Update changeset

* Refactor for multi index in redis

* [CAI-682] move presidio and dynamodb to chatbot monitor (#1916)

* fix double entry

* event test payload

* docker compose test

* pytest

* pytest

* docker compose test and volumes

* aws motoserver file

* move feedback update to chatbot-monitor

* remove spacy download

* fix test json file

* changeset

* remove duplicate test files

* gitignore autoflake report files

* remove unused imports

* fix log level param

* fix database envs for docker compose

* chore: remove unused env var on .env.example

* sqs local listener

* docker compose

* feat: clean workflow

* docs

* docker compose ports

* chore: Dockerfiles refactor

* Fix loop in the langfuse trace creation

* Update spaces and indentation

* remove logs

* Update crate_langfuse_trace() method to respect API

* Update crate_langfuse_trace() method to respect API

* Removed recursive method in process_span()

* Removed timestamp

* Fix unique records to be processed

* Removed timestamp to logger

* fix bug in monitor.py

* defence from NoneType values

* Update poetry downgrading ragas

* Evaluation accepts mock test

* Update lambda function to wrtie mock scores

* [CAI-729] ecoding decoding AWS SQS payload (#1984)

* Update API to write in SQS monitor

* Add compression and decompression scripts to chatbot, chatbot-evaluate and chatbot-monitor

* Update scripts to compress and decompress payload from/to SQS

* Add changeset

* Update .changeset/pink-kings-enter.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix float number error on scores

* fix compose

* docker files cleanup

* Update return type of process_span() method

---------

Co-authored-by: mdciri <marco.cirillo@uqido.com>
Co-authored-by: Marco Domenico Cirillo <59966344+mdciri@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Copilot terraform skills

* [CAI-747] add parser app (#1996)

* Add package.json to parser app

* Add changeset, update package-lock

* Update apps/parser/package.json

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* [CAI-748] Add Puppeteer (#1999)

* Add package.json to parser app

* Add changeset, update package-lock

* Update apps/parser/package.json

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Add puppeteer dependency in parser app

* Add changeset

* Update .changeset/three-cups-change.md

Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

* Update apps/parser/package.json

Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

* Update scripts to accept structured documents to create a dedicated index

* Update github action accordingly to python script

* Update chatbot create index workflow to accept input types

* Update documents to read structured data into llamaindex documents

* Update apps/chatbot-index/src/modules/settings.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update apps/chatbot-index/src/modules/documents.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update .github/actions/chatbot/action.yaml

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix the input and output types

* Update structured llamaindex documents id

* Add assertion for the inputs

* Update .changeset/eager-colts-smile.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update apps/chatbot-index/src/modules/create_vector_index.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update document to safe load jsons

* Update cleaning redis when creating index given an index id

* Update .github/workflows/chatbot_create_index.yaml

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Sobstitute s3 client with s3 resource

* Update apps/chatbot-index/src/modules/vector_index.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update apps/chatbot-index/src/modules/documents.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update apps/chatbot-index/src/modules/codec.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update documents json loads

* fix docker compose

* Add to the github workflow and action the index-id to create as env var

* Update class name to be more generic

* Update class name to be more generic

* fix docker file name in github action

* Update workflow inputs

* fix github action deploy lambda monitor image-uri

* fix image tag in github action

* Update create-index service in compose.yaml

* Update dockerfile and scripts

* Update codec return

* fix s3 init on create index

* Update logger level when default is not passed

* Update sqs logs

* dix image uri in github action

* removed info logs

* Removed log about the print of the sqs response

* Fix tag field

* Update devportal rag prompt

* [CAI-758] docker as user (#2009)

* run Docker as normal user

* user home

* changeset

* user home

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

* add s3 folder to the docker container

* add safe load json

* Update docker compose

* Add temp struct files for the cittadino-index

* update get_structured_docs()

* remove wrong copy

* add script to create cittadino index

* Removed old script to create index

* moved script to docker folder

* Revert github action and workflow

* add chatbot changeset

* add last empty line

* Add global var

* removed unused import

* error handle

Similar to the chatbot-monitor lambda, if SQS_MONITOR is None (which can happen if get_sqs_monitor_queue() fails), calling send_message on it will raise an AttributeError. Consider adding an explicit check before attempting to send the message.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* little fixes

* ensures query data is always persisted

* explicit None

* db save

* fix docker user permission

* Update README

* Add README

* motoserver ports

* Update README

* Update README

* docker compose

* dockerfile user

* Add docker build test script

* Update packages

* Update packages

* env example

* Add log trace id on lambda

* env example

* env example

* readme

* Update README

* Update README

* Update README

* Update README

* Dockerfile alignment

* chatbot monitor tests

* Update .env.example

* add env var

* fix test

* dockerfile cp

* remove ssm retrieve logs

* ssm client fix

* example env files

* Update README

* docker script options

* docker scripts options

* env langfuse file

* env.langfuse

* Renamed file

* Add docker logs

* Update README

* Update file for execution

* Refactor environment configuration and Docker setup; update Python path, clean Redis logic, and adjust create-index service in Docker Compose.

* Add redis dump with two vector indexes

* Update docker compose

* Update creation index scripts

* Removed poetry from script

* Update app.local.Dockerfile for jupyter service

* Update scripts to retrive the correct index id

* Update apps/chatbot-index/scripts/run.create.index.sh

Co-authored-by: Devis Battisti <devis.battisti@uqido.com>

* Refactor document ID handling and update Redis index cleanup logic

* [CAI-805] Update packages versions for chatbot-index (#2079)

* Update poetry

* Add changeset

---------

Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

* Update description for clean_redis input argument

* Add logs

* Add logs

* [CAI-762] Update GitHub action and workflow to accept multiple input arguments (#2030)

* Update git action and workflow to accept multiple input arguments

* Update action and workflow

* Update .github/actions/chatbot/action.yaml

Co-authored-by: Devis Battisti <devis.battisti@uqido.com>

* Update .github/actions/chatbot/action.yaml

Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

* Removed CD in workflow

* Update command in action

* add echos

* Update workflow inputs

* removed echos

* Update clean redis input argument

---------

Co-authored-by: Devis Battisti <devis.battisti@uqido.com>
Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

---------

Co-authored-by: Devis Battisti <devis.battisti@uqido.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: uolter <walter.traspadini@pagopa.it>
Co-authored-by: Noemi Manara <noemi.manara@gmail.com>
Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>
marcobottaro added a commit that referenced this pull request Mar 4, 2026
* Update chatbot modules

* Update chatbot queries.py

* Update poetry files

* Update chatbot api queries

* Update chatbot dockerfile

* Update chatbot-monitor scripts

* Add changeset

* Update chatbot notebook

* Update chatbot src scripts

* [CAI-656] move presidio from chatbot to chatbot-monitor (#1844)

* save query and evaluate functions refactoring

* dynamodb query put

* presidio

* changeset

* Update chatbot app queries

* Update chatbot-monitor scripts

* Update chatbot-monitor scripts

* Update chatbot queries.py

---------

Co-authored-by: mdciri <marco.cirillo@uqido.com>
Co-authored-by: Marco Domenico Cirillo <59966344+mdciri@users.noreply.github.com>

* [CAI-630] chatbot evaluate refactor (#1868)

* save query and evaluate functions refactoring

* dynamodb query put

* presidio

* changeset

* Update chatbot app queries

* Update chatbot-evaluator modules

* Update poetry files

* Update lambda function

* Update chatbot monitor scripts

* Update chatbot-evaluate scripts

* Update chatbot-evaluate lamda function

* Update chatbot-monitor lambda function

* Add changeset

* Update chatbot-monitor monitor.py

* Update chatbot-monitor monitor.py

* Align to CAI-629

* Update lambda function to consider only unique records

* Update lambda function in chatbot-monitor

* Update chatbot-evaluate lambda function

* Update chatbot-evaluate tests

* Update loggers in chatbot monitor, index, and evaluate

* Update loggers in chatbot, monitor, index, and evaluate

* Update dockerfile for tests

* Add new changeset

* fix: logger param

* fix: comment langfuse add score. We will use SQS queue in another pr

* comment calls to presidio. In a future pr we will use SQS for them

---------

Co-authored-by: batdevis <devis.battisti@uqido.com>

* [CAI-684] Add langfuse release version (#1929)

* Update chatbot settings

* Update chatbot Dockerfiles

* Update chatbot modules

* Update chatbot-monitor to get release app version

* Add changeset

* Update version as tag product

* Update changeset

* Refactor for multi index in redis

* [CAI-682] move presidio and dynamodb to chatbot monitor (#1916)

* fix double entry

* event test payload

* docker compose test

* pytest

* pytest

* docker compose test and volumes

* aws motoserver file

* move feedback update to chatbot-monitor

* remove spacy download

* fix test json file

* changeset

* remove duplicate test files

* gitignore autoflake report files

* remove unused imports

* fix log level param

* fix database envs for docker compose

* chore: remove unused env var on .env.example

* sqs local listener

* docker compose

* feat: clean workflow

* docs

* docker compose ports

* chore: Dockerfiles refactor

* Fix loop in the langfuse trace creation

* Update spaces and indentation

* remove logs

* Update crate_langfuse_trace() method to respect API

* Update crate_langfuse_trace() method to respect API

* Removed recursive method in process_span()

* Removed timestamp

* Fix unique records to be processed

* Removed timestamp to logger

* fix bug in monitor.py

* defence from NoneType values

* Update poetry downgrading ragas

* Evaluation accepts mock test

* Update lambda function to wrtie mock scores

* [CAI-729] ecoding decoding AWS SQS payload (#1984)

* Update API to write in SQS monitor

* Add compression and decompression scripts to chatbot, chatbot-evaluate and chatbot-monitor

* Update scripts to compress and decompress payload from/to SQS

* Add changeset

* Update .changeset/pink-kings-enter.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix float number error on scores

* fix compose

* docker files cleanup

* Update return type of process_span() method

---------

Co-authored-by: mdciri <marco.cirillo@uqido.com>
Co-authored-by: Marco Domenico Cirillo <59966344+mdciri@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Copilot terraform skills

* [CAI-747] add parser app (#1996)

* Add package.json to parser app

* Add changeset, update package-lock

* Update apps/parser/package.json

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* [CAI-748] Add Puppeteer (#1999)

* Add package.json to parser app

* Add changeset, update package-lock

* Update apps/parser/package.json

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Add puppeteer dependency in parser app

* Add changeset

* Update .changeset/three-cups-change.md

Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

* Update apps/parser/package.json

Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

* Update scripts to accept structured documents to create a dedicated index

* Update github action accordingly to python script

* Update chatbot create index workflow to accept input types

* Update documents to read structured data into llamaindex documents

* Update apps/chatbot-index/src/modules/settings.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update apps/chatbot-index/src/modules/documents.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update .github/actions/chatbot/action.yaml

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix the input and output types

* Update structured llamaindex documents id

* Add assertion for the inputs

* Update .changeset/eager-colts-smile.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update apps/chatbot-index/src/modules/create_vector_index.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update document to safe load jsons

* Update cleaning redis when creating index given an index id

* Update .github/workflows/chatbot_create_index.yaml

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Sobstitute s3 client with s3 resource

* Update apps/chatbot-index/src/modules/vector_index.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update apps/chatbot-index/src/modules/documents.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update apps/chatbot-index/src/modules/codec.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update documents json loads

* fix docker compose

* Add to the github workflow and action the index-id to create as env var

* Update class name to be more generic

* Update class name to be more generic

* fix docker file name in github action

* Update workflow inputs

* fix github action deploy lambda monitor image-uri

* fix image tag in github action

* Update create-index service in compose.yaml

* Update dockerfile and scripts

* Update codec return

* fix s3 init on create index

* Update logger level when default is not passed

* Update sqs logs

* dix image uri in github action

* removed info logs

* Removed log about the print of the sqs response

* Fix tag field

* Update devportal rag prompt

* [CAI-758] docker as user (#2009)

* run Docker as normal user

* user home

* changeset

* user home

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

* add s3 folder to the docker container

* add safe load json

* Update docker compose

* Add temp struct files for the cittadino-index

* update get_structured_docs()

* remove wrong copy

* add script to create cittadino index

* Removed old script to create index

* moved script to docker folder

* Revert github action and workflow

* add chatbot changeset

* add last empty line

* Add structured outputs script

* Restored agent.py and agent_tools.py

* Add tools folder

* Add __init__ script to modules

* Add llamaindex settings

* Add cittadino index id in settings

* Removed unused imports

* Removed unused imports

* Removed file

* removed unused classes

* Update chatbot with new tools folder and agent

* Add changeset

* Removed unused script

* Add global var

* removed unused import

* error handle

Similar to the chatbot-monitor lambda, if SQS_MONITOR is None (which can happen if get_sqs_monitor_queue() fails), calling send_message on it will raise an AttributeError. Consider adding an explicit check before attempting to send the message.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* little fixes

* ensures query data is always persisted

* explicit None

* db save

* fix docker user permission

* Update README

* Add README

* motoserver ports

* Update README

* Update README

* docker compose

* dockerfile user

* Add docker build test script

* Update packages

* Update packages

* env example

* Add log trace id on lambda

* env example

* env example

* readme

* Update README

* Update README

* Update README

* Update README

* Dockerfile alignment

* chatbot monitor tests

* Update .env.example

* add env var

* fix test

* dockerfile cp

* remove ssm retrieve logs

* ssm client fix

* example env files

* Update README

* docker script options

* docker scripts options

* env langfuse file

* env.langfuse

* Renamed file

* Add docker logs

* Update README

* Update file for execution

* Refactor environment configuration and Docker setup; update Python path, clean Redis logic, and adjust create-index service in Docker Compose.

* Add redis dump with two vector indexes

* Update docker compose

* Update creation index scripts

* Removed poetry from script

* Update app.local.Dockerfile for jupyter service

* Update scripts to retrive the correct index id

* Update apps/chatbot-index/scripts/run.create.index.sh

Co-authored-by: Devis Battisti <devis.battisti@uqido.com>

* Add cittadino query tool

* Reset setting variable

* Update changeset

* Refactor document ID handling and update Redis index cleanup logic

* Update structured output

* Update prompt examples

* Enhance documentation for response handling and structured outputs in Chatbot module

* Update descriptrion in strutured output

* Update apps/chatbot/src/modules/vector_index.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Moved llamaindex settings in load index function

* Add exceptions when initilizing chatbot

* Update apps/chatbot/src/modules/agent.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Add check for nodes before extending retrieved_contexts in Chatbot class

* [CAI-805] Update packages versions for chatbot-index (#2079)

* Update poetry

* Add changeset

---------

Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

---------

Co-authored-by: Devis Battisti <devis.battisti@uqido.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: uolter <walter.traspadini@pagopa.it>
Co-authored-by: Noemi Manara <noemi.manara@gmail.com>
Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>
marcobottaro added a commit that referenced this pull request Mar 4, 2026
* Update chatbot modules

* Update chatbot queries.py

* Update poetry files

* Update chatbot api queries

* Update chatbot dockerfile

* Update chatbot-monitor scripts

* Add changeset

* Update chatbot notebook

* Update chatbot src scripts

* [CAI-656] move presidio from chatbot to chatbot-monitor (#1844)

* save query and evaluate functions refactoring

* dynamodb query put

* presidio

* changeset

* Update chatbot app queries

* Update chatbot-monitor scripts

* Update chatbot-monitor scripts

* Update chatbot queries.py

---------

Co-authored-by: mdciri <marco.cirillo@uqido.com>
Co-authored-by: Marco Domenico Cirillo <59966344+mdciri@users.noreply.github.com>

* [CAI-630] chatbot evaluate refactor (#1868)

* save query and evaluate functions refactoring

* dynamodb query put

* presidio

* changeset

* Update chatbot app queries

* Update chatbot-evaluator modules

* Update poetry files

* Update lambda function

* Update chatbot monitor scripts

* Update chatbot-evaluate scripts

* Update chatbot-evaluate lamda function

* Update chatbot-monitor lambda function

* Add changeset

* Update chatbot-monitor monitor.py

* Update chatbot-monitor monitor.py

* Align to CAI-629

* Update lambda function to consider only unique records

* Update lambda function in chatbot-monitor

* Update chatbot-evaluate lambda function

* Update chatbot-evaluate tests

* Update loggers in chatbot monitor, index, and evaluate

* Update loggers in chatbot, monitor, index, and evaluate

* Update dockerfile for tests

* Add new changeset

* fix: logger param

* fix: comment langfuse add score. We will use SQS queue in another pr

* comment calls to presidio. In a future pr we will use SQS for them

---------

Co-authored-by: batdevis <devis.battisti@uqido.com>

* [CAI-684] Add langfuse release version (#1929)

* Update chatbot settings

* Update chatbot Dockerfiles

* Update chatbot modules

* Update chatbot-monitor to get release app version

* Add changeset

* Update version as tag product

* Update changeset

* Refactor for multi index in redis

* [CAI-682] move presidio and dynamodb to chatbot monitor (#1916)

* fix double entry

* event test payload

* docker compose test

* pytest

* pytest

* docker compose test and volumes

* aws motoserver file

* move feedback update to chatbot-monitor

* remove spacy download

* fix test json file

* changeset

* remove duplicate test files

* gitignore autoflake report files

* remove unused imports

* fix log level param

* fix database envs for docker compose

* chore: remove unused env var on .env.example

* sqs local listener

* docker compose

* feat: clean workflow

* docs

* docker compose ports

* chore: Dockerfiles refactor

* Fix loop in the langfuse trace creation

* Update spaces and indentation

* remove logs

* Update crate_langfuse_trace() method to respect API

* Update crate_langfuse_trace() method to respect API

* Removed recursive method in process_span()

* Removed timestamp

* Fix unique records to be processed

* Removed timestamp to logger

* fix bug in monitor.py

* defence from NoneType values

* Update poetry downgrading ragas

* Evaluation accepts mock test

* Update lambda function to wrtie mock scores

* [CAI-729] ecoding decoding AWS SQS payload (#1984)

* Update API to write in SQS monitor

* Add compression and decompression scripts to chatbot, chatbot-evaluate and chatbot-monitor

* Update scripts to compress and decompress payload from/to SQS

* Add changeset

* Update .changeset/pink-kings-enter.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix float number error on scores

* fix compose

* docker files cleanup

* Update return type of process_span() method

---------

Co-authored-by: mdciri <marco.cirillo@uqido.com>
Co-authored-by: Marco Domenico Cirillo <59966344+mdciri@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Copilot terraform skills

* [CAI-747] add parser app (#1996)

* Add package.json to parser app

* Add changeset, update package-lock

* Update apps/parser/package.json

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* [CAI-748] Add Puppeteer (#1999)

* Add package.json to parser app

* Add changeset, update package-lock

* Update apps/parser/package.json

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Add puppeteer dependency in parser app

* Add changeset

* Update .changeset/three-cups-change.md

Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

* Update apps/parser/package.json

Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

* Update scripts to accept structured documents to create a dedicated index

* Update github action accordingly to python script

* Update chatbot create index workflow to accept input types

* Update documents to read structured data into llamaindex documents

* Update apps/chatbot-index/src/modules/settings.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update apps/chatbot-index/src/modules/documents.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update .github/actions/chatbot/action.yaml

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix the input and output types

* Update structured llamaindex documents id

* Add assertion for the inputs

* Update .changeset/eager-colts-smile.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update apps/chatbot-index/src/modules/create_vector_index.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update document to safe load jsons

* Update cleaning redis when creating index given an index id

* Update .github/workflows/chatbot_create_index.yaml

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Sobstitute s3 client with s3 resource

* Update apps/chatbot-index/src/modules/vector_index.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update apps/chatbot-index/src/modules/documents.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update apps/chatbot-index/src/modules/codec.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update documents json loads

* fix docker compose

* Add to the github workflow and action the index-id to create as env var

* Update class name to be more generic

* Update class name to be more generic

* fix docker file name in github action

* Update workflow inputs

* fix github action deploy lambda monitor image-uri

* fix image tag in github action

* Update create-index service in compose.yaml

* Update dockerfile and scripts

* Update codec return

* fix s3 init on create index

* Update logger level when default is not passed

* Update sqs logs

* dix image uri in github action

* removed info logs

* Removed log about the print of the sqs response

* Fix tag field

* Update devportal rag prompt

* [CAI-758] docker as user (#2009)

* run Docker as normal user

* user home

* changeset

* user home

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

* add s3 folder to the docker container

* add safe load json

* Update docker compose

* Add temp struct files for the cittadino-index

* update get_structured_docs()

* remove wrong copy

* add script to create cittadino index

* Removed old script to create index

* moved script to docker folder

* Revert github action and workflow

* add chatbot changeset

* add last empty line

* Add structured outputs script

* Restored agent.py and agent_tools.py

* Add tools folder

* Add __init__ script to modules

* Add llamaindex settings

* Add cittadino index id in settings

* Removed unused imports

* Removed unused imports

* Removed file

* removed unused classes

* Update chatbot with new tools folder and agent

* Add changeset

* Moved orchestrator into specific folder

* Update orchestrator with new tool

* Removed unused script

* Add global var

* removed unused import

* error handle

Similar to the chatbot-monitor lambda, if SQS_MONITOR is None (which can happen if get_sqs_monitor_queue() fails), calling send_message on it will raise an AttributeError. Consider adding an explicit check before attempting to send the message.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* little fixes

* ensures query data is always persisted

* explicit None

* db save

* fix docker user permission

* Update README

* Add README

* motoserver ports

* Update README

* Update README

* docker compose

* dockerfile user

* Add docker build test script

* Update packages

* Update packages

* env example

* Add log trace id on lambda

* env example

* env example

* readme

* Update README

* Update README

* Update README

* Update README

* Dockerfile alignment

* chatbot monitor tests

* Update .env.example

* add env var

* fix test

* dockerfile cp

* remove ssm retrieve logs

* ssm client fix

* example env files

* Update README

* docker script options

* docker scripts options

* env langfuse file

* env.langfuse

* Renamed file

* Add docker logs

* Update README

* Update file for execution

* Refactor environment configuration and Docker setup; update Python path, clean Redis logic, and adjust create-index service in Docker Compose.

* Add redis dump with two vector indexes

* Update docker compose

* Update creation index scripts

* Removed poetry from script

* Update app.local.Dockerfile for jupyter service

* Update scripts to retrive the correct index id

* Update apps/chatbot-index/scripts/run.create.index.sh

Co-authored-by: Devis Battisti <devis.battisti@uqido.com>

* Add cittadino query tool

* Reset setting variable

* Update changeset

* Refactor document ID handling and update Redis index cleanup logic

* Update structured output

* Update prompt examples

* Enhance documentation for response handling and structured outputs in Chatbot module

* Update descriptrion in strutured output

* Update apps/chatbot/src/modules/vector_index.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Moved llamaindex settings in load index function

* Add exceptions when initilizing chatbot

* Update apps/chatbot/src/modules/agent.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Add changeset

* Add check for nodes before extending retrieved_contexts in Chatbot class

* Fix: prevent error when extending retrieved contexts with empty nodes

* [CAI-805] Update packages versions for chatbot-index (#2079)

* Update poetry

* Add changeset

---------

Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

* Update .changeset/giant-doors-reply.md

Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

---------

Co-authored-by: Devis Battisti <devis.battisti@uqido.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: uolter <walter.traspadini@pagopa.it>
Co-authored-by: Noemi Manara <noemi.manara@gmail.com>
Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>
marcobottaro added a commit that referenced this pull request Mar 4, 2026
* Update chatbot modules

* Update chatbot queries.py

* Update poetry files

* Update chatbot api queries

* Update chatbot dockerfile

* Update chatbot-monitor scripts

* Add changeset

* Update chatbot notebook

* Update chatbot src scripts

* [CAI-656] move presidio from chatbot to chatbot-monitor (#1844)

* save query and evaluate functions refactoring

* dynamodb query put

* presidio

* changeset

* Update chatbot app queries

* Update chatbot-monitor scripts

* Update chatbot-monitor scripts

* Update chatbot queries.py

---------

Co-authored-by: mdciri <marco.cirillo@uqido.com>
Co-authored-by: Marco Domenico Cirillo <59966344+mdciri@users.noreply.github.com>

* [CAI-630] chatbot evaluate refactor (#1868)

* save query and evaluate functions refactoring

* dynamodb query put

* presidio

* changeset

* Update chatbot app queries

* Update chatbot-evaluator modules

* Update poetry files

* Update lambda function

* Update chatbot monitor scripts

* Update chatbot-evaluate scripts

* Update chatbot-evaluate lamda function

* Update chatbot-monitor lambda function

* Add changeset

* Update chatbot-monitor monitor.py

* Update chatbot-monitor monitor.py

* Align to CAI-629

* Update lambda function to consider only unique records

* Update lambda function in chatbot-monitor

* Update chatbot-evaluate lambda function

* Update chatbot-evaluate tests

* Update loggers in chatbot monitor, index, and evaluate

* Update loggers in chatbot, monitor, index, and evaluate

* Update dockerfile for tests

* Add new changeset

* fix: logger param

* fix: comment langfuse add score. We will use SQS queue in another pr

* comment calls to presidio. In a future pr we will use SQS for them

---------

Co-authored-by: batdevis <devis.battisti@uqido.com>

* [CAI-684] Add langfuse release version (#1929)

* Update chatbot settings

* Update chatbot Dockerfiles

* Update chatbot modules

* Update chatbot-monitor to get release app version

* Add changeset

* Update version as tag product

* Update changeset

* Refactor for multi index in redis

* [CAI-682] move presidio and dynamodb to chatbot monitor (#1916)

* fix double entry

* event test payload

* docker compose test

* pytest

* pytest

* docker compose test and volumes

* aws motoserver file

* move feedback update to chatbot-monitor

* remove spacy download

* fix test json file

* changeset

* remove duplicate test files

* gitignore autoflake report files

* remove unused imports

* fix log level param

* fix database envs for docker compose

* chore: remove unused env var on .env.example

* sqs local listener

* docker compose

* feat: clean workflow

* docs

* docker compose ports

* chore: Dockerfiles refactor

* Fix loop in the langfuse trace creation

* Update spaces and indentation

* remove logs

* Update crate_langfuse_trace() method to respect API

* Update crate_langfuse_trace() method to respect API

* Removed recursive method in process_span()

* Removed timestamp

* Fix unique records to be processed

* Removed timestamp to logger

* fix bug in monitor.py

* defence from NoneType values

* Update poetry downgrading ragas

* Evaluation accepts mock test

* Update lambda function to wrtie mock scores

* [CAI-729] ecoding decoding AWS SQS payload (#1984)

* Update API to write in SQS monitor

* Add compression and decompression scripts to chatbot, chatbot-evaluate and chatbot-monitor

* Update scripts to compress and decompress payload from/to SQS

* Add changeset

* Update .changeset/pink-kings-enter.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix float number error on scores

* fix compose

* docker files cleanup

* Update return type of process_span() method

---------

Co-authored-by: mdciri <marco.cirillo@uqido.com>
Co-authored-by: Marco Domenico Cirillo <59966344+mdciri@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Copilot terraform skills

* [CAI-747] add parser app (#1996)

* Add package.json to parser app

* Add changeset, update package-lock

* Update apps/parser/package.json

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* [CAI-748] Add Puppeteer (#1999)

* Add package.json to parser app

* Add changeset, update package-lock

* Update apps/parser/package.json

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Add puppeteer dependency in parser app

* Add changeset

* Update .changeset/three-cups-change.md

Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

* Update apps/parser/package.json

Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

* Update scripts to accept structured documents to create a dedicated index

* Update github action accordingly to python script

* Update chatbot create index workflow to accept input types

* Update documents to read structured data into llamaindex documents

* Update apps/chatbot-index/src/modules/settings.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update apps/chatbot-index/src/modules/documents.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update .github/actions/chatbot/action.yaml

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix the input and output types

* Update structured llamaindex documents id

* Add assertion for the inputs

* Update .changeset/eager-colts-smile.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update apps/chatbot-index/src/modules/create_vector_index.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update document to safe load jsons

* Update cleaning redis when creating index given an index id

* Update .github/workflows/chatbot_create_index.yaml

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Sobstitute s3 client with s3 resource

* Update apps/chatbot-index/src/modules/vector_index.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update apps/chatbot-index/src/modules/documents.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update apps/chatbot-index/src/modules/codec.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update documents json loads

* fix docker compose

* Add to the github workflow and action the index-id to create as env var

* Update class name to be more generic

* Update class name to be more generic

* fix docker file name in github action

* Update workflow inputs

* fix github action deploy lambda monitor image-uri

* fix image tag in github action

* Update create-index service in compose.yaml

* Update dockerfile and scripts

* Update codec return

* fix s3 init on create index

* Update logger level when default is not passed

* Update sqs logs

* dix image uri in github action

* removed info logs

* Removed log about the print of the sqs response

* Fix tag field

* Update devportal rag prompt

* [CAI-758] docker as user (#2009)

* run Docker as normal user

* user home

* changeset

* user home

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

* add s3 folder to the docker container

* add safe load json

* Update docker compose

* Add temp struct files for the cittadino-index

* update get_structured_docs()

* remove wrong copy

* add script to create cittadino index

* Removed old script to create index

* moved script to docker folder

* Revert github action and workflow

* add chatbot changeset

* add last empty line

* Add structured outputs script

* Restored agent.py and agent_tools.py

* Add tools folder

* Add __init__ script to modules

* Add llamaindex settings

* Add cittadino index id in settings

* Removed unused imports

* Removed unused imports

* Removed file

* removed unused classes

* Update chatbot with new tools folder and agent

* Add changeset

* Moved orchestrator into specific folder

* Update orchestrator with new tool

* Removed unused script

* Add global var

* removed unused import

* error handle

Similar to the chatbot-monitor lambda, if SQS_MONITOR is None (which can happen if get_sqs_monitor_queue() fails), calling send_message on it will raise an AttributeError. Consider adding an explicit check before attempting to send the message.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* little fixes

* ensures query data is always persisted

* explicit None

* db save

* fix docker user permission

* Update README

* Add README

* motoserver ports

* Update README

* Update README

* docker compose

* dockerfile user

* Add docker build test script

* Update packages

* Update packages

* env example

* Add log trace id on lambda

* env example

* env example

* readme

* Update README

* Update README

* Update README

* Update README

* Dockerfile alignment

* chatbot monitor tests

* Update .env.example

* add env var

* fix test

* dockerfile cp

* remove ssm retrieve logs

* ssm client fix

* example env files

* Update README

* docker script options

* docker scripts options

* env langfuse file

* env.langfuse

* Renamed file

* Add docker logs

* Update README

* Update file for execution

* Refactor environment configuration and Docker setup; update Python path, clean Redis logic, and adjust create-index service in Docker Compose.

* Add redis dump with two vector indexes

* Update docker compose

* Update creation index scripts

* Removed poetry from script

* Update app.local.Dockerfile for jupyter service

* Update scripts to retrive the correct index id

* Update apps/chatbot-index/scripts/run.create.index.sh

Co-authored-by: Devis Battisti <devis.battisti@uqido.com>

* Add cittadino query tool

* Reset setting variable

* Update changeset

* Refactor document ID handling and update Redis index cleanup logic

* Update structured output

* Update prompt examples

* Enhance documentation for response handling and structured outputs in Chatbot module

* Update descriptrion in strutured output

* Update apps/chatbot/src/modules/vector_index.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Moved llamaindex settings in load index function

* Add exceptions when initilizing chatbot

* Update apps/chatbot/src/modules/agent.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Add changeset

* Implement follow-up questions tool and update chatbot structure for enhanced user interaction

* Add check for nodes before extending retrieved_contexts in Chatbot class

* Fix: prevent error when extending retrieved contexts with empty nodes

* Add changeset

* Update notebook

* Update notebook

* Update .changeset/perky-monkeys-warn.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Move tools descriptions from chatbot.py to rag_tools.py

* Update apps/chatbot/src/modules/structured_outputs.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update apps/chatbot/src/modules/tools/chips_generator_tool.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix typos and improve descriptions in chips_generator_tool.py

* Update pompt chip generator

* Update chip generator output

* Update response json output

* Update notebook

* Update chips generator to consider the rag responses

* Update chips generator tool

* [CAI-805] Update packages versions for chatbot-index (#2079)

* Update poetry

* Add changeset

---------

Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

* Update .changeset/giant-doors-reply.md

Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

* Update apps/chatbot/src/modules/structured_outputs.py

Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

* Update apps/chatbot/src/modules/structured_outputs.py

Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

* Update apps/chatbot/src/modules/structured_outputs.py

Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

* Refine assistant role description and update product names in RAG tool documentation

---------

Co-authored-by: Devis Battisti <devis.battisti@uqido.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: uolter <walter.traspadini@pagopa.it>
Co-authored-by: Noemi Manara <noemi.manara@gmail.com>
Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>
marcobottaro added a commit that referenced this pull request Mar 12, 2026
* Update chatbot modules

* Update chatbot queries.py

* Update poetry files

* Update chatbot api queries

* Update chatbot dockerfile

* Update chatbot-monitor scripts

* Add changeset

* Update chatbot notebook

* Update chatbot src scripts

* [CAI-656] move presidio from chatbot to chatbot-monitor (#1844)

* save query and evaluate functions refactoring

* dynamodb query put

* presidio

* changeset

* Update chatbot app queries

* Update chatbot-monitor scripts

* Update chatbot-monitor scripts

* Update chatbot queries.py

---------

Co-authored-by: mdciri <marco.cirillo@uqido.com>
Co-authored-by: Marco Domenico Cirillo <59966344+mdciri@users.noreply.github.com>

* [CAI-630] chatbot evaluate refactor (#1868)

* save query and evaluate functions refactoring

* dynamodb query put

* presidio

* changeset

* Update chatbot app queries

* Update chatbot-evaluator modules

* Update poetry files

* Update lambda function

* Update chatbot monitor scripts

* Update chatbot-evaluate scripts

* Update chatbot-evaluate lamda function

* Update chatbot-monitor lambda function

* Add changeset

* Update chatbot-monitor monitor.py

* Update chatbot-monitor monitor.py

* Align to CAI-629

* Update lambda function to consider only unique records

* Update lambda function in chatbot-monitor

* Update chatbot-evaluate lambda function

* Update chatbot-evaluate tests

* Update loggers in chatbot monitor, index, and evaluate

* Update loggers in chatbot, monitor, index, and evaluate

* Update dockerfile for tests

* Add new changeset

* fix: logger param

* fix: comment langfuse add score. We will use SQS queue in another pr

* comment calls to presidio. In a future pr we will use SQS for them

---------

Co-authored-by: batdevis <devis.battisti@uqido.com>

* [CAI-684] Add langfuse release version (#1929)

* Update chatbot settings

* Update chatbot Dockerfiles

* Update chatbot modules

* Update chatbot-monitor to get release app version

* Add changeset

* Update version as tag product

* Update changeset

* Refactor for multi index in redis

* [CAI-682] move presidio and dynamodb to chatbot monitor (#1916)

* fix double entry

* event test payload

* docker compose test

* pytest

* pytest

* docker compose test and volumes

* aws motoserver file

* move feedback update to chatbot-monitor

* remove spacy download

* fix test json file

* changeset

* remove duplicate test files

* gitignore autoflake report files

* remove unused imports

* fix log level param

* fix database envs for docker compose

* chore: remove unused env var on .env.example

* sqs local listener

* docker compose

* feat: clean workflow

* docs

* docker compose ports

* chore: Dockerfiles refactor

* Fix loop in the langfuse trace creation

* Update spaces and indentation

* remove logs

* Update crate_langfuse_trace() method to respect API

* Update crate_langfuse_trace() method to respect API

* Removed recursive method in process_span()

* Removed timestamp

* Fix unique records to be processed

* Removed timestamp to logger

* fix bug in monitor.py

* defence from NoneType values

* Update poetry downgrading ragas

* Evaluation accepts mock test

* Update lambda function to wrtie mock scores

* [CAI-729] ecoding decoding AWS SQS payload (#1984)

* Update API to write in SQS monitor

* Add compression and decompression scripts to chatbot, chatbot-evaluate and chatbot-monitor

* Update scripts to compress and decompress payload from/to SQS

* Add changeset

* Update .changeset/pink-kings-enter.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix float number error on scores

* fix compose

* docker files cleanup

* Update return type of process_span() method

---------

Co-authored-by: mdciri <marco.cirillo@uqido.com>
Co-authored-by: Marco Domenico Cirillo <59966344+mdciri@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Copilot terraform skills

* [CAI-747] add parser app (#1996)

* Add package.json to parser app

* Add changeset, update package-lock

* Update apps/parser/package.json

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* [CAI-748] Add Puppeteer (#1999)

* Add package.json to parser app

* Add changeset, update package-lock

* Update apps/parser/package.json

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Add puppeteer dependency in parser app

* Add changeset

* Update .changeset/three-cups-change.md

Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

* Update apps/parser/package.json

Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

* Update scripts to accept structured documents to create a dedicated index

* Update github action accordingly to python script

* Update chatbot create index workflow to accept input types

* Update documents to read structured data into llamaindex documents

* Update apps/chatbot-index/src/modules/settings.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update apps/chatbot-index/src/modules/documents.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update .github/actions/chatbot/action.yaml

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix the input and output types

* Update structured llamaindex documents id

* Add assertion for the inputs

* Update .changeset/eager-colts-smile.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update apps/chatbot-index/src/modules/create_vector_index.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update document to safe load jsons

* Update cleaning redis when creating index given an index id

* Update .github/workflows/chatbot_create_index.yaml

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Sobstitute s3 client with s3 resource

* Update apps/chatbot-index/src/modules/vector_index.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update apps/chatbot-index/src/modules/documents.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update apps/chatbot-index/src/modules/codec.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update documents json loads

* fix docker compose

* Add to the github workflow and action the index-id to create as env var

* Update class name to be more generic

* Update class name to be more generic

* fix docker file name in github action

* Update workflow inputs

* fix github action deploy lambda monitor image-uri

* fix image tag in github action

* Update create-index service in compose.yaml

* Update dockerfile and scripts

* Update codec return

* fix s3 init on create index

* Update logger level when default is not passed

* Update sqs logs

* dix image uri in github action

* removed info logs

* Removed log about the print of the sqs response

* Fix tag field

* Update devportal rag prompt

* [CAI-758] docker as user (#2009)

* run Docker as normal user

* user home

* changeset

* user home

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

* add s3 folder to the docker container

* add safe load json

* Update docker compose

* Add temp struct files for the cittadino-index

* update get_structured_docs()

* remove wrong copy

* add script to create cittadino index

* Removed old script to create index

* moved script to docker folder

* Revert github action and workflow

* add chatbot changeset

* add last empty line

* Add global var

* removed unused import

* error handle

Similar to the chatbot-monitor lambda, if SQS_MONITOR is None (which can happen if get_sqs_monitor_queue() fails), calling send_message on it will raise an AttributeError. Consider adding an explicit check before attempting to send the message.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* little fixes

* ensures query data is always persisted

* explicit None

* db save

* fix docker user permission

* Update README

* Add README

* motoserver ports

* Update README

* Update README

* docker compose

* dockerfile user

* Add docker build test script

* Update packages

* Update packages

* env example

* Add log trace id on lambda

* env example

* env example

* readme

* Update README

* Update README

* Update README

* Update README

* Dockerfile alignment

* chatbot monitor tests

* Update .env.example

* add env var

* fix test

* dockerfile cp

* remove ssm retrieve logs

* ssm client fix

* example env files

* Update README

* docker script options

* docker scripts options

* env langfuse file

* env.langfuse

* Renamed file

* Add docker logs

* Update README

* Update file for execution

* Refactor environment configuration and Docker setup; update Python path, clean Redis logic, and adjust create-index service in Docker Compose.

* Add redis dump with two vector indexes

* Update docker compose

* Update creation index scripts

* Removed poetry from script

* Update app.local.Dockerfile for jupyter service

* Update scripts to retrive the correct index id

* Update apps/chatbot-index/scripts/run.create.index.sh

Co-authored-by: Devis Battisti <devis.battisti@uqido.com>

* Refactor document ID handling and update Redis index cleanup logic

* [CAI-805] Update packages versions for chatbot-index (#2079)

* Update poetry

* Add changeset

---------

Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

* Update description for clean_redis input argument

* Add logs

* Add logs

* Add functionality to refresh structured documents in vector index and sanitize URLs for directory names

* Add changeset

* Refactor URL handling and vector index logging for improved clarity and functionality

* Update apps/chatbot-index/src/modules/refresh_structured_docs.py

Co-authored-by: Noemi Manara <noemi.manara@gmail.com>

* Update apps/chatbot-index/src/modules/vector_index.py

Co-authored-by: Noemi Manara <noemi.manara@gmail.com>

---------

Co-authored-by: Devis Battisti <devis.battisti@uqido.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: uolter <walter.traspadini@pagopa.it>
Co-authored-by: Noemi Manara <noemi.manara@gmail.com>
Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>
Co-authored-by: MarBert <41899883+MarBert@users.noreply.github.com>
marcobottaro added a commit that referenced this pull request Mar 12, 2026
* Update chatbot modules

* Update chatbot queries.py

* Update poetry files

* Update chatbot api queries

* Update chatbot dockerfile

* Update chatbot-monitor scripts

* Add changeset

* Update chatbot notebook

* Update chatbot src scripts

* [CAI-656] move presidio from chatbot to chatbot-monitor (#1844)

* save query and evaluate functions refactoring

* dynamodb query put

* presidio

* changeset

* Update chatbot app queries

* Update chatbot-monitor scripts

* Update chatbot-monitor scripts

* Update chatbot queries.py

---------

Co-authored-by: mdciri <marco.cirillo@uqido.com>
Co-authored-by: Marco Domenico Cirillo <59966344+mdciri@users.noreply.github.com>

* [CAI-630] chatbot evaluate refactor (#1868)

* save query and evaluate functions refactoring

* dynamodb query put

* presidio

* changeset

* Update chatbot app queries

* Update chatbot-evaluator modules

* Update poetry files

* Update lambda function

* Update chatbot monitor scripts

* Update chatbot-evaluate scripts

* Update chatbot-evaluate lamda function

* Update chatbot-monitor lambda function

* Add changeset

* Update chatbot-monitor monitor.py

* Update chatbot-monitor monitor.py

* Align to CAI-629

* Update lambda function to consider only unique records

* Update lambda function in chatbot-monitor

* Update chatbot-evaluate lambda function

* Update chatbot-evaluate tests

* Update loggers in chatbot monitor, index, and evaluate

* Update loggers in chatbot, monitor, index, and evaluate

* Update dockerfile for tests

* Add new changeset

* fix: logger param

* fix: comment langfuse add score. We will use SQS queue in another pr

* comment calls to presidio. In a future pr we will use SQS for them

---------

Co-authored-by: batdevis <devis.battisti@uqido.com>

* [CAI-684] Add langfuse release version (#1929)

* Update chatbot settings

* Update chatbot Dockerfiles

* Update chatbot modules

* Update chatbot-monitor to get release app version

* Add changeset

* Update version as tag product

* Update changeset

* Refactor for multi index in redis

* [CAI-682] move presidio and dynamodb to chatbot monitor (#1916)

* fix double entry

* event test payload

* docker compose test

* pytest

* pytest

* docker compose test and volumes

* aws motoserver file

* move feedback update to chatbot-monitor

* remove spacy download

* fix test json file

* changeset

* remove duplicate test files

* gitignore autoflake report files

* remove unused imports

* fix log level param

* fix database envs for docker compose

* chore: remove unused env var on .env.example

* sqs local listener

* docker compose

* feat: clean workflow

* docs

* docker compose ports

* chore: Dockerfiles refactor

* Fix loop in the langfuse trace creation

* Update spaces and indentation

* remove logs

* Update crate_langfuse_trace() method to respect API

* Update crate_langfuse_trace() method to respect API

* Removed recursive method in process_span()

* Removed timestamp

* Fix unique records to be processed

* Removed timestamp to logger

* fix bug in monitor.py

* defence from NoneType values

* Update poetry downgrading ragas

* Evaluation accepts mock test

* Update lambda function to wrtie mock scores

* [CAI-729] ecoding decoding AWS SQS payload (#1984)

* Update API to write in SQS monitor

* Add compression and decompression scripts to chatbot, chatbot-evaluate and chatbot-monitor

* Update scripts to compress and decompress payload from/to SQS

* Add changeset

* Update .changeset/pink-kings-enter.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix float number error on scores

* fix compose

* docker files cleanup

* Update return type of process_span() method

---------

Co-authored-by: mdciri <marco.cirillo@uqido.com>
Co-authored-by: Marco Domenico Cirillo <59966344+mdciri@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Copilot terraform skills

* [CAI-747] add parser app (#1996)

* Add package.json to parser app

* Add changeset, update package-lock

* Update apps/parser/package.json

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* [CAI-748] Add Puppeteer (#1999)

* Add package.json to parser app

* Add changeset, update package-lock

* Update apps/parser/package.json

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Add puppeteer dependency in parser app

* Add changeset

* Update .changeset/three-cups-change.md

Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

* Update apps/parser/package.json

Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

* Update scripts to accept structured documents to create a dedicated index

* Update github action accordingly to python script

* Update chatbot create index workflow to accept input types

* Update documents to read structured data into llamaindex documents

* Update apps/chatbot-index/src/modules/settings.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update apps/chatbot-index/src/modules/documents.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update .github/actions/chatbot/action.yaml

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix the input and output types

* Update structured llamaindex documents id

* Add assertion for the inputs

* Update .changeset/eager-colts-smile.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update apps/chatbot-index/src/modules/create_vector_index.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update document to safe load jsons

* Update cleaning redis when creating index given an index id

* Update .github/workflows/chatbot_create_index.yaml

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Sobstitute s3 client with s3 resource

* Update apps/chatbot-index/src/modules/vector_index.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update apps/chatbot-index/src/modules/documents.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update apps/chatbot-index/src/modules/codec.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update documents json loads

* fix docker compose

* Add to the github workflow and action the index-id to create as env var

* Update class name to be more generic

* Update class name to be more generic

* fix docker file name in github action

* Update workflow inputs

* fix github action deploy lambda monitor image-uri

* fix image tag in github action

* Update create-index service in compose.yaml

* Update dockerfile and scripts

* Update codec return

* fix s3 init on create index

* Update logger level when default is not passed

* Update sqs logs

* dix image uri in github action

* removed info logs

* Removed log about the print of the sqs response

* Fix tag field

* Update devportal rag prompt

* [CAI-758] docker as user (#2009)

* run Docker as normal user

* user home

* changeset

* user home

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

* add s3 folder to the docker container

* add safe load json

* Update docker compose

* Add temp struct files for the cittadino-index

* update get_structured_docs()

* remove wrong copy

* add script to create cittadino index

* Removed old script to create index

* moved script to docker folder

* Revert github action and workflow

* add chatbot changeset

* add last empty line

* Add global var

* removed unused import

* error handle

Similar to the chatbot-monitor lambda, if SQS_MONITOR is None (which can happen if get_sqs_monitor_queue() fails), calling send_message on it will raise an AttributeError. Consider adding an explicit check before attempting to send the message.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* little fixes

* ensures query data is always persisted

* explicit None

* db save

* fix docker user permission

* Update README

* Add README

* motoserver ports

* Update README

* Update README

* docker compose

* dockerfile user

* Add docker build test script

* Update packages

* Update packages

* env example

* Add log trace id on lambda

* env example

* env example

* readme

* Update README

* Update README

* Update README

* Update README

* Dockerfile alignment

* chatbot monitor tests

* Update .env.example

* add env var

* fix test

* dockerfile cp

* remove ssm retrieve logs

* ssm client fix

* example env files

* Update README

* docker script options

* docker scripts options

* env langfuse file

* env.langfuse

* Renamed file

* Add docker logs

* Update README

* Update file for execution

* Refactor environment configuration and Docker setup; update Python path, clean Redis logic, and adjust create-index service in Docker Compose.

* Add redis dump with two vector indexes

* Update docker compose

* Update creation index scripts

* Removed poetry from script

* Update app.local.Dockerfile for jupyter service

* Update scripts to retrive the correct index id

* Update apps/chatbot-index/scripts/run.create.index.sh

Co-authored-by: Devis Battisti <devis.battisti@uqido.com>

* Refactor document ID handling and update Redis index cleanup logic

* [CAI-805] Update packages versions for chatbot-index (#2079)

* Update poetry

* Add changeset

---------

Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>

* Update description for clean_redis input argument

* Add logs

* Add logs

* Add functionality to refresh structured documents in vector index and sanitize URLs for directory names

* Add changeset

* Add action to refresh structured docs for Chatbot LLamaindex Vector Index

* Fix action name and script reference in refresh structured docs workflow

* Refactor URL handling and vector index logging for improved clarity and functionality

* Update .github/actions/refresh-structured-docs-vector-index/action.yaml

Co-authored-by: MarBert <41899883+MarBert@users.noreply.github.com>

* Refactor input handling in refresh structured docs action to use inputs directly

* Update apps/chatbot-index/src/modules/refresh_structured_docs.py

Co-authored-by: Noemi Manara <noemi.manara@gmail.com>

* Update apps/chatbot-index/src/modules/vector_index.py

Co-authored-by: Noemi Manara <noemi.manara@gmail.com>

* Update .github/actions/refresh-structured-docs-vector-index/action.yaml

Co-authored-by: MarBert <41899883+MarBert@users.noreply.github.com>

* Replace bash script with action to update vector index in manage_knowledge_base workflow

* Refactor argument handling in refresh structured docs action

* Add index_id input to refresh structured docs action and update workflow usage

* Remove commented-out inputs for aws_region and chatbot_lambda_name in action.yaml

* Remove unused inputs from refresh-structured-docs action and update workflow usage

---------

Co-authored-by: Devis Battisti <devis.battisti@uqido.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: uolter <walter.traspadini@pagopa.it>
Co-authored-by: Noemi Manara <noemi.manara@gmail.com>
Co-authored-by: marcobottaro <39835990+marcobottaro@users.noreply.github.com>
Co-authored-by: MarBert <41899883+MarBert@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants