SlideShare a Scribd company logo
1 of 28
Download to read offline
January 19, 2024
January 19, 2024
©2024 Hyland Software, Inc. and its affiliates. All rights reserved. All Hyland product names are registered or unregistered trademarks of Hyland Software, Inc. or its affiliates in the United States and other countries.
Alfresco Tech Talk Live #154
Enhancing Document-Centric Features with On-
Premise Generative AI for Alfresco Community
Angel Borroy
Developer Evangelist
Agenda
Content credentials
Generated with AI ∙ 19 January 2024 at 8:24 am
Docker GenAI Stack
Docker GenAI Stack
Components
ollama
• Local management of open source LLMs
• Catalog of preconfigured LLMs, such as Llama2 or Mistral
neo4j
• Graph and native vector search capabilities
• Ground LLMs for more precise GenAI predictions and outcomes
LangChain
• Communication between the LLM, your application, and the database
• Python framework for developing applications powered by LLMs
https://github.com/docker/genai-stack
Docker GenAI
Deployment
https://github.com/docker/genai-stack
pull-model ollama neo4j
streamlit
LangChain
REST API
GPU
2 GB
Size
Docker GenAI https://ollama.ai/library
LLM 3 Billion Parameters
phi MIT License
dolphin-phi MIT License
orca-mini cc-by-nc-sa-4.0
deepseek-coder DEEPSEEK LICENSE AGREEMENT
4 GB
RAM
Docker GenAI https://ollama.ai/library
LLM 7 Billion Parameters
llama2 LLAMA2 COMMUNITY LICENSE AGREEMENT
codellama LLAMA2 COMMUNITY LICENSE AGREEMENT
vicuna LLAMA2 COMMUNITY LICENSE AGREEMENT
mistral Apache License 2.0
mistral-openorca Apache License 2.0
llava Apache License 2.0
orca-mini cc-by-nc-sa-4.0
deepseek-coder DEEPSEEK LICENSE AGREEMENT
orca2 MICROSOFT RESEARCH LICENSE
falcon FALCON 180B TII LICENSE 1.0
4 GB
Size
8 GB
RAM
Docker GenAI https://ollama.ai/library
LLM 13 Billion Parameters
llama2 LLAMA2 COMMUNITY LICENSE AGREEMENT
codellama LLAMA2 COMMUNITY LICENSE AGREEMENT
vicuna LLAMA2 COMMUNITY LICENSE AGREEMENT
orca-mini cc-by-nc-sa-4.0
llava Apache License 2.0
orca2 MICROSOFT RESEARCH LICENSE
8 GB
Size
16 GB
RAM
Docker GenAI https://ollama.ai/library
LLM 13+ Billion Parameters
llama2 LLAMA2 COMMUNITY LICENSE AGREEMENT 70B
codellama LLAMA2 COMMUNITY LICENSE AGREEMENT 34B
mixtral Apache License 2.0 56B
deepseek-coder DEEPSEEK LICENSE AGREEMENT 33B
vicuna LLAMA2 COMMUNITY LICENSE AGREEMENT 33B
falcon FALCON 180B TII LICENSE 1.0 40B / 180B
40+ GB
Size
64+ GB
RAM
Docker GenAI
Creating a new REST API
streamlit
langchain.chains
langchain.vectorstores.neo4j_vector
fastapi
Alfresco Integration
Alfresco Integration
Deployment
https://github.com/aborroy/alfresco-genai
ALFRESCO GENAI STACK
Docker Network
model-repo model-share llm neo4j langchain
compose
compose
alfresco-ai-applier
alfresco-ai-listener
app
service
http://genai:8506/summary
http://genai:8506/classify
http://genai:8506/prompt
http://alfresco:8080
tcp://activemq:61616
Alfresco Integration
Alfresco Aspects
model-repo model-share
summarizable
summary text
tags text
llmSummary text
classifiable
terms text, multiple
classified
term text
llmClassify text
promptable
question text
answer text
llmPrompt text
Alfresco Integration
AI Applier
Run action on a Repository Folder
• Summary
• Classify
• List of terms required as parameter
alfresco-ai-applier
ALFRESCO GENAI STACK
compose
compose
alfresco-ai-applier
app http://genai:8506/summary
http://genai:8506/classify
http://alfresco:8080
$ java -jar alfresco-ai-applier-0.8.0.jar 
--applier.root.folder=/app:company_home/app:shared 
--applier.action=SUMMARY
$ java -jar alfresco-ai-applier-0.8.0.jar 
--applier.root.folder=/app:company_home/app:shared 
--applier.action.classify.term.list=English,Spanish 
--applier.action=CLASSIFY
Alfresco Integration
AI Listener
Listen to ActiveMQ for aspect settings
• Summary
• Classification
• Prompting
alfresco-ai-listener
ALFRESCO GENAI STACK
compose
compose
alfresco-ai-listener
service http://genai:8506/summary
http://genai:8506/classify
http://genai:8506/prompt
http://alfresco:8080
tcp://activemq:61616
alfresco-ai-listener:
image: alfresco-ai-listener
environment:
CONTENT_SERVICE_URL: "http://alfresco:8080"
SPRING_ACTIVEMQ_BROKERURL: "tcp://activemq:61616"
GENAI_URL: "http://genai:8506"
GENAI STACK
Alfresco Integration
GenAI App
Python application that provides REST API endpoints
Document Loader
Split document into
smaller chunks
LLM Embeddings
Store in VectorDB
Embed and save
chunks
Create QA Chain
With the ability to
lookup Vector DB
LLM
LLM=mistral
SUMMARY_LANGUAGE=English
SUMMARY_SIZE=120
TAGS_NUMBER=3
GENAI STACK
Alfresco Integration
GenAI App
curl --location 'http://localhost:8506/summary' --form 'file=@"./file.pdf"'
{
"summary": " The text discusses...",
"tags": " Golang, Merkle, Difficulty",
"model": "mistral"
}
SUMMARY Write a short summary of the text in 120 words only in ENGLISH
TAGS Provide 3 words to categorize the document in language ENGLISH in a single line.
Use only language ENGLISH for these 3 words in the answer.
Don't add any explanation for the words in the answer.
Don't add any note after the list of words in the answer.
Don't use bullets or numbers to list the words in the answer.
Don't add in the answer the translation of the words in a different language after the list of words.
Give the answer exactly as a list of 3 words in language ENGLISH separated with comma and without ending dot.
GENAI STACK
Alfresco Integration
GenAI App
curl --location 
'http://localhost:8506/classify?termList="Japanese,Spanish,Vietnamese"' 
--form 'file=./file.pdf"'
{
"term": " English",
"model": "mistral"
}
TERM Pick one of the following list of categories: Japanese, Spanish, Vietnamese.
Write the answer only in ENGLISH language.
Don't add any explanation for the choice in the answer.
Don't add any note after the word in the answer.
Don't add any space before the word in the answer.
Don't add in the answer the translation of the word in a different language after chosen word.
Give the answer exactly as a single word from the list.
GENAI STACK
Alfresco Integration
GenAI App
curl --location 'http://localhost:8506/prompt?prompt="What is this text about?”' 
--form 'file=./file.pdf"'
{
"answer": " Yes, it is difficult to find childcare in Tokyo.",
"model": "mistral"
}
PROMPT What is this text about?
Write the answer only in ENGLISH language.
Don't add any translation to the answer.
Document Features
Document Features
Existing Content
alfresco-ai-applier
REST API REST API
Scan a SOURCE FOLDER
Apache License 2.0
https://github.com/aborroy/alfresco-genai
summarizable
summary text
tags text
llmSummary text
classified
term text
llmClassify text
Demo Time
c5a.8xlarge
32 vCPUs
64 GiB RAM
Document Features
New Content
alfresco-ai-listener REST API
ACTIVEMQ
Listen to ASPECT setting
Apache License 2.0
https://github.com/aborroy/alfresco-genai
document.move(
document.parent.childByNamePath(
document.properties["genai:term"]
)
);
classifiable
terms text, multiple
summarizable
summary text
tags text
llmSummary text
promptable
question text
answer text
llmPrompt text
classified
term text
llmClassify text
Demo Time
c5a.8xlarge
32 vCPUs
64 GiB RAM
What Else?
Find your way
Docker AI/ML Hack-a-thon
• Readme AI
• Techdocs
• Docker Image Analyzer
• Docker Log Sentiment Analyzer
• GitChats AI
ollama alternatives
• https://gpt4all.io/index.html
• https://www.secondstate.io/run-llm
• https://huggingface.co/docs/hub/spaces-sdks-docker-first-demo
Thanks!

