Этот репозиторий содержит несколько AI-помощников Alfresco, которые помогают пользователям и клиентам получать необходимую информацию или выполнять сложные задачи, просто передавая каждый запрос на естественном языке.
Для «закулисного» объяснения того, что происходит в нашей демонстрации, см. back_the_scenes.md.
Этот репозиторий содержит следующие приложения:
Имя | Основные файлы | Введите имя | URL-адреса | Описание |
---|---|---|---|---|
Бот Alfresco Документы | alfresco_docs_bot.py | alfresco_docs_bot | http://локальный хост:8503 | Просматривайте документацию Alfresco и задавайте ей вопросы. |
AI-помощник Alfresco | alfresco_ai_assistant.py | alfresco_ai_assistant | http://локальный хост:8504 | Взаимодействуйте с экземпляром Alfresco Content Services, используя запросы на естественном языке. |
Базу данных можно просмотреть по адресу http://localhost:7474.
график ТБ
пользователь (Пользователь?)
лм(Ллм ?)
вектордб[(База данных векторов)]
raw-docs{{Необработанная документация }}
пользователь --query-embedded-data--> векторная база данных
вектордб --релевантные данные--> llm
llm --окончательный ответ --> пользователь
raw-docs --extraction/chunking/embedding---> VectorDB
Доступ по адресу :
Функции :
график БТ
пользователь (Пользователь?)
лм(Ллм ?)
API
подграф API[API ?]
открытие-API
поиск-API
узел-API
конец
инструменты подграфа[Инструменты]
открытие
трансформировать
редактировать
конец
пользователь --query--> llm
llm --choose--> инструменты
инструменты --invoke--> API
API --feed data--> llm
llm --окончательный ответ --> пользователь
Доступ по адресу :
Функции :
Создайте файл .env
из файла шаблона среды env.example
Доступные переменные:
Имя переменной | Значение по умолчанию | Описание |
---|---|---|
АЛЬФРЕСКО_URL | http://локальный хост:8080 | ОБЯЗАТЕЛЬНО – базовый URL-адрес экземпляра ACS. |
АЛЬФРЕСКО_ИМЯ ПОЛЬЗОВАТЕЛЯ | администратор | ОБЯЗАТЕЛЬНО — имя пользователя для экземпляра ACS. |
АЛЬФРЕСКО_ПАРОЛЬ | администратор | ОБЯЗАТЕЛЬНО — пароль для экземпляра ACS. |
OLLAMA_BASE_URL | http://host.docker.internal:11434 | ОБЯЗАТЕЛЬНО – URL-адрес API Ollama LLM |
NEO4J_URI | neo4j://база данных:7687 | ОБЯЗАТЕЛЬНО – URL-адрес базы данных Neo4j. |
NEO4J_USERNAME | neo4j | ОБЯЗАТЕЛЬНО — имя пользователя для базы данных Neo4j. |
NEO4J_ПАРОЛЬ | пароль | ОБЯЗАТЕЛЬНО – пароль для базы данных Neo4j. |
Магистр права | лама3 | ОБЯЗАТЕЛЬНО – может быть любой тег модели Ollama, gpt-4, gpt-3.5 или claudev2. |
ВНЕДРЕНИЕ_МОДЕЛЬ | предложение_трансформер | ОБЯЗАТЕЛЬНО – может быть приговором_transformer, openai, aws, ollama или google-genai-embedding-001. |
AWS_ACCESS_KEY_ID | ОБЯЗАТЕЛЬНО – только если LLM=claudev2 или embedding_model=aws. | |
AWS_SECRET_ACCESS_KEY | ОБЯЗАТЕЛЬНО – только если LLM=claudev2 или embedding_model=aws. | |
AWS_DEFAULT_REGION | ОБЯЗАТЕЛЬНО – только если LLM=claudev2 или embedding_model=aws. | |
OPENAI_API_KEY | ОБЯЗАТЕЛЬНО – только если LLM=gpt-4, LLM=gpt-3.5 или embedding_model=openai. | |
GOOGLE_API_KEY | ОБЯЗАТЕЛЬНО – требуется только при использовании GoogleGenai LLM или модели внедрения google-genai-embedding-001. | |
LANGCHAIN_ENDPOINT | "https://api.smith.langchain.com" | НЕОБЯЗАТЕЛЬНО — URL-адрес API Langchain Smith. |
LANGCHAIN_TRACING_V2 | ЛОЖЬ | НЕОБЯЗАТЕЛЬНО — включить трассировку Langchain v2. |
ЛАНГЧЕЙН_ПРОЕКТ | НЕОБЯЗАТЕЛЬНО — название проекта Langchain. | |
LANGCHAIN_API_KEY | ДОПОЛНИТЕЛЬНО – ключ API Langchain. |
Предупреждение
Приложения тестировались только с Ollama, а конкретно с llama3, их работа с другими LLM не гарантируется.
Нет необходимости устанавливать Ollama вручную, он будет работать в контейнере как часть стека при работе с профилем Linux: запустите docker compose --profile linux up
. Обязательно установите OLLAMA_BASE_URL=http://llm:11434
в файле .env
при использовании Docker-контейнера Ollama.
Чтобы использовать профиль Linux-GPU: запустите docker compose --profile linux-gpu up
. Также измените OLLAMA_BASE_URL=http://llm-gpu:11434
в файле .env
.
Если по какой-либо причине вы не можете запустить контейнер Ollama, вы можете вместо этого установить его и запустить локально в качестве альтернативного варианта.
Возможно, вы захотите уменьшить
num_ctx
до3072
в файле commons.py, если вы используете дешевый графический процессор или процессор.
Локальный запуск Ollama может привести к медленным результатам. Возможное решение — запустить его на дешевом экземпляре EC2 с поддержкой графического процессора, который будет работать лучше, чем любой графический процессор потребительского уровня.
Чтобы создать кластер EKS на базе одного экземпляра g4dn.xlarge
:
eksctl create cluster --name hack-turing-titans --node-type=g4dn.xlarge --nodes 1
Установите ingress-nginx и cert-manager, чтобы открыть доступ к олламе через 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
Вручную создайте запись DNS, указывающую на входной CNAME ingress-nginx (получите ее с помощью kubectl get service -n ingress-nginx
).
Задайте свое полное доменное имя и примените ресурс ClusterIssuer, чтобы включить генерацию сертификатов LetsEncrypt:
sed -i ' s/my-ollama.example.com/YOUR_FQDN/g ' k8s/letsencrypt-prod.yaml
kubectl apply -f k8s/letsencrypt-prod.yaml
Наконец установите диаграмму Олламы:
helm install ollama ollama-helm/ollama
--namespace ollama
--create-namespace
--values ollama.yaml
Предупреждение
Существует проблема с производительностью, которая влияет на приложения Python в выпусках Docker Desktop 4.24.x
Прежде чем использовать этот стек, обновите его до последней версии.
Чтобы начать все
docker compose up
Если в сценарии сборки были внесены изменения, перестройте .
docker compose up --build
Для входа в режим просмотра (автоматическое восстановление при изменении файла). Сначала запустите все, затем в новом терминале:
docker compose watch
Завершение работы Если проверка работоспособности не удалась или контейнеры не запускаются должным образом, полностью выключите систему, чтобы запустить ее снова.
docker compose down
Сценарии, которые могут потребоваться для подготовки данных для правильной работы приложений, можно найти в разделе ./scripts.
Transformer.py — это скрипт, который следует запустить с локальным клоном репозитория docs-alfresco, чтобы создать папку initial-load
со всей ожидаемой документацией для бота Alfresco Docs.
Этот проект основан на docker/genai-stack и является результатом трехдневного внутреннего хакатона в Хайленде, проведенного командой Turing Titans .