{"id":25353921,"url":"https://github.com/aborroy/alfresco-ai-framework","last_synced_at":"2025-04-09T01:44:12.458Z","repository":{"id":260485571,"uuid":"881432374","full_name":"aborroy/alfresco-ai-framework","owner":"aborroy","description":"Sample application to apply Spring AI services to Alfresco Repository","archived":false,"fork":false,"pushed_at":"2024-11-20T11:59:30.000Z","size":820,"stargazers_count":10,"open_issues_count":1,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-14T19:56:02.732Z","etag":null,"topics":["alfresco","docker","docker-compose","genai","spring-ai"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aborroy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-31T15:03:07.000Z","updated_at":"2025-01-31T17:39:50.000Z","dependencies_parsed_at":"2024-11-15T11:22:46.171Z","dependency_job_id":"e3878871-f88d-4c36-b80e-0cfe97f0d72c","html_url":"https://github.com/aborroy/alfresco-ai-framework","commit_stats":null,"previous_names":["aborroy/alfresco-ai-framework"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aborroy%2Falfresco-ai-framework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aborroy%2Falfresco-ai-framework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aborroy%2Falfresco-ai-framework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aborroy%2Falfresco-ai-framework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aborroy","download_url":"https://codeload.github.com/aborroy/alfresco-ai-framework/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247958705,"owners_count":21024821,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alfresco","docker","docker-compose","genai","spring-ai"],"created_at":"2025-02-14T19:56:05.513Z","updated_at":"2025-04-09T01:44:12.437Z","avatar_url":"https://github.com/aborroy.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Alfresco AI Framework  \n\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)  \n\nThe **Alfresco AI Framework** is a robust framework designed to integrate AI capabilities into Alfresco, leveraging Java and [Spring AI](https://spring.io/projects/spring-ai). It provides a suite of tools and services to process, analyze, and enhance document content in Alfresco using AI and machine learning models.  \n\n\u003e **Note**: This project uses the Spring AI SNAPSHOT version, as a final RELEASE is not yet available.  \n\n## Key Features  \n\n- **AI-Driven Document Processing**: Enable Retrieval-Augmented Generation (RAG) chat functionality within the Alfresco repository.  \n- **Modular Architecture**: Built on a Spring Boot-based architecture, offering flexibility in deployment and scalability.  \n- **Seamless Integration**: Easily extend Alfresco Content Services with AI capabilities.  \n\n## Getting Started  \n\n### Prerequisites  \n\n- **Java 17**: Required for building and running the services  \n- **Maven**: For building the backend services  \n- **Angular 18**: For developing and running the UI  \n- **Node.js 18**: Required for building the UI  \n- **Docker**: For containerized deployment  \n\n### Architecture  \n\n![Architecture Diagram](docs/alfresco-ai-framework.png)  \n\n## Projects  \n\n- **[ai-rag-framework](ai-rag-framework)**:  \n  A REST API built on top of [Spring AI](https://spring.io/projects/spring-ai) for ingesting documents into a Generative AI (GenAI) model and providing a Retrieval-Augmented Generation (RAG) chat service.\n  - **Requirements**:  \n    - A local Large Language Model (LLM) powered by Ollama  \n    - Elasticsearch as the vector database  \n\n- **[alfresco-ai-sync](alfresco-ai-sync)**:  \n  A service built on top of [Alfresco Java SDK](https://github.com/Alfresco/alfresco-java-sdk) that retrieves documents from the Alfresco Repository and ingests them into the vector database through the `ai-rag-framework` API.  \n  - **Requirements**:\n    - A running Alfresco Repository  \n    - The `ai-rag-framework` service  \n\n- **[alfresco-ai-ui](alfresco-ai-ui)**:  \n  A user interface built on top of [Alfresco ADF](https://github.com/Alfresco/alfresco-ng2-components) for interacting with the RAG chat service provided by `ai-rag-framework`.  \n  - **Requirements**:  \n    - The `ai-rag-framework` service must be running\n\n- **[alfresco-docker](alfresco-docker)**:\n  Container-oriented Alfresco Community 23.3 deployment     \n\n## Laboratories\n\nThis series of tutorials will guide you through the key features of the project, including data ingestion, chat integration, and the overall operation of the system.\n\n### **Lab 1: Ingestion Pipeline**\n\n![Ingestion Pipeline Diagram](docs/alfresco-ai-framework-ingestion.png)\n\nIn this lab, you'll learn how to populate the **Vector Database** (Elasticsearch) with selected content from the **Knowledge Base** stored in Alfresco. This involves extracting vectors from content using the **Embedding** module `nomic-embed-text` via Ollama.\n\nBegin the lab by following [Lab 1: Ingestion Pipeline](docs/lab1-ingestion.md).\n\n### **Lab 2: Chat Functionality**\n\n![Chatting Diagram](docs/alfresco-ai-framework-chatting.png)\n\nThis lab focuses on enabling chat functionality with the **LLM** `qwen2.5` via Ollama, using Alfresco UI apps like Share and ADF. The process includes transforming the user's prompt into vectors using the **Embedding** module `nomic-embed-text` via Ollama, then searching for relevant content in the **Vector Database** (Elasticsearch). The retrieved text is used to provide context to the **LLM**, which helps generate more accurate responses.\n\nStart this lab by following [Lab 2: Chat Functionality](docs/lab2-chat.md).\n\n### **Lab 3: Running All Components Together**\n\n![Architecture Diagram](docs/alfresco-ai-framework.png)\n\nIn this lab, you'll integrate all the components (ingestion and chat functionality) with a live Alfresco Repository. The system will automatically update the **Vector Database** whenever there are changes in the repository, eliminating the need for manual intervention.\n\nYou can begin this lab by following [Lab 3: Running All Components Together](docs/lab3-all.md).\n\n## License  \n\nThis project is licensed under the Apache License 2.0. See the [LICENSE](LICENSE) file for details.  \n\n## Acknowledgments  \n\nSpecial thanks to the Alfresco and Hyland teams for their continuous support and contributions to open-source initiatives in the content management and AI domains.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faborroy%2Falfresco-ai-framework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faborroy%2Falfresco-ai-framework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faborroy%2Falfresco-ai-framework/lists"}