Dieses Repository enthält mehrere AI-Assistenten von Alfresco, die Benutzern und Kunden dabei helfen, die benötigten Informationen zu erhalten oder komplexe Aufgaben auszuführen, indem sie jede Anfrage einfach in natürlicher Sprache übermitteln.
Eine Erklärung „hinter den Kulissen“ zu dem, was in unserer Demo passiert, finden Sie unter behind_the_scenes.md.
Dieses Repository enthält die folgenden Anwendungen:
Name | Hauptdateien | Namen verfassen | URLs | Beschreibung |
---|---|---|---|---|
Alfresco Docs Bot | alfresco_docs_bot.py | alfresco_docs_bot | http://localhost:8503 | Nehmen Sie die Alfresco-Dokumentation auf und stellen Sie ihr Fragen. |
Alfresco KI-Assistent | alfresco_ai_assistant.py | alfresco_ai_assistant | http://localhost:8504 | Interagieren Sie mit einer Alfresco Content Services-Instanz über Anfragen in natürlicher Sprache. |
Die Datenbank kann unter http://localhost:7474 durchsucht werden.
Diagramm TB
Benutzer(Benutzer ?)
llm(LLM ?)
vectordb[(Vektordatenbank)]
raw-docs{{Rohdokumentation }}
Benutzer --query-embedded-data--> vectordb
vectordb --relevant-data--> llm
llm --endgültige Antwort--> Benutzer
raw-docs --extraction/chunking/embedding---> vectordb
Zugang unter :
Merkmale :
Diagramm BT
Benutzer(Benutzer ?)
llm(LLM ?)
API
Untergraph API[API ?]
Discovery-API
Such-API
Knoten-API
Ende
Subgraph-Tools[Tools]
Entdeckung
verwandeln
redigieren
Ende
Benutzer --query--> llm
llm --choose--> Tools
tools --invoke--> api
api --feed data--> llm
llm --endgültige Antwort--> Benutzer
Zugang unter :
Merkmale :
Erstellen Sie eine .env
Datei aus der Umgebungsvorlagendatei env.example
Verfügbare Variablen:
Variablenname | Standardwert | Beschreibung |
---|---|---|
ALFRESCO_URL | http://localhost:8080 | ERFORDERLICH – Basis-URL zur ACS-Instanz |
ALFRESCO_USERNAME | Administrator | ERFORDERLICH – Benutzername für die ACS-Instanz |
ALFRESCO_PASSWORD | Administrator | ERFORDERLICH – Passwort für die ACS-Instanz |
OLLAMA_BASE_URL | http://host.docker.internal:11434 | ERFORDERLICH – URL zur Ollama LLM API |
NEO4J_URI | neo4j://database:7687 | ERFORDERLICH – URL zur Neo4j-Datenbank |
NEO4J_USERNAME | neo4j | ERFORDERLICH – Benutzername für die Neo4j-Datenbank |
NEO4J_PASSWORD | Passwort | ERFORDERLICH – Passwort für die Neo4j-Datenbank |
LLM | Lama3 | ERFORDERLICH – Kann ein beliebiges Ollama-Modell-Tag oder gpt-4 oder gpt-3.5 oder claudev2 sein |
EMBEDDING_MODEL | Satz_Transformer | ERFORDERLICH – Kann sent_transformer, openai, aws, ollama oder google-genai-embedding-001 sein |
AWS_ACCESS_KEY_ID | ERFORDERLICH – Nur wenn LLM=claudev2 oder embedding_model=aws | |
AWS_SECRET_ACCESS_KEY | ERFORDERLICH – Nur wenn LLM=claudev2 oder embedding_model=aws | |
AWS_DEFAULT_REGION | ERFORDERLICH – Nur wenn LLM=claudev2 oder embedding_model=aws | |
OPENAI_API_KEY | ERFORDERLICH – Nur wenn LLM=gpt-4 oder LLM=gpt-3.5 oder embedding_model=openai | |
GOOGLE_API_KEY | ERFORDERLICH – Nur erforderlich, wenn GoogleGenai LLM oder das Einbettungsmodell google-genai-embedding-001 verwendet wird | |
LANGCHAIN_ENDPOINT | „https://api.smith.langchain.com“ | OPTIONAL – URL zur Langchain Smith API |
LANGCHAIN_TRACING_V2 | FALSCH | OPTIONAL – Aktivieren Sie Langchain-Tracing v2 |
LANGCHAIN_PROJECT | OPTIONAL – Langchain-Projektname | |
LANGCHAIN_API_KEY | OPTIONAL – Langchain-API-Schlüssel |
Warnung
Die Anwendungen wurden nur mit Ollama und insbesondere mit llama3 getestet. Es kann nicht garantiert werden, dass sie mit anderen LLMs funktionieren.
Ollama muss nicht manuell installiert werden, es wird in einem Container als Teil des Stapels ausgeführt, wenn es mit dem Linux-Profil ausgeführt wird: Führen Sie docker compose --profile linux up
aus. Stellen Sie sicher, dass OLLAMA_BASE_URL=http://llm:11434
in der .env
Datei festgelegt ist, wenn Sie den Ollama-Docker-Container verwenden.
Um das Linux-GPU-Profil zu verwenden: Führen Sie docker compose --profile linux-gpu up
aus. Ändern Sie außerdem OLLAMA_BASE_URL=http://llm-gpu:11434
in der .env
Datei.
Wenn Sie den Ollama-Container aus irgendeinem Grund nicht ausführen können, können Sie ihn alternativ installieren und lokal ausführen.
Möglicherweise möchten Sie
num_ctx
in commons.py auf3072
reduzieren, wenn Sie eine billige GPU oder CPU verwenden.
Die lokale Ausführung von Ollama kann zu langsamen Ergebnissen führen. Eine mögliche Lösung besteht darin, es auf einer günstigen GPU-fähigen EC2-Instanz auszuführen, die eine bessere Leistung als jede Consumer-GPU bietet.
So erstellen Sie einen EKS-Cluster, der von einer einzelnen g4dn.xlarge
-Instanz unterstützt wird:
eksctl create cluster --name hack-turing-titans --node-type=g4dn.xlarge --nodes 1
Installieren Sie ingress-nginx und cert-manager, um Ollama über https verfügbar zu machen:
helm upgrade --install ingress-nginx ingress-nginx
--repo https://kubernetes.github.io/ingress-nginx
--namespace ingress-nginx --create-namespace
helm install
cert-manager jetstack/cert-manager
--namespace cert-manager
--create-namespace
--set installCRDs=true
Erstellen Sie manuell einen DNS-Eintrag, der auf den Ingress-CNAME ingress-nginx verweist (rufen Sie ihn über kubectl get service -n ingress-nginx
ab).
Legen Sie Ihren FQDN fest und wenden Sie die ClusterIssuer-Ressource an, um die Generierung von LetsEncrypt-Zertifikaten zu aktivieren:
sed -i ' s/my-ollama.example.com/YOUR_FQDN/g ' k8s/letsencrypt-prod.yaml
kubectl apply -f k8s/letsencrypt-prod.yaml
Schließlich installieren Sie das Ollama-Diagramm:
helm install ollama ollama-helm/ollama
--namespace ollama
--create-namespace
--values ollama.yaml
Warnung
Es gibt ein Leistungsproblem, das sich auf Python-Anwendungen in den 4.24.x
Versionen von Docker Desktop auswirkt. Bitte aktualisieren Sie auf die neueste Version, bevor Sie diesen Stack verwenden.
Um alles zu beginnen
docker compose up
Wenn Änderungen an Build-Skripten vorgenommen wurden, erstellen Sie neu .
docker compose up --build
Um in den Überwachungsmodus zu wechseln (automatischer Neuaufbau bei Dateiänderungen). Zuerst alles starten, dann im neuen Terminal:
docker compose watch
Herunterfahren Wenn die Integritätsprüfung fehlschlägt oder Container nicht wie erwartet starten, fahren Sie sie vollständig herunter, um sie erneut zu starten.
docker compose down
Skripte, die möglicherweise erforderlich sind, um Daten für die ordnungsgemäße Ausführung der Anwendungen aufzubereiten, finden Sie alle unter ./scripts.
Transformer.py ist ein Skript, das für einen lokalen Klon des docs-alfresco-Repositorys ausgeführt werden sollte, um den initial-load
-Ordner mit der gesamten erwarteten Dokumentation für den Alfresco Docs-Bot zu erstellen.
Dieses Projekt basiert auf Docker/Genai-Stack und ist das Ergebnis eines dreitägigen internen Hackathons in Hyland durch das Turing Titans -Team.