From b1afb923b63282ed23ad5f39e99dae91d4d3f6f1 Mon Sep 17 00:00:00 2001 From: AlexBotsmann Date: Mon, 21 Oct 2024 14:16:37 +0000 Subject: [PATCH] tranclate on updated file --- docs-ua/examples/ChatQnA/deploy/aipc.md | 133 ++++++++++++++++-------- docs-ua/getting-started/README.md | 12 ++- 2 files changed, 101 insertions(+), 44 deletions(-) diff --git a/docs-ua/examples/ChatQnA/deploy/aipc.md b/docs-ua/examples/ChatQnA/deploy/aipc.md index b0da9079..991ff149 100644 --- a/docs-ua/examples/ChatQnA/deploy/aipc.md +++ b/docs-ua/examples/ChatQnA/deploy/aipc.md @@ -38,13 +38,15 @@ Tня має на меті показати, як використовувати основні необхідні компоненти, що використовуються для створення прикладів, які ви знайдете в GenAIExamples і розгортання їх як мікросервісів. ``` +mkdir ~/OPEA -p +cd ~/OPEA git clone https://github.com/opea-project/GenAIComps.git git clone https://github.com/opea-project/GenAIExamples.git ``` Перевірте тег релізу ``` -cd GenAIComps +cd ~/OPEA/GenAIComps git checkout tags/v1.0 ``` @@ -70,6 +72,82 @@ export no_proxy=${your_no_proxy},$host_ip export http_proxy=${your_http_proxy} export https_proxy=${your_http_proxy} ``` +The examples utilize model weights from Ollama and langchain. + +### Set Up Ollama LLM Service +We use [Ollama](https://ollama.com/) as our LLM service for AIPC. +Please follow the instructions to set up Ollama on your PC. This will set the entrypoint needed for the Ollama to suit the ChatQnA examples. + +#### Install Ollama Service +Install Ollama service with one command: +``` +curl -fsSL https://ollama.com/install.sh | sh +``` + +#### Set Ollama Service Configuration +Ollama Service Configuration file is /etc/systemd/system/ollama.service. Edit the file to set OLLAMA_HOST environment. +Replace **** with your host IPV4 (please use external public IP). For example the host_ip is 10.132.x.y, then `Environment="OLLAMA_HOST=10.132.x.y:11434"'. +``` +Environment="OLLAMA_HOST=host_ip:11434" +``` + +#### Set https_proxy environment for Ollama +If your system access network through proxy, add https_proxy in Ollama Service Configuration file +``` +Environment="https_proxy=Your_HTTPS_Proxy" +``` + +#### Restart Ollama services +``` +$ sudo systemctl daemon-reload +$ sudo systemctl restart ollama.service +``` + +#### Check the service started +``` +netstat -tuln | grep 11434 +``` +The output are: +``` +tcp 0 0 10.132.x.y:11434 0.0.0.0:* LISTEN +``` + +#### Pull Ollama LLM model +Run the command to download LLM models. The is the one set in [Ollama Service Configuration](#Set-Ollama-Service-Configuration) +``` +export host_ip= +export OLLAMA_HOST=http://${host_ip}:11434 +ollama pull llama3.2 +``` +After downloaded the models, you can list the models by `ollama list`. +The output should be similar to the following: +``` +NAME ID SIZE MODIFIED +llama3.2:latest a80c4f17acd5 2.0 GB 2 minutes ago +``` + +### Consume Ollama LLM Service +Access ollama service to verify that the ollama is functioning correctly. +```bash +curl http://${host_ip}:11434/api/generate -d '{"model": "llama3.2", "prompt":"What is Deep Learning?"}' +``` +The outputs are similar to these: +``` +{"model":"llama3.2","created_at":"2024-10-12T12:55:28.098813868Z","response":"Deep","done":false} +{"model":"llama3.2","created_at":"2024-10-12T12:55:28.124514468Z","response":" learning","done":false} +{"model":"llama3.2","created_at":"2024-10-12T12:55:28.149754216Z","response":" is","done":false} +{"model":"llama3.2","created_at":"2024-10-12T12:55:28.180420784Z","response":" a","done":false} +{"model":"llama3.2","created_at":"2024-10-12T12:55:28.229185873Z","response":" subset","done":false} +{"model":"llama3.2","created_at":"2024-10-12T12:55:28.263956118Z","response":" of","done":false} +{"model":"llama3.2","created_at":"2024-10-12T12:55:28.289097354Z","response":" machine","done":false} +{"model":"llama3.2","created_at":"2024-10-12T12:55:28.316838918Z","response":" learning","done":false} +{"model":"llama3.2","created_at":"2024-10-12T12:55:28.342309506Z","response":" that","done":false} +{"model":"llama3.2","created_at":"2024-10-12T12:55:28.367221264Z","response":" involves","done":false} +{"model":"llama3.2","created_at":"2024-10-12T12:55:28.39205893Z","response":" the","done":false} +{"model":"llama3.2","created_at":"2024-10-12T12:55:28.417933974Z","response":" use","done":false} +{"model":"llama3.2","created_at":"2024-10-12T12:55:28.443110388Z","response":" of","done":false} +... +``` ## Підготовка (створення / витягування) докер-образів @@ -87,6 +165,7 @@ rerank, LLM і dataprep. Крім того, вам потрібно буде з #### Побудова образу підготовки даних ``` +cd ~/OPEA/GenAIComps docker build --no-cache -t opea/dataprep-redis:latest --build-arg https_proxy=$https_proxy \ --build-arg http_proxy=$http_proxy -f comps/dataprep/redis/langchain/Dockerfile . ``` @@ -114,11 +193,6 @@ docker build --no-cache -t opea/reranking-tei:latest --build-arg https_proxy=$ht #### Побудова образу LLM -Налаштовуємо сервіс Ollama LLM однією командою -```bash -curl -fsSL https://ollama.com/install.sh | sh -``` - Далі ми створимо докер мікросервісу Ollama. Це встановить точку входу необхідну для того, щоб Ollama відповідала прикладам ChatQnA ``` @@ -126,34 +200,6 @@ docker build --no-cache -t opea/llm-ollama:latest --build-arg https_proxy=$https --build-arg http_proxy=$http_proxy -f comps/llms/text-generation/ollama/langchain/Dockerfile . ``` -Налаштування конфігурації сервісу Ollama - -Файл конфігурації сервісу Ollama знаходиться в `/etc/systemd/system/ollama.service`. -Відредагуйте файл, щоб встановити середовище OLLAMA_HOST (замініть **${host_ip}** на IPV4 вашого хоста). -``` -Environment="OLLAMA_HOST=${host_ip}:11434" -``` -Встановіть оточення https_proxy для Ollama, якщо ваша система отримує доступ до мережі через проксі. -``` -Environment="https_proxy=http://proxy.example.com:8080" -``` -Перезапустіть сервіси Ollama -``` -sudo systemctl daemon-reload -sudo systemctl restart ollama.service -``` - -Pull LLM model - -```bash -export OLLAMA_HOST=http://${host_ip}:11434 -ollama pull llama3 -ollama list - -NAME ID SIZE MODIFIED -llama3:latest 365c0bd3c000 4.7 GB 5 days ago -``` - ### Побудова образів Мегасервісу Мегасервіс - це трубопровід, який передає дані через різні мікросервіси, кожен з яких виконує різні завдання. Ми визначаємо різні @@ -166,8 +212,7 @@ llama3:latest 365c0bd3c000 4.7 GB 5 days ago Створіть образ мегасервісу для цього варіанту використання ``` -cd .. -cd GenAIExamples/ChatQnA +cd ~/OPEA/GenAIExamples/ChatQnA git checkout tags/v1.0 ``` @@ -185,7 +230,7 @@ docker build --no-cache -t opea/chatqna:latest --build-arg https_proxy=$https_pr *Базовий інтерфейс* ``` -cd GenAIExamples/ChatQnA/ui/ +cd ~/OPEA/GenAIExamples/ChatQnA/ui/ docker build --no-cache -t opea/chatqna-ui:latest --build-arg https_proxy=$https_proxy \ --build-arg http_proxy=$http_proxy -f ./docker/Dockerfile . ``` @@ -194,7 +239,7 @@ docker build --no-cache -t opea/chatqna-ui:latest --build-arg https_proxy=$https Якщо вам потрібен розмовний досвід, скористайтеся мегасервісом chatqna. ``` -cd GenAIExamples/ChatQnA/ui/ +cd ~/OPEA/GenAIExamples/ChatQnA/ui/ docker build --no-cache -t opea/chatqna-conversation-ui:latest --build-arg https_proxy=$https_proxy \ --build-arg http_proxy=$http_proxy -f ./docker/Dockerfile.react . ``` @@ -321,7 +366,12 @@ e1fc81b1d542 redis/redis-stack:7.2.0-v9 "/entrypo Якщо ви хочете додати або оновити базу знань за замовчуванням, ви можете скористатися такими командами. Мікросервіс dataprep витягує тексти з різних джерел даних, розбиває дані на частини, вбудовує кожну частину за допомогою мікросервісу embedding і зберігає вбудовані вектори у базі даних векторів redis. -Завантаження локального файлу `nke-10k-2023.pdf` : +Завантажте pdf файл: +``` +wget https://raw.githubusercontent.com/opea-project/GenAIComps/main/comps/retrievers/redis/data/nke-10k-2023.pdf +``` +Local File `nke-10k-2023.pdf` Upload with dataprep: +This command updates a knowledge base by uploading a local file for processing. ``` curl -X POST "http://${host_ip}:6007/v1/dataprep" \ @@ -329,10 +379,7 @@ curl -X POST "http://${host_ip}:6007/v1/dataprep" \ -F "files=@./nke-10k-2023.pdf" ``` -Ця команда оновлює базу знань, завантажуючи локальний файл для обробки. -Змініть шлях до файлу відповідно до вашого середовища. - -Додайте базу знань через HTTP-посилання: +Крім того, ви можете додати базу знань за допомогою HTTP-посилань: ``` curl -X POST "http://${host_ip}:6007/v1/dataprep" \ diff --git a/docs-ua/getting-started/README.md b/docs-ua/getting-started/README.md index 444b12c2..7969d5d3 100644 --- a/docs-ua/getting-started/README.md +++ b/docs-ua/getting-started/README.md @@ -78,7 +78,17 @@ docker compose up -d Будь ласка, зверніться до розділу ['Збірка образів докерів'](/examples/ChatQnA/deploy) з файлу, який відповідає вашому апаратному забезпеченню. -### Взаємодія з мегасервісом і мікросервісом ChatQnA +### Взаємодія з мегасервісом і мікросервісом ChatQnA +Перш ніж взаємодіяти зі службою ChatQnA, переконайтеся, що служба TGI готова (її запуск займає до 2 хвилин). +``` +docker ps +# expected: all images's status are up +# TGI example on on Xeon and Nvidia GPU +docker logs tgi-service | grep Connected +# TGI example on on Gaudi +docker logs tgi-gaudi-service | grep Connected +# execpted output: ... INFO text_generation_router::server: router/src/server.rs:2311: Connected +``` ``` curl http://${host_ip}:8888/v1/chatqna \ -H "Content-Type: application/json" \