diff --git a/.github/workflows/docker/compose/ragas-compose.yaml b/.github/workflows/docker/compose/ragas-compose.yaml deleted file mode 100644 index 9e4d557985..0000000000 --- a/.github/workflows/docker/compose/ragas-compose.yaml +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (C) 2024 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 -services: - ragas: - build: - dockerfile: comps/ragas/src/tgi/langchain/Dockerfile - image: ${REGISTRY:-opea}/ragas:${TAG:-latest} diff --git a/comps/ragas/deployment/docker_compose/README.md b/comps/ragas/deployment/docker_compose/README.md deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/comps/ragas/deployment/docker_compose/tgi_langchain.yaml b/comps/ragas/deployment/docker_compose/tgi_langchain.yaml deleted file mode 100644 index e75dab9c3d..0000000000 --- a/comps/ragas/deployment/docker_compose/tgi_langchain.yaml +++ /dev/null @@ -1,33 +0,0 @@ -# Copyright (C) 2024 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -version: "3.8" - -services: - tgi_service: - image: ghcr.io/huggingface/text-generation-inference:1.4 - container_name: tgi-service - ports: - - "8008:80" - volumes: - - "./data:/data" - shm_size: 1g - command: --model-id ${LLM_MODEL_ID} - llm: - image: opea/gen-ai-comps:llm-tgi-server:latest - container_name: llm-tgi-server - ports: - - "9000:9000" - ipc: host - environment: - no_proxy: ${no_proxy} - http_proxy: ${http_proxy} - https_proxy: ${https_proxy} - TGI_LLM_ENDPOINT: ${TGI_LLM_ENDPOINT} - TEI_ENDPOINT: ${TEI_ENDPOINT} - HUGGINGFACEHUB_API_TOKEN: ${HUGGINGFACEHUB_API_TOKEN} - restart: unless-stopped - -networks: - default: - driver: bridge diff --git a/comps/ragas/deployment/kubernetes/README.md b/comps/ragas/deployment/kubernetes/README.md deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/comps/ragas/src/tgi/langchain/Dockerfile b/comps/ragas/src/tgi/langchain/Dockerfile deleted file mode 100644 index b280cb049f..0000000000 --- a/comps/ragas/src/tgi/langchain/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright (C) 2024 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -FROM python:3.11-slim - -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 comps /home/user/comps - -RUN pip install --no-cache-dir --upgrade pip setuptools && \ - pip install --no-cache-dir -r /home/user/comps/ragas/tgi/langchain/requirements.txt - -ENV PYTHONPATH=$PYTHONPATH:/home/user - -WORKDIR /home/user/comps/ragas/tgi/langchain/ - -ENTRYPOINT ["bash", "entrypoint.sh"] diff --git a/comps/ragas/src/tgi/langchain/__init__.py b/comps/ragas/src/tgi/langchain/__init__.py deleted file mode 100644 index 916f3a44b2..0000000000 --- a/comps/ragas/src/tgi/langchain/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -# Copyright (C) 2024 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 diff --git a/comps/ragas/src/tgi/langchain/build_docker.sh b/comps/ragas/src/tgi/langchain/build_docker.sh deleted file mode 100644 index 05ef3666d5..0000000000 --- a/comps/ragas/src/tgi/langchain/build_docker.sh +++ /dev/null @@ -1,8 +0,0 @@ - - -# Copyright (C) 2024 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -git clone https://github.com/huggingface/tgi-gaudi.git -cd ./tgi-gaudi/ -docker build -t ghcr.io/huggingface/tgi-gaudi:latest . --build-arg https_proxy=$https_proxy --build-arg http_proxy=$http_proxy diff --git a/comps/ragas/src/tgi/langchain/entrypoint.sh b/comps/ragas/src/tgi/langchain/entrypoint.sh deleted file mode 100644 index d60eddd36b..0000000000 --- a/comps/ragas/src/tgi/langchain/entrypoint.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (C) 2024 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -pip --no-cache-dir install -r requirements-runtime.txt - -python llm.py diff --git a/comps/ragas/src/tgi/langchain/llm.py b/comps/ragas/src/tgi/langchain/llm.py deleted file mode 100644 index 7421dc8363..0000000000 --- a/comps/ragas/src/tgi/langchain/llm.py +++ /dev/null @@ -1,86 +0,0 @@ -# Copyright (C) 2024 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -import os - -from datasets import Dataset -from langchain_community.embeddings import HuggingFaceBgeEmbeddings, HuggingFaceHubEmbeddings -from langchain_community.llms import HuggingFaceEndpoint -from ragas import evaluate -from ragas.metrics import answer_relevancy, context_precision, context_recall, faithfulness - -from comps import CustomLogger, RAGASParams, RAGASScores, ServiceType, opea_microservices, register_microservice - -logger = CustomLogger("ragas_tgi_llm") -logflag = os.getenv("LOGFLAG", False) - -tei_embedding_endpoint = os.getenv("TEI_ENDPOINT") -EMBED_MODEL = os.getenv("EMBED_MODEL", "BAAI/bge-base-en-v1.5") - - -@register_microservice( - name="opea_service@ragas_tgi_llm", - service_type=ServiceType.RAGAS, - endpoint="/v1/ragas", - host="0.0.0.0", - port=9050, - input_datatype=RAGASParams, - output_datatype=RAGASScores, -) -def llm_generate(input: RAGASParams): - if logflag: - logger.info(input) - llm_endpoint = os.getenv("TGI_LLM_ENDPOINT", "http://localhost:8080") - - # Create vectorstore - if tei_embedding_endpoint: - # create embeddings using TEI endpoint service - embedder = HuggingFaceHubEmbeddings(model=tei_embedding_endpoint) - else: - # create embeddings using local embedding model - embedder = HuggingFaceBgeEmbeddings(model_name=EMBED_MODEL) - - llm = HuggingFaceEndpoint( - endpoint_url=llm_endpoint, - max_new_tokens=input.max_new_tokens, - top_k=input.top_k, - top_p=input.top_p, - typical_p=input.typical_p, - temperature=input.temperature, - repetition_penalty=input.repetition_penalty, - streaming=input.stream, - timeout=600, - ) - - data_collections = { - "question": input.questions, - "answer": input.answers, - "docs": input.docs, - "ground_truth": input.groundtruths, - } - dataset = Dataset.from_dict(data_collections) - - score = evaluate( - dataset, - metrics=[answer_relevancy, faithfulness, context_recall, context_precision], - llm=llm, - embeddings=embedder, - ) - df = score.to_pandas() - answer_relevancy_average = df["answer_relevancy"][:].mean() - faithfulness_average = df["faithfulness"][:].mean() - context_recall_average = df["context_recall"][:].mean() - context_precision_average = df["context_precision"][:].mean() - result = RAGASScores( - answer_relevancy=answer_relevancy_average, - faithfulness=faithfulness_average, - context_recallL=context_recall_average, - context_precision=context_precision_average, - ) - if logflag: - logger.info(result) - return result - - -if __name__ == "__main__": - opea_microservices["opea_service@llm_tgi"].start() diff --git a/comps/ragas/src/tgi/langchain/requirements-runtime.txt b/comps/ragas/src/tgi/langchain/requirements-runtime.txt deleted file mode 100644 index 225adde271..0000000000 --- a/comps/ragas/src/tgi/langchain/requirements-runtime.txt +++ /dev/null @@ -1 +0,0 @@ -langserve diff --git a/comps/ragas/src/tgi/langchain/requirements.txt b/comps/ragas/src/tgi/langchain/requirements.txt deleted file mode 100644 index 0186cab400..0000000000 --- a/comps/ragas/src/tgi/langchain/requirements.txt +++ /dev/null @@ -1,14 +0,0 @@ -datasets -docarray[full] -fastapi -huggingface_hub -langchain -langchain_community -opentelemetry-api -opentelemetry-exporter-otlp -opentelemetry-sdk -prometheus-fastapi-instrumentator -ragas -shortuuid -transformers -uvicorn