More Related Content

Similar to Enhancing Document-Centric Features with On-Premise Generative AI for Alfresco Community

Railo Presentation Railo 3.1
Railo Presentation Railo 3.1Railo Presentation Railo 3.1
Railo Presentation Railo 3.1
Rhinofly
 
Before & After Docker Init
Before & After Docker InitBefore & After Docker Init
Before & After Docker Init
Angel Borroy López
 

Similar to Enhancing Document-Centric Features with On-Premise Generative AI for Alfresco Community (20)

Don't screw it up! How to build durable API
Don't screw it up! How to build durable API Don't screw it up! How to build durable API
Don't screw it up! How to build durable API
 
Xenit diary dev con 2018
Xenit diary dev con 2018Xenit diary dev con 2018
Xenit diary dev con 2018
 
Using Generative AI and Content Service Platforms together
Using Generative AI and Content Service Platforms togetherUsing Generative AI and Content Service Platforms together
Using Generative AI and Content Service Platforms together
 
Rapid Prototyping Chatter with a PHP/Hack Canvas App on Heroku
Rapid Prototyping Chatter with a PHP/Hack Canvas App on HerokuRapid Prototyping Chatter with a PHP/Hack Canvas App on Heroku
Rapid Prototyping Chatter with a PHP/Hack Canvas App on Heroku
 
Phalcon - Giant Killer
Phalcon - Giant KillerPhalcon - Giant Killer
Phalcon - Giant Killer
 
Railo Presentation Railo 3.1
Railo Presentation Railo 3.1Railo Presentation Railo 3.1
Railo Presentation Railo 3.1
 
OpenFaaS JeffConf 2017 - Milan
OpenFaaS JeffConf 2017 - MilanOpenFaaS JeffConf 2017 - Milan
OpenFaaS JeffConf 2017 - Milan
 
Learning Your Way Around Alfresco [A Developer's Intro, Part 1. by Jeff Potts]
Learning Your Way Around Alfresco [A Developer's Intro, Part 1. by Jeff Potts]Learning Your Way Around Alfresco [A Developer's Intro, Part 1. by Jeff Potts]
Learning Your Way Around Alfresco [A Developer's Intro, Part 1. by Jeff Potts]
 
Mashups MAX 360|MAX 2008 Unconference
Mashups MAX 360|MAX 2008 UnconferenceMashups MAX 360|MAX 2008 Unconference
Mashups MAX 360|MAX 2008 Unconference
 
Unleash your Symfony projects with eZ Platform
Unleash your Symfony projects with eZ PlatformUnleash your Symfony projects with eZ Platform
Unleash your Symfony projects with eZ Platform
 
Flex Framework Presentation PPT
Flex Framework Presentation PPTFlex Framework Presentation PPT
Flex Framework Presentation PPT
 
Leveraging BlazeDS, Java, and Flex: Dynamic Data Transfer
Leveraging BlazeDS, Java, and Flex: Dynamic Data TransferLeveraging BlazeDS, Java, and Flex: Dynamic Data Transfer
Leveraging BlazeDS, Java, and Flex: Dynamic Data Transfer
 
Before & After Docker Init
Before & After Docker InitBefore & After Docker Init
Before & After Docker Init
 
Laravel 4 package development
Laravel 4 package developmentLaravel 4 package development
Laravel 4 package development
 
Adobe Flex Resources 6439
Adobe Flex Resources 6439Adobe Flex Resources 6439
Adobe Flex Resources 6439
 
Adobe Flex Resources
Adobe Flex ResourcesAdobe Flex Resources
Adobe Flex Resources
 
SkillsMatter - In-the-Brain session - What's new in ActionScript 3.0
SkillsMatter - In-the-Brain session - What's new in ActionScript 3.0SkillsMatter - In-the-Brain session - What's new in ActionScript 3.0
SkillsMatter - In-the-Brain session - What's new in ActionScript 3.0
 
Another Test
Another TestAnother Test
Another Test
 
Android maven Road to flutter| Mavenizing Flutter for web
Android maven Road to flutter| Mavenizing Flutter for webAndroid maven Road to flutter| Mavenizing Flutter for web
Android maven Road to flutter| Mavenizing Flutter for web
 
Alfresco Architecture
Alfresco ArchitectureAlfresco Architecture
Alfresco Architecture
 

More from Angel Borroy López

Alfresco search services: Now and Then
Alfresco search services: Now and ThenAlfresco search services: Now and Then
Alfresco search services: Now and Then
Angel Borroy López
 

More from Angel Borroy López (20)

Transitioning from Customized Solr to Out-of-the-Box OpenSearch
Transitioning from Customized Solr to Out-of-the-Box OpenSearchTransitioning from Customized Solr to Out-of-the-Box OpenSearch
Transitioning from Customized Solr to Out-of-the-Box OpenSearch
 
Alfresco integration with OpenSearch - OpenSearchCon 2024 Europe
Alfresco integration with OpenSearch - OpenSearchCon 2024 EuropeAlfresco integration with OpenSearch - OpenSearchCon 2024 Europe
Alfresco integration with OpenSearch - OpenSearchCon 2024 Europe
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1
 
Docker Init with Templates for Alfresco
Docker Init with Templates for AlfrescoDocker Init with Templates for Alfresco
Docker Init with Templates for Alfresco
 
Alfresco Transform Services 4.0.0
Alfresco Transform Services 4.0.0Alfresco Transform Services 4.0.0
Alfresco Transform Services 4.0.0
 
How to migrate from Alfresco Search Services to Alfresco SearchEnterprise
How to migrate from Alfresco Search Services to Alfresco SearchEnterpriseHow to migrate from Alfresco Search Services to Alfresco SearchEnterprise
How to migrate from Alfresco Search Services to Alfresco SearchEnterprise
 
Using Podman with Alfresco
Using Podman with AlfrescoUsing Podman with Alfresco
Using Podman with Alfresco
 
CSP: Evolución de servicios de código abierto en un mundo Cloud Native
CSP: Evolución de servicios de código abierto en un mundo Cloud NativeCSP: Evolución de servicios de código abierto en un mundo Cloud Native
CSP: Evolución de servicios de código abierto en un mundo Cloud Native
 
Alfresco Embedded Activiti Engine
Alfresco Embedded Activiti EngineAlfresco Embedded Activiti Engine
Alfresco Embedded Activiti Engine
 
Alfresco Transform Core 3.0.0
Alfresco Transform Core 3.0.0Alfresco Transform Core 3.0.0
Alfresco Transform Core 3.0.0
 
Collaborative Editing Tools for Alfresco
Collaborative Editing Tools for AlfrescoCollaborative Editing Tools for Alfresco
Collaborative Editing Tools for Alfresco
 
Desarrollando una Extensión para Docker
Desarrollando una Extensión para DockerDesarrollando una Extensión para Docker
Desarrollando una Extensión para Docker
 
DockerCon 2022 Spanish Room-ONBOARDING.pdf
DockerCon 2022 Spanish Room-ONBOARDING.pdfDockerCon 2022 Spanish Room-ONBOARDING.pdf
DockerCon 2022 Spanish Room-ONBOARDING.pdf
 
Introduction to AWS
Introduction to AWSIntroduction to AWS
Introduction to AWS
 
Alfresco Certificates
Alfresco Certificates Alfresco Certificates
Alfresco Certificates
 
Discovering the 2 in Alfresco Search Services 2.0
Discovering the 2 in Alfresco Search Services 2.0Discovering the 2 in Alfresco Search Services 2.0
Discovering the 2 in Alfresco Search Services 2.0
 
(Re)Indexing Large Repositories in Alfresco
(Re)Indexing Large Repositories in Alfresco(Re)Indexing Large Repositories in Alfresco
(Re)Indexing Large Repositories in Alfresco
 
A Practical Introduction to Apache Solr
A Practical Introduction to Apache SolrA Practical Introduction to Apache Solr
A Practical Introduction to Apache Solr
 
Alfresco search services: Now and Then
Alfresco search services: Now and ThenAlfresco search services: Now and Then
Alfresco search services: Now and Then
 

Recently uploaded

Recently uploaded (20)

Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Era
 
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
 
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
 
WSO2Con2024 - Software Delivery in Hybrid Environments
WSO2Con2024 - Software Delivery in Hybrid EnvironmentsWSO2Con2024 - Software Delivery in Hybrid Environments
WSO2Con2024 - Software Delivery in Hybrid Environments
 
The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)
 
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
 
BusinessGPT - Security and Governance for Generative AI
BusinessGPT  - Security and Governance for Generative AIBusinessGPT  - Security and Governance for Generative AI
BusinessGPT - Security and Governance for Generative AI
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
Effective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeConEffective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeCon
 
WSO2Con2024 - Organization Management: The Revolution in B2B CIAM
WSO2Con2024 - Organization Management: The Revolution in B2B CIAMWSO2Con2024 - Organization Management: The Revolution in B2B CIAM
WSO2Con2024 - Organization Management: The Revolution in B2B CIAM
 
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
Novo Nordisk: When Knowledge Graphs meet LLMs
Novo Nordisk: When Knowledge Graphs meet LLMsNovo Nordisk: When Knowledge Graphs meet LLMs
Novo Nordisk: When Knowledge Graphs meet LLMs
 

Enhancing Document-Centric Features with On-Premise Generative AI for Alfresco Community

  • 1.
  • 2. January 19, 2024 January 19, 2024 ©2024 Hyland Software, Inc. and its affiliates. All rights reserved. All Hyland product names are registered or unregistered trademarks of Hyland Software, Inc. or its affiliates in the United States and other countries. Alfresco Tech Talk Live #154 Enhancing Document-Centric Features with On- Premise Generative AI for Alfresco Community Angel Borroy Developer Evangelist
  • 3. Agenda Content credentials Generated with AI ∙ 19 January 2024 at 8:24 am
  • 5. Docker GenAI Stack Components ollama • Local management of open source LLMs • Catalog of preconfigured LLMs, such as Llama2 or Mistral neo4j • Graph and native vector search capabilities • Ground LLMs for more precise GenAI predictions and outcomes LangChain • Communication between the LLM, your application, and the database • Python framework for developing applications powered by LLMs https://github.com/docker/genai-stack
  • 7. 2 GB Size Docker GenAI https://ollama.ai/library LLM 3 Billion Parameters phi MIT License dolphin-phi MIT License orca-mini cc-by-nc-sa-4.0 deepseek-coder DEEPSEEK LICENSE AGREEMENT 4 GB RAM
  • 8. Docker GenAI https://ollama.ai/library LLM 7 Billion Parameters llama2 LLAMA2 COMMUNITY LICENSE AGREEMENT codellama LLAMA2 COMMUNITY LICENSE AGREEMENT vicuna LLAMA2 COMMUNITY LICENSE AGREEMENT mistral Apache License 2.0 mistral-openorca Apache License 2.0 llava Apache License 2.0 orca-mini cc-by-nc-sa-4.0 deepseek-coder DEEPSEEK LICENSE AGREEMENT orca2 MICROSOFT RESEARCH LICENSE falcon FALCON 180B TII LICENSE 1.0 4 GB Size 8 GB RAM
  • 9. Docker GenAI https://ollama.ai/library LLM 13 Billion Parameters llama2 LLAMA2 COMMUNITY LICENSE AGREEMENT codellama LLAMA2 COMMUNITY LICENSE AGREEMENT vicuna LLAMA2 COMMUNITY LICENSE AGREEMENT orca-mini cc-by-nc-sa-4.0 llava Apache License 2.0 orca2 MICROSOFT RESEARCH LICENSE 8 GB Size 16 GB RAM
  • 10. Docker GenAI https://ollama.ai/library LLM 13+ Billion Parameters llama2 LLAMA2 COMMUNITY LICENSE AGREEMENT 70B codellama LLAMA2 COMMUNITY LICENSE AGREEMENT 34B mixtral Apache License 2.0 56B deepseek-coder DEEPSEEK LICENSE AGREEMENT 33B vicuna LLAMA2 COMMUNITY LICENSE AGREEMENT 33B falcon FALCON 180B TII LICENSE 1.0 40B / 180B 40+ GB Size 64+ GB RAM
  • 11. Docker GenAI Creating a new REST API streamlit langchain.chains langchain.vectorstores.neo4j_vector fastapi
  • 13. Alfresco Integration Deployment https://github.com/aborroy/alfresco-genai ALFRESCO GENAI STACK Docker Network model-repo model-share llm neo4j langchain compose compose alfresco-ai-applier alfresco-ai-listener app service http://genai:8506/summary http://genai:8506/classify http://genai:8506/prompt http://alfresco:8080 tcp://activemq:61616
  • 14. Alfresco Integration Alfresco Aspects model-repo model-share summarizable summary text tags text llmSummary text classifiable terms text, multiple classified term text llmClassify text promptable question text answer text llmPrompt text
  • 15. Alfresco Integration AI Applier Run action on a Repository Folder • Summary • Classify • List of terms required as parameter alfresco-ai-applier ALFRESCO GENAI STACK compose compose alfresco-ai-applier app http://genai:8506/summary http://genai:8506/classify http://alfresco:8080 $ java -jar alfresco-ai-applier-0.8.0.jar --applier.root.folder=/app:company_home/app:shared --applier.action=SUMMARY $ java -jar alfresco-ai-applier-0.8.0.jar --applier.root.folder=/app:company_home/app:shared --applier.action.classify.term.list=English,Spanish --applier.action=CLASSIFY
  • 16. Alfresco Integration AI Listener Listen to ActiveMQ for aspect settings • Summary • Classification • Prompting alfresco-ai-listener ALFRESCO GENAI STACK compose compose alfresco-ai-listener service http://genai:8506/summary http://genai:8506/classify http://genai:8506/prompt http://alfresco:8080 tcp://activemq:61616 alfresco-ai-listener: image: alfresco-ai-listener environment: CONTENT_SERVICE_URL: "http://alfresco:8080" SPRING_ACTIVEMQ_BROKERURL: "tcp://activemq:61616" GENAI_URL: "http://genai:8506"
  • 17. GENAI STACK Alfresco Integration GenAI App Python application that provides REST API endpoints Document Loader Split document into smaller chunks LLM Embeddings Store in VectorDB Embed and save chunks Create QA Chain With the ability to lookup Vector DB LLM LLM=mistral SUMMARY_LANGUAGE=English SUMMARY_SIZE=120 TAGS_NUMBER=3
  • 18. GENAI STACK Alfresco Integration GenAI App curl --location 'http://localhost:8506/summary' --form 'file=@"./file.pdf"' { "summary": " The text discusses...", "tags": " Golang, Merkle, Difficulty", "model": "mistral" } SUMMARY Write a short summary of the text in 120 words only in ENGLISH TAGS Provide 3 words to categorize the document in language ENGLISH in a single line. Use only language ENGLISH for these 3 words in the answer. Don't add any explanation for the words in the answer. Don't add any note after the list of words in the answer. Don't use bullets or numbers to list the words in the answer. Don't add in the answer the translation of the words in a different language after the list of words. Give the answer exactly as a list of 3 words in language ENGLISH separated with comma and without ending dot.
  • 19. GENAI STACK Alfresco Integration GenAI App curl --location 'http://localhost:8506/classify?termList="Japanese,Spanish,Vietnamese"' --form 'file=./file.pdf"' { "term": " English", "model": "mistral" } TERM Pick one of the following list of categories: Japanese, Spanish, Vietnamese. Write the answer only in ENGLISH language. Don't add any explanation for the choice in the answer. Don't add any note after the word in the answer. Don't add any space before the word in the answer. Don't add in the answer the translation of the word in a different language after chosen word. Give the answer exactly as a single word from the list.
  • 20. GENAI STACK Alfresco Integration GenAI App curl --location 'http://localhost:8506/prompt?prompt="What is this text about?”' --form 'file=./file.pdf"' { "answer": " Yes, it is difficult to find childcare in Tokyo.", "model": "mistral" } PROMPT What is this text about? Write the answer only in ENGLISH language. Don't add any translation to the answer.
  • 22. Document Features Existing Content alfresco-ai-applier REST API REST API Scan a SOURCE FOLDER Apache License 2.0 https://github.com/aborroy/alfresco-genai summarizable summary text tags text llmSummary text classified term text llmClassify text
  • 24. Document Features New Content alfresco-ai-listener REST API ACTIVEMQ Listen to ASPECT setting Apache License 2.0 https://github.com/aborroy/alfresco-genai document.move( document.parent.childByNamePath( document.properties["genai:term"] ) ); classifiable terms text, multiple summarizable summary text tags text llmSummary text promptable question text answer text llmPrompt text classified term text llmClassify text
  • 27. Find your way Docker AI/ML Hack-a-thon • Readme AI • Techdocs • Docker Image Analyzer • Docker Log Sentiment Analyzer • GitChats AI ollama alternatives • https://gpt4all.io/index.html • https://www.secondstate.io/run-llm • https://huggingface.co/docs/hub/spaces-sdks-docker-first-demo