Repositori ini berisi beberapa Alfresco AI Assistants untuk membantu pengguna dan pelanggan mendapatkan informasi yang mereka perlukan atau melakukan tugas kompleks, cukup menyampaikan setiap permintaan melalui bahasa alami.
Untuk penjelasan "di balik layar" tentang apa yang terjadi dalam demo kami, lihat di belakang_the_scenes.md.
Repositori ini berisi aplikasi berikut:
Nama | File utama | Tulis nama | URL | Keterangan |
---|---|---|---|---|
Bot Dokumen Alfresco | alfresco_docs_bot.py | alfresco_docs_bot | http://localhost:8503 | Pelajari dokumentasi Alfresco dan ajukan pertanyaan. |
Asisten AI di luar ruangan | alfresco_ai_assistant.py | alfresco_ai_assistant | http://localhost:8504 | Berinteraksi dengan instans Layanan Konten Alfresco menggunakan permintaan bahasa alami. |
Basis datanya dapat dijelajahi di http://localhost:7474.
grafik TB
pengguna(Pengguna ?)
llm(LLM ?)
vectordb[(Database vektor)]
dokumen mentah{{Dokumentasi Mentah }}
pengguna --query-embedded-data--> vectordb
vectordb --data-relevan--> llm
llm --jawaban akhir--> pengguna
dokumen mentah --ekstraksi/pemotongan/penyematan---> vectordb
Akses di :
Fitur :
grafik BT
pengguna(Pengguna ?)
llm(LLM ?)
api
subgraf api[API ?]
penemuan-api
pencarian-api
simpul-api
akhir
alat subgraf[Alat ]
penemuan
mengubah
menyusun
akhir
pengguna --query--> llm
llm --choose--> alat
alat --memanggil--> api
api --umpan data--> llm
llm --jawaban akhir--> pengguna
Akses di :
Fitur :
Buat file .env
dari file templat lingkungan env.example
Variabel yang tersedia:
Nama Variabel | Nilai bawaan | Keterangan |
---|---|---|
ALFRESCO_URL | http://localhost:8080 | DIPERLUKAN - URL dasar ke instans ACS |
ALFRESCO_USERNAME | admin | DIPERLUKAN - Nama pengguna untuk instans ACS |
ALFRESCO_PASSWORD | admin | DIPERLUKAN - Kata sandi untuk instans ACS |
OLLAMA_BASE_URL | http://host.docker.internal:11434 | DIPERLUKAN - URL ke Ollama LLM API |
NEO4J_URI | neo4j://database:7687 | DIPERLUKAN - URL ke database Neo4j |
NEO4J_USERNAME | neo4j | DIPERLUKAN - Nama pengguna untuk database Neo4j |
NEO4J_PASSWORD | kata sandi | DIPERLUKAN - Kata sandi untuk database Neo4j |
LLM | llama3 | DIPERLUKAN - Dapat berupa tag model Ollama apa saja, atau gpt-4 atau gpt-3.5 atau claudev2 |
EMBEDDING_MODEL | kalimat_transformator | DIPERLUKAN - Dapat berupa kalimat_transformer, openai, aws, ollama atau google-genai-embedding-001 |
AWS_ACCESS_KEY_ID | DIPERLUKAN - Hanya jika LLM=claudev2 atau embedding_model=aws | |
AWS_SECRET_ACCESS_KEY | DIPERLUKAN - Hanya jika LLM=claudev2 atau embedding_model=aws | |
AWS_DEFAULT_REGION | DIPERLUKAN - Hanya jika LLM=claudev2 atau embedding_model=aws | |
OPENAI_API_KEY | DIPERLUKAN - Hanya jika LLM=gpt-4 atau LLM=gpt-3.5 atau embedding_model=openai | |
GOOGLE_API_KEY | DIPERLUKAN - Hanya diperlukan saat menggunakan GoogleGenai LLM atau menyematkan model google-genai-embedding-001 | |
LANGCHAIN_ENDPOINT | "https://api.smith.langchain.com" | OPSIONAL - URL ke Langchain Smith API |
LANGCHAIN_TRACING_V2 | PALSU | OPSIONAL - Aktifkan pelacakan Langchain v2 |
LANGCHAIN_PROJECT | OPSIONAL - Nama proyek Langchain | |
LANGCHAIN_API_KEY | OPSIONAL - Kunci API Langchain |
Peringatan
Aplikasi telah diuji hanya dengan Ollama, dan khususnya llama3, tidak ada jaminan dapat berfungsi dengan LLM lain.
Tidak perlu menginstal Ollama secara manual, ini akan berjalan dalam wadah sebagai bagian dari tumpukan ketika dijalankan dengan profil Linux: run docker compose --profile linux up
. Pastikan untuk mengatur OLLAMA_BASE_URL=http://llm:11434
di file .env
saat menggunakan wadah buruh pelabuhan Ollama.
Untuk menggunakan profil Linux-GPU: jalankan docker compose --profile linux-gpu up
. Ubah juga OLLAMA_BASE_URL=http://llm-gpu:11434
di file .env
.
Jika, karena alasan apa pun, Anda tidak dapat menjalankan wadah Ollama, Anda dapat menginstalnya dan menjalankannya secara lokal sebagai opsi alternatif.
Anda mungkin ingin mengurangi
num_ctx
menjadi3072
di commons.py jika Anda menggunakan GPU atau CPU murah.
Menjalankan Ollama secara lokal mungkin memberikan hasil yang lambat. Solusi yang mungkin dilakukan adalah menjalankannya pada instans EC2 berkemampuan GPU murah yang akan berkinerja lebih baik daripada GPU tingkat konsumen mana pun.
Untuk membuat klaster EKS yang didukung oleh satu instance g4dn.xlarge
:
eksctl create cluster --name hack-turing-titans --node-type=g4dn.xlarge --nodes 1
Instal ingress-nginx dan cert-manager untuk mengekspos ollama melalui https:
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
Buat catatan DNS secara manual yang menunjuk ke ingress-nginx ingress CNAME (ambil melalui kubectl get service -n ingress-nginx
).
Atur FQDN Anda dan terapkan sumber daya ClusterIssuer untuk mengaktifkan pembuatan sertifikat LetsEncrypt:
sed -i ' s/my-ollama.example.com/YOUR_FQDN/g ' k8s/letsencrypt-prod.yaml
kubectl apply -f k8s/letsencrypt-prod.yaml
Terakhir instal bagan Ollama:
helm install ollama ollama-helm/ollama
--namespace ollama
--create-namespace
--values ollama.yaml
Peringatan
Ada masalah kinerja yang memengaruhi aplikasi python di Docker Desktop rilis 4.24.x
Harap tingkatkan ke rilis terbaru sebelum menggunakan tumpukan ini.
Untuk memulai segalanya
docker compose up
Jika perubahan pada skrip pembangunan telah dilakukan, bangun kembali .
docker compose up --build
Untuk masuk ke mode tontonan (pembuatan ulang otomatis pada perubahan file). Pertama mulai semuanya, lalu di terminal baru:
docker compose watch
Shutdown Jika health check gagal atau container tidak berjalan seperti yang diharapkan, matikan sepenuhnya untuk memulai kembali.
docker compose down
Skrip yang mungkin diperlukan untuk menyiapkan data agar aplikasi dapat berjalan dengan benar, semuanya dapat ditemukan di bawah ./scripts.
transformator.py adalah skrip yang harus dijalankan pada klon lokal dari repositori docs-alfresco untuk membuat folder initial-load
dengan semua dokumentasi yang diharapkan untuk bot Alfresco Docs.
Proyek ini didasarkan pada docker/genai-stack dan merupakan hasil dari hackathon internal selama tiga hari di Hyland oleh tim Turing Titans .