diff --git a/ChatQnA/README.md b/ChatQnA/README.md index f44bd1f5d4..7dceb63133 100644 --- a/ChatQnA/README.md +++ b/ChatQnA/README.md @@ -86,28 +86,22 @@ Now the TGI Gaudi will launch the FP8 model by default. Please note that current ## Launch Redis ```bash -docker pull redis/redis-stack:latest docker compose -f langchain/docker/docker-compose-redis.yml up -d ``` ## Launch LangChain Docker -### Build LangChain Docker Image - -```bash -cd langchain/docker/ -bash ./build_docker.sh -``` - -### Lanuch LangChain Docker - Update the `HUGGINGFACEHUB_API_TOKEN` environment variable with your huggingface token in the `docker-compose-langchain.yml` ```bash +cd langchain/docker docker compose -f docker-compose-langchain.yml up -d cd ../../ ``` +> [!NOTE] +> If you modified any files and want that change introduced in this step, add `--build` to the end of the command to build the container image instead of pulling it from dockerhub. + ## Ingest data into redis After every time of redis container is launched, data should be ingested in the container ingestion steps: diff --git a/ChatQnA/langchain/docker/Dockerfile b/ChatQnA/langchain/docker/Dockerfile index 910adfd9af..8b05ec5f26 100644 --- a/ChatQnA/langchain/docker/Dockerfile +++ b/ChatQnA/langchain/docker/Dockerfile @@ -1,36 +1,23 @@ -FROM langchain/langchain - -ARG http_proxy -ARG https_proxy -ENV http_proxy=$http_proxy -ENV https_proxy=$https_proxy - -RUN apt-get update && \ - apt-get upgrade -y && \ - apt-get install -y \ - libgl1-mesa-glx \ - libjemalloc-dev - -RUN pip install --upgrade pip \ - sentence-transformers \ - redis \ - unstructured \ - unstructured[all-docs] \ - langchain-cli \ - pydantic==1.10.13 \ - langchain==0.1.12 \ - poetry \ - pymupdf \ - easyocr \ - langchain_benchmarks \ - pyarrow \ - jupyter \ - intel-extension-for-pytorch \ - intel-openmp - -ENV PYTHONPATH=/ws:/qna-app/app - -COPY qna-app /qna-app -WORKDIR /qna-app +FROM langchain/langchain:latest + +RUN apt-get update -y && apt-get install -y --no-install-recommends --fix-missing \ + libgl1-mesa-glx \ + libjemalloc-dev + +RUN useradd -m -s /bin/bash user && \ + mkdir -p /home/user && \ + chown -R user /home/user/ + +USER user + +COPY requirements.txt /tmp/requirements.txt + +RUN pip install --no-cache-dir --upgrade pip && \ + pip install --no-cache-dir -r /tmp/requirements.txt + +ENV PYTHONPATH=/home/user:/home/user/qna-app/app + +WORKDIR /home/user/qna-app +COPY qna-app /home/user/qna-app ENTRYPOINT ["/usr/bin/sleep", "infinity"] diff --git a/ChatQnA/langchain/docker/build_docker.sh b/ChatQnA/langchain/docker/build_docker.sh deleted file mode 100755 index 3401898c92..0000000000 --- a/ChatQnA/langchain/docker/build_docker.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -docker build . -t qna-rag-redis:latest --build-arg https_proxy=$https_proxy --build-arg http_proxy=$http_proxy diff --git a/ChatQnA/langchain/docker/docker-compose-langchain.yml b/ChatQnA/langchain/docker/docker-compose-langchain.yml index 984c65ec2f..35bd8f2ea9 100644 --- a/ChatQnA/langchain/docker/docker-compose-langchain.yml +++ b/ChatQnA/langchain/docker/docker-compose-langchain.yml @@ -1,9 +1,16 @@ version: '3' services: qna-rag-redis-server: - image: qna-rag-redis:latest + build: + args: + http_proxy: ${http_proxy} + https_proxy: ${https_proxy} + dockerfile: Dockerfile + image: intel/gen-ai-examples:qna-rag-redis-server container_name: qna-rag-redis-server environment: + - http_proxy=${http_proxy} + - https_proxy=${https_proxy} - "REDIS_PORT=6379" - "EMBED_MODEL=BAAI/bge-base-en-v1.5" - "REDIS_SCHEMA=schema_dim_768.yml" diff --git a/ChatQnA/langchain/docker/requirements.txt b/ChatQnA/langchain/docker/requirements.txt new file mode 100644 index 0000000000..cd4d60bd91 --- /dev/null +++ b/ChatQnA/langchain/docker/requirements.txt @@ -0,0 +1,16 @@ +cryptography==42.0.4 +easyocr +intel-extension-for-pytorch +intel-openmp +jupyter +langchain_benchmarks +langchain-cli +langchain==0.1.12 +poetry +pyarrow +pydantic==1.10.13 +pymupdf +redis +sentence-transformers +unstructured +unstructured[all-docs] diff --git a/CodeGen/README.md b/CodeGen/README.md index 487bb511a3..ae5338778a 100644 --- a/CodeGen/README.md +++ b/CodeGen/README.md @@ -14,7 +14,7 @@ docker pull ghcr.io/huggingface/tgi-gaudi:1.2.1 Alternatively, you can build the Docker image yourself with: ```bash -bash ./serving/tgi_gaudi/build_docker.sh +bash ./tgi_gaudi/build_docker.sh ``` ## Launch TGI Gaudi Service @@ -43,7 +43,7 @@ export TGI_ENDPOINT="xxx.xxx.xxx.xxx:8080" ## Launch Copilot Docker -### Build Copilot Docker Image +### Build Copilot Docker Image (Optional) ```bash cd codegen @@ -54,10 +54,9 @@ cd .. ### Lanuch Copilot Docker ```bash -docker run -it --net=host --ipc=host -v /var/run/docker.sock:/var/run/docker.sock copilot:latest +docker run -it -e http_proxy=${http_proxy} -e https_proxy=${https_proxy} --net=host --ipc=host -v /var/run/docker.sock:/var/run/docker.sock intel/gen-ai-examples:copilot bash ``` - # Start Copilot Server ## Start the Backend Service diff --git a/CodeGen/codegen/Dockerfile b/CodeGen/codegen/Dockerfile index 22e3774595..b0bc050213 100644 --- a/CodeGen/codegen/Dockerfile +++ b/CodeGen/codegen/Dockerfile @@ -12,14 +12,25 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM langchain/langchain -RUN apt-get update && apt-get -y install libgl1-mesa-glx -RUN pip install -U langchain-cli pydantic==1.10.13 -RUN pip install langchain==0.1.11 -RUN pip install shortuuid -RUN pip install huggingface_hub -RUN mkdir -p /ws -ENV PYTHONPATH=/ws -COPY codegen-app /codegen-app -WORKDIR /codegen-app -CMD ["/bin/bash"] +FROM langchain/langchain:latest + +RUN apt-get update -y && apt-get install -y --no-install-recommends --fix-missing \ + libgl1-mesa-glx \ + libjemalloc-dev + +RUN useradd -m -s /bin/bash user && \ + mkdir -p /home/user && \ + chown -R user /home/user/ + +USER user + +COPY requirements.txt /tmp/requirements.txt + +RUN pip install --no-cache-dir -U -r /tmp/requirements.txt + +ENV PYTHONPATH=/home/user:/home/user/codegen-app + +WORKDIR /home/user/codegen-app +COPY codegen-app /home/user/codegen-app + +SHELL ["/bin/bash", "-c"] diff --git a/CodeGen/codegen/requirements.txt b/CodeGen/codegen/requirements.txt new file mode 100644 index 0000000000..e57acd289b --- /dev/null +++ b/CodeGen/codegen/requirements.txt @@ -0,0 +1,5 @@ +huggingface_hub +langchain-cli +langchain==0.1.11 +pydantic==1.10.13 +shortuuid diff --git a/DocSum/README.md b/DocSum/README.md index 8c73a2fe09..9951a57162 100644 --- a/DocSum/README.md +++ b/DocSum/README.md @@ -42,7 +42,7 @@ export TGI_ENDPOINT="http://xxx.xxx.xxx.xxx:8080" ## Launch Document Summary Docker -### Build Document Summary Docker Image +### Build Document Summary Docker Image (Optional) ```bash cd langchain/docker/ @@ -53,7 +53,7 @@ cd ../../ ### Lanuch Document Summary Docker ```bash -docker run -it --net=host --ipc=host -v /var/run/docker.sock:/var/run/docker.sock document-summarize:latest +docker run -it --net=host --ipc=host -e http_proxy=${http_proxy} -e https_proxy=${https_proxy} -v /var/run/docker.sock:/var/run/docker.sock intel/gen-ai-examples:document-summarize bash ``` diff --git a/DocSum/langchain/docker/Dockerfile b/DocSum/langchain/docker/Dockerfile index b91c264c60..92c906e68f 100644 --- a/DocSum/langchain/docker/Dockerfile +++ b/DocSum/langchain/docker/Dockerfile @@ -1,35 +1,21 @@ -FROM langchain/langchain +FROM langchain/langchain:latest -ARG http_proxy -ARG https_proxy -ENV http_proxy=$http_proxy -ENV https_proxy=$https_proxy +RUN apt-get update -y && apt-get install -y --no-install-recommends --fix-missing \ + libgl1-mesa-glx \ + libjemalloc-dev -RUN apt-get update && \ - apt-get upgrade -y && \ - apt-get install -y \ - libgl1-mesa-glx \ - libjemalloc-dev +RUN useradd -m -s /bin/bash user && \ + mkdir -p /home/user && \ + chown -R user /home/user/ -RUN pip install --upgrade pip \ - sentence-transformers \ - langchain-cli \ - pydantic==1.10.13 \ - langchain==0.1.12 \ - poetry \ - langchain_benchmarks \ - pyarrow \ - jupyter \ - docx2txt \ - pypdf \ - beautifulsoup4 \ - python-multipart \ - intel-extension-for-pytorch \ - intel-openmp +USER user -ENV PYTHONPATH=/ws:/summarize-app/app +COPY requirements.txt /tmp/requirements.txt -COPY summarize-app /summarize-app -WORKDIR /summarize-app +RUN pip install --no-cache-dir --upgrade pip && \ + pip install --no-cache-dir -r /tmp/requirements.txt -CMD ["/bin/bash"] +ENV PYTHONPATH=/home/user:/home/user/summarize-app/app + +WORKDIR /home/user/summarize-app +COPY summarize-app /home/user/summarize-app diff --git a/DocSum/langchain/docker/requirements.txt b/DocSum/langchain/docker/requirements.txt new file mode 100644 index 0000000000..ff1dd0c9ff --- /dev/null +++ b/DocSum/langchain/docker/requirements.txt @@ -0,0 +1,14 @@ +beautifulsoup4 +docx2txt +intel-extension-for-pytorch +intel-openmp +jupyter +langchain_benchmarks +langchain-cli +langchain==0.1.12 +poetry +pyarrow +pydantic==1.10.13 +pypdf +python-multipart +sentence-transformers diff --git a/VisualQnA/README.md b/VisualQnA/README.md index 08d3ff9b9f..8fb575be0b 100644 --- a/VisualQnA/README.md +++ b/VisualQnA/README.md @@ -12,13 +12,13 @@ This example guides you through how to deploy a [LLaVA](https://llava-vl.github. ``` cd serving/ -docker build . --build-arg http_proxy=${http_proxy} --build-arg https_proxy=${http_proxy} -t llava_gaudi:latest +docker build . --build-arg http_proxy=${http_proxy} --build-arg https_proxy=${http_proxy} -t intel/gen-ai-examples:llava-gaudi ``` 2. Start the LLaVA service on Intel Gaudi2 ``` -docker run -d -p 8084:80 -p 8085:8000 -v ./data:/root/.cache/huggingface/hub/ -e http_proxy=$http_proxy -e https_proxy=$http_proxy -v $PWD/llava_server:/llava_server --runtime=habana -e HABANA_VISIBLE_DEVICES=all -e OMPI_MCA_btl_vader_single_copy_mechanism=none --cap-add=sys_nice --ipc=host llava_gaudi +docker run -d -p 8084:80 -p 8085:8000 -v ./data:/root/.cache/huggingface/hub/ -e http_proxy=$http_proxy -e https_proxy=$http_proxy -v $PWD/llava_server:/llava_server --runtime=habana -e HABANA_VISIBLE_DEVICES=all -e OMPI_MCA_btl_vader_single_copy_mechanism=none --cap-add=sys_nice --ipc=host intel/gen-ai-examples:llava-gaudi ``` Here are some explanation about the above parameters: diff --git a/VisualQnA/serving/Dockerfile b/VisualQnA/serving/Dockerfile index 954888af7a..69bca036a1 100644 --- a/VisualQnA/serving/Dockerfile +++ b/VisualQnA/serving/Dockerfile @@ -13,22 +13,29 @@ # limitations under the License. # HABANA environment -FROM vault.habana.ai/gaudi-docker/1.14.0/ubuntu22.04/habanalabs/pytorch-installer-2.1.1 as hpu +FROM vault.habana.ai/gaudi-docker/1.14.0/ubuntu22.04/habanalabs/pytorch-installer-2.1.1 AS hpu +RUN rm -rf /etc/ssh/ssh_host* # Set environment variables ENV LANG=en_US.UTF-8 -ENV PYTHONPATH=/root:/usr/lib/habanalabs/:/optimum-habana +ENV PYTHONPATH=/home/user:/usr/lib/habanalabs/:/optimum-habana # Install required branch -RUN git clone https://github.com/lkk12014402/optimum-habana.git && \ - cd optimum-habana && \ - git checkout enable_llava_generation +RUN git clone https://github.com/lkk12014402/optimum-habana.git /optimum-habana -b enable_llava_generation + +RUN useradd -m -s /bin/bash user && \ + mkdir -p /home/user && \ + chown -R user /home/user/ + +USER user + +COPY requirements.txt /tmp/requirements.txt # Install dependency -RUN pip install --upgrade-strategy eager optimum[habana] && \ - pip install fastapi uvicorn +RUN pip install --no-cache-dir -U -r /tmp/requirements.txt # work dir should contains the server WORKDIR /llava_server +COPY llava_server /llava_server -ENTRYPOINT ["python", "llava_server.py"] \ No newline at end of file +ENTRYPOINT ["python", "llava_server.py"] diff --git a/VisualQnA/serving/requirements.txt b/VisualQnA/serving/requirements.txt new file mode 100644 index 0000000000..a93c455d6b --- /dev/null +++ b/VisualQnA/serving/requirements.txt @@ -0,0 +1,4 @@ +eager +fastapi +optimum[habana] +uvicorn