Commit Graph

99 Commits

Author SHA1 Message Date
Marco Procaccini 2375242ea5 new private key method for provisioning 2026-01-21 13:01:01 +01:00
Biagio Peccerillo b3f68feb04 Read QDrant API key from environment var 2026-01-19 12:26:06 +01:00
Biagio Peccerillo b3f014312d Modernized RAG system with semantic chunking and provider abstraction
Major changes:
- Replaced SentenceTransformer with Google Gemini embeddings (text-embedding-004, 768 dims)
- Implemented semantic chunking using cosine similarity between consecutive sentences
- Added provider-agnostic embedder abstraction layer
- Extracted Provider enum to shared utils/providers.py module
- Added permission-based filtering for RAG retrieval

RAG Manager improvements:
- Refactored all tools to return ToolResult instead of Dict[str, Any]
- Added @handle_tool_errors decorator for consistent error handling
- Re-enabled store_in_memory tool with workspace artifact integration
- Used file_handlers for document parsing during ingestion

Config & dependencies:
- Pinned Google ADK to 1.21.0 with compatible langchain versions
- Added langchain-google-genai for embedding support
- Added configurable embedding_model in ConfigManager
- Downgraded several dependencies for compatibility

Other fixes:
- Improved output formatting rules for file/folder listings (one item per line)
- Removed redundant metadata fields (Details/Notes) from social/catalogue ingestion
- Cleaned up dead code and imports across multiple files
2026-01-13 17:53:52 +01:00
Biagio Peccerillo 88a0a89ae2 Added a specific Knowledge Retriever Agent
Added central agent that manages "knowledge" in order to be more
modular. It combines both knowledge retrieved from the knowledge base
and general knowledge in a single, coherent answer.
2025-12-02 14:23:58 +01:00
Biagio Peccerillo 7503c8e231 Improved file and knowledge retrieval
- DocumentAnalyzer can now retrieve documents directly from the
  workspace, breaking the layers but heavily simplifying the workflows
  (and reducing easily-fixable errors)
- Gemini 3 has been set as PRO model (however, it's often overloaded...)
- First draft: question answering is done by integrating knowledge
  retrieved from the knowledge base and general knowledge. Sentences are
  labelled accordingly
- NOT USED (but potentially integrable): the main agent can be inserted
  in a loop with an evaluation agent that analyzes the error (if any)
  and suggests some solving strategies to attempt a retry
2025-12-02 12:19:33 +01:00
Biagio Peccerillo feda542099 Added additional fallback to retrieve ID from path 2025-11-25 11:55:47 +01:00
Marco Procaccini b1cc5573f9 Update Jenkinsfile.provisioning 2025-11-18 11:58:54 +01:00
Marco Procaccini 208d287177 Update Jenkinsfile.provisioning 2025-11-18 10:02:35 +01:00
Biagio Peccerillo 1c034a05cf 'save_user_message' implemented as callback
Also, removed "significance"-based filtering in social posts.
2025-11-17 10:58:43 +01:00
Biagio Peccerillo b6a053fbf8 Implemented the possibility to tune LLMs with params
Parameters such as temperature, top-p and top-k are managed at
configuration level, giving the possibility to tune the behaviour of the
various agents in the system.
2025-11-12 14:37:21 +01:00
Biagio Peccerillo 4ced56c986 CatalogueAgent first implementation 2025-11-12 14:37:21 +01:00
Biagio Peccerillo 18ea0e6646 Improved path detection logic
The path used by the Workspace Agent is now determined with a tool that
removes possible ambiguities by attempting resolution and falling back
to lower priority options.
For instance, if a given path seems relative, it resolves to the current
folder first and then, if nothing is found, it considers it as relative
to the root folder.
2025-11-12 14:37:21 +01:00
Biagio Peccerillo a08996334c Improved main agent description and purpose 2025-11-12 14:37:21 +01:00
Biagio Peccerillo 001954dd45 SocialAgent first implementation 2025-11-12 14:37:21 +01:00
Marco Procaccini b4099bc907 aggiunto tag per provisioning qdrant 2025-11-10 12:33:42 +01:00
Marco Procaccini bef28c5ae9 fix credentialid for provisioning 2025-11-10 12:23:34 +01:00
Marco Procaccini 11fdc554fb fix bug in jenkinsfile sintax 2025-11-10 12:12:14 +01:00
Marco Procaccini 29acd3982c fix bug in jenkinsfile sintax 2025-11-10 12:07:54 +01:00
Marco Procaccini e2978c16c4 fix bug in jenkinsfile sintax 2025-11-10 12:06:56 +01:00
Marco Procaccini 4f55708d27 aggiunto provisioning qdrant prod nel jenkinsfile 2025-11-10 11:56:41 +01:00
Marco Procaccini 86aecf1e0c Update Jenkinsfile.provisioning 2025-11-10 11:40:19 +01:00
Alfredo Oliviero e956f16427 docs e readme 2025-11-07 17:57:12 +01:00
Alfredo Oliviero 07a44b7b1d docker per prod e svil 2025-11-07 17:26:24 +01:00
Alfredo Oliviero 5b538dfa26 docs 2025-11-07 16:20:34 +01:00
Alfredo Oliviero 01eb0cc7e7 doc aggiornata 2025-11-07 16:08:09 +01:00
Alfredo Oliviero 35e03c07ae ckan_processor 2025-11-07 15:40:07 +01:00
Alfredo Oliviero b570ff6e30 d4science-lib is now a project dependency instead of a submodule 2025-11-07 14:56:32 +01:00
Alfredo Oliviero 6249bb37a7 d4science python library non è più un submodule ma una dipendenza del progetto 2025-11-07 14:42:32 +01:00
Marco Procaccini 5af88c94e3 adding credentials to provision the docker swarm 2025-11-07 13:07:00 +01:00
Marco Procaccini 45ca964477 fix bug dir jenkinsfile provisioning 2025-11-07 12:49:41 +01:00
Marco Procaccini cc4c0a7bde test jenkinsfile.provisioning 2025-11-07 12:43:07 +01:00
Marco Procaccini d5b42457b5 test jenkinsfile.provisioning 2025-11-07 12:36:56 +01:00
Marco Procaccini 7454348ac9 test jenkinsfile.provisioning 2025-11-07 12:29:39 +01:00
Marco Procaccini cb8ec04568 test jenkinsfile.provisioning 2025-11-07 12:16:40 +01:00
Marco Procaccini bedcde8479 jenkinsfile provisioning produzione 2025-11-07 11:45:58 +01:00
Biagio Peccerillo 37eabf4e4b Update d4science_lib submodule to latest commit 2025-11-05 16:21:04 +01:00
Marco Procaccini 25944857b8 Update Jenkinsfile 2025-11-03 14:15:24 +01:00
Marco Procaccini 0e479f2b64 Update Jenkinsfile 2025-11-03 14:00:39 +01:00
Marco Procaccini 3033a44e00 aggiornate credentials per d4science-agents harbor 2025-11-03 12:58:14 +01:00
Marco Procaccini ece32a1443 jenkinsfile agent name aggiornato 2025-11-03 12:42:00 +01:00
Biagio Peccerillo 7fae3e4dca Update d4science_lib to last commit where unnecessary submodules have been removed 2025-10-30 12:55:08 +01:00
Biagio Peccerillo 6255bffaa0 Update d4science_lib submodule to latest commit 2025-10-30 12:29:38 +01:00
Marco Procaccini d6ec1054c2 fix jenkins image name prod 2025-10-28 11:03:47 +01:00
Marco Procaccini 47979f1ebd aggiunto Jenkinsfile per creazione immagine 2025-10-28 10:55:49 +01:00
Alfredo Oliviero 7a9da85b51 specifiche in docs/specs 2025-10-23 11:17:40 +02:00
Alfredo Oliviero 68cf249ddf updated d4science_lib 2025-10-23 10:44:22 +02:00
Biagio Peccerillo aa2724618d Added TODO document to track progress and related tickets 2025-10-23 10:35:35 +02:00
Biagio Peccerillo 5233330092 Improved document analysis
- Added an 'utils' class with directly-invocable LLMs to simplify
  workflows
- Document analysis is now returned in a model to force a structure
- Other small refactors
2025-10-23 09:16:37 +02:00
Biagio Peccerillo 9eb3b4fcc5 Remove uv cache mounts and add .dockerignore to prevent unnecessary rebuilds 2025-10-20 14:48:19 +02:00
Biagio Peccerillo a8688c0dea Refactor to match the structured proposed in the paper
In the refactor, DaveAgent's sub-agents have been changed into
AgentTool, so the control is never transferred to them and DaveAgent
acts as the only orchestrator in the system.
2025-10-14 10:25:51 +02:00