diff --git a/community/CONTRIBUTING.md b/community/CONTRIBUTING.md index 921a5b14..7da855f3 100644 --- a/community/CONTRIBUTING.md +++ b/community/CONTRIBUTING.md @@ -86,7 +86,7 @@ Thanks for considering contributing to OPEA project. The contribution process is ``` - **File Descriptions**: - - `embedding_tei.py`: This file defines and registers the microservice. It serves as the entrypoint of the Docker container. Refer to [whisper ASR](https://github.com/opea-project/GenAIComps/tree/main/comps/asr/whisper) for a simple example or [TGI](https://github.com/opea-project/GenAIComps/blob/main/comps/llms/text-generation/tgi/llm.py) for a more complex example that required adapting to the OpenAI API. + - `embedding_tei.py`: This file defines and registers the microservice. It serves as the entrypoint of the Docker container. Refer to [whisper ASR](https://github.com/opea-project/GenAIComps/tree/main/comps/asr/whisper/README.md) for a simple example or [TGI](https://github.com/opea-project/GenAIComps/blob/main/comps/llms/text-generation/tgi/llm.py) for a more complex example that required adapting to the OpenAI API. - `requirements.txt`: This file is used by Docker to install the necessary dependencies. - `Dockerfile`: Used to generate the service container image. Please follow naming conventions: - Dockerfile: `Dockerfile.[vendor]_[hardware]`, vendor and hardware in lower case (i,e Dockerfile.amd_gpu) @@ -103,9 +103,9 @@ Thanks for considering contributing to OPEA project. The contribution process is ### Contribute a GenAI Example -Each of the samples in OPEA GenAIExamples are a common oft used solution. They each have scripts to ease deployment, and have been tested for performance and scalability with Docker compose and Kubernetes. When contributing an example, a Docker Compose deployment is the minimum requirement. However, since OPEA is intended for enterprise applications, supporting Kubernetes deployment is highly encouraged. You can find [examples for Kubernetes deployment](https://github.com/opea-project/GenAIExamples?tab=readme-ov-file#deploy-examples) using manifests, Helms Charts, and the [GenAI Microservices Connector (GMC)](https://github.com/opea-project/GenAIInfra/tree/main/microservices-connector). GMC offers additional enterprise features, such as the ability to dynamically adjust pipelines on Kubernetes (e.g., switching to a different LLM on the fly, adding guardrails), composing pipeleines that include external services hosted in public cloud or on-premisees via URL, and supporting sequential, parallel and conditional flows in the pipelines. +Each of the samples in OPEA GenAIExamples are a common oft used solution. They each have scripts to ease deployment, and have been tested for performance and scalability with Docker compose and Kubernetes. When contributing an example, a Docker Compose deployment is the minimum requirement. However, since OPEA is intended for enterprise applications, supporting Kubernetes deployment is highly encouraged. You can find [examples for Kubernetes deployment](https://github.com/opea-project/GenAIExamples/tree/main/README.md#deploy-examples) using manifests, Helms Charts, and the [GenAI Microservices Connector (GMC)](https://github.com/opea-project/GenAIInfra/tree/main/microservices-connector/README.md). GMC offers additional enterprise features, such as the ability to dynamically adjust pipelines on Kubernetes (e.g., switching to a different LLM on the fly, adding guardrails), composing pipeleines that include external services hosted in public cloud or on-premisees via URL, and supporting sequential, parallel and conditional flows in the pipelines. -- Navigate to [OPEA GenAIExamples](https://github.com/opea-project/GenAIExamples/tree/main) and check the catalog of examples. If you find one that is very similar to what you are looking for, you can contribute your variation of it to that particular example folder. If you are bringing a completly new application you will need to create a separate example folder. +- Navigate to [OPEA GenAIExamples](https://github.com/opea-project/GenAIExamples/tree/main/README.md) and check the catalog of examples. If you find one that is very similar to what you are looking for, you can contribute your variation of it to that particular example folder. If you are bringing a completly new application you will need to create a separate example folder. - Before stitching together all the microservices to build your application, let's make sure all the required building blocks are available!. Take a look at this **ChatQnA Flow Chart**: diff --git a/community/charter.md b/community/charter.md index 437292de..e7713e7a 100644 --- a/community/charter.md +++ b/community/charter.md @@ -14,7 +14,7 @@ This Charter sets forth the responsibilities and procedures for technical contri ## 2. Technical Steering Committee 1. The Technical Steering Committee (the “TSC”) will be responsible for all technical oversight of the open source Project. - 2. The TSC voting members are initially those individuals listed as voting members of the TSC in the GOVERNANCE.MD file in the Project’s governance repo. At the inception of the project, the Maintainers of the Project will be as set forth within the “CONTRIBUTING” file within the Project’s code repository. The TSC may choose an alternative approach for determining the voting members of the TSC, and any such alternative approach will be documented in the GOVERNANCE file. The Project intends to determine additional details on composition of the TSC to enable increased diversity of organizations represented on the TSC within 12 months following the inception of the Project, or such other time as determined by the TSC (the “Steady State Transition”). The TSC expects to have no one company employing more than 50% of the voting members of the TSC by the Steady State Transition. It is expected that the terms of TSC voting members will vary initially (with roughly half 1 year and the remainder 2 years) so that elections will be staggered. Any meetings of the Technical Steering Committee are intended to be open to the public, and can be conducted electronically, via teleconference, or in person. + 2. The TSC voting members are initially those individuals listed as voting members of the TSC in the GOVERNANCE.MD file in the Project’s governance repo (moved to community/TSC.rst in the docs repo). At the inception of the project, the Maintainers of the Project will be as set forth within the “CONTRIBUTING” file within the Project’s code repository. The TSC may choose an alternative approach for determining the voting members of the TSC, and any such alternative approach will be documented in the GOVERNANCE file (now the TSC.rst file). The Project intends to determine additional details on composition of the TSC to enable increased diversity of organizations represented on the TSC within 12 months following the inception of the Project, or such other time as determined by the TSC (the “Steady State Transition”). The TSC expects to have no one company employing more than 50% of the voting members of the TSC by the Steady State Transition. It is expected that the terms of TSC voting members will vary initially (with roughly half 1 year and the remainder 2 years) so that elections will be staggered. Any meetings of the Technical Steering Committee are intended to be open to the public, and can be conducted electronically, via teleconference, or in person. 3. TSC projects generally will involve Contributors and Maintainers. The TSC may adopt or modify roles so long as the roles are documented in the CONTRIBUTING file. Unless otherwise documented: 1. Contributors include anyone in the technical community that contributes code, documentation, or other technical artifacts to the Project; 2. Maintainers are Contributors who have earned the ability to modify (“commit” or merge pull requests) source code, documentation or other technical artifacts in a project’s repository; and diff --git a/conf.py b/conf.py index 09b09212..d80915e2 100644 --- a/conf.py +++ b/conf.py @@ -110,7 +110,7 @@ 'docs_title': docs_title, 'is_release': is_release, 'versions': ( ("latest", "/latest/"), - # ("1.0", "/1.0/"), # No doc versions yet... + ("1.0", "/1.0/"), ) } diff --git a/guide/installation/gmc_install/gmc_install.md b/guide/installation/gmc_install/gmc_install.md index 23462031..a082a18b 100644 --- a/guide/installation/gmc_install/gmc_install.md +++ b/guide/installation/gmc_install/gmc_install.md @@ -11,7 +11,7 @@ GMC can be used to compose and adjust GenAI pipelines dynamically on Kubernetes. **Prerequisites** - For the ChatQnA example ensure your cluster has a running Kubernetes cluster with at least 16 CPUs, 32GB of memory, and 100GB of disk space. To install a Kubernetes cluster refer to: -["Kubernetes installation"](../k8s_install/) +["Kubernetes installation"](../k8s_install/README.md) **Download the GMC github repository** diff --git a/guide/installation/k8s_install/README.md b/guide/installation/k8s_install/README.md new file mode 100644 index 00000000..2cc7a98b --- /dev/null +++ b/guide/installation/k8s_install/README.md @@ -0,0 +1,8 @@ +# Kubernetes Installation Options + +Here are a variety of ways to install Kubernetes: + +* [Using AWS EKS Cluster](k8s_instal_aws_eks.md) +* [Using kubeadm](k8s_install_kubeadm.md) +* [Using Kubespray](k8s_install_kubespray.md) + diff --git a/scripts/fix-github-md-refs.sh b/scripts/fix-github-md-refs.sh index d4edb109..5e8cd963 100755 --- a/scripts/fix-github-md-refs.sh +++ b/scripts/fix-github-md-refs.sh @@ -21,16 +21,12 @@ mdfiles=`grep -ril --include="*.md" 'github.com/opea-project.*\/[^\)]*'` # subsequent path to the md file \1 is repo \3 is file path \4 is an optional #xxx target #sed -i 's/(https:\/\/github.com\/opea-project\/\([^\/]*\)\/\(blob\|tree\)\/main\/\([^)]*\.md\)/(\/\1\/\3/g' $mdfiles -sed -i 's/(https:\/\/github.com\/opea-project\/\([^\/]*\)\/\(blob\|tree\)\/main\/\([^#)]*\)\(#[^)]*\)*)/(\/\1\/\3\/README.md\4)/g' $mdfiles +#sed -i 's/(https:\/\/github.com\/opea-project\/\([^\/]*\)\/\(blob\|tree\)\/main\/\([^#)]*\)\(#[^)]*\)*)/(\/\1\/\3\/README.md\4)/g' $mdfiles +sed -i 's/(https:\/\/github.com\/opea-project\/\([^\/]*\)\/\(blob\|tree\)\/main\/\([^#)]*\.md\)\(#[^)]*\)*)/(\/\1\/\3\4)/g' $mdfiles -# That sed script might have introduced an error of "xxx.md/README.md", so -# clean that up just in case (keep the xxx.md) +# After that, inks to the docs repo such as [blah](docs/...) should have the repo name removed since docs repo is the build root -sed -i 's/\(\/[^\.]*\.md\)\/README\.md/\1/g' $mdfiles - -# links to the docs repo such as (docs/...) should have the repo name removed since docs repo is the build root - -sed -i 's/(\/docs\//(\//g' $mdfiles +sed -i 's/](\/docs\//](\//g' $mdfiles # links to a folder should instead be to the folder's README.md # Not automating this for now since there are valid folder references diff --git a/scripts/rsync-include.txt b/scripts/rsync-include.txt index 251cd434..cc362447 100644 --- a/scripts/rsync-include.txt +++ b/scripts/rsync-include.txt @@ -5,4 +5,6 @@ *.rst *.md *.rst +*.txt CODEOWNERS +LICENSE diff --git a/scripts/test/test.md b/scripts/test/test.md new file mode 100644 index 00000000..386fca09 --- /dev/null +++ b/scripts/test/test.md @@ -0,0 +1,35 @@ +# Test markdown file with cross-repo links + +This folder contains a collection of Kubernetes manifest files for deploying the ChatQnA service across scalable nodes. It includes a comprehensive [benchmarking tool](/GenAIEval/evals/benchmark/README.md) that enables throughput analysis to assess inference performance. + +We have created the [BKC manifest](https://github.com/opea-project/GenAIExamples/tree/main/ChatQnA/benchmark) for single node, two nodes and four nodes K8s cluster. In order to apply, we need to check out and configure some values. + +The test uses the [benchmark tool](https://github.com/opea-project/GenAIEval/tree/main/evals/benchmark) to do performance test. We need to set up benchmark tool at the master node of Kubernetes which is k8s-master. + +This document outlines the deployment process for a CodeGen application utilizing the [GenAIComps](https://github.com/opea-project/GenAIComps.git) microservice pipeline on Intel Gaudi2 server. The steps include Docker images creation, container deployment via Docker Compose, and service execution to integrate microservices such as `llm`. We will publish the Docker images to the Docker Hub soon, further simplifying the deployment process for this service. + +Install GMC in your Kubernetes cluster, if you have not already done so, by following the steps in Section "Getting Started" at [GMC Install](https://github.com/opea-project/GenAIInfra/tree/main/microservices-connector#readme). We will soon publish images to Docker Hub, at which point no builds will be required, further simplifying install. + +If you get errors like "Access Denied", [validate micro service](https://github.com/opea-project/GenAIExamples/tree/main/CodeGen/docker_compose/intel/cpu/xeon#validate-microservices) first. + +Update Knowledge Base via Local File [nke-10k-2023.pdf](https://github.com/opea-project/GenAIComps/blob/main/comps/retrievers/redis/data/nke-10k-2023.pdf) + +Please refer to [Xeon README](/GenAIExamples/AudioQnA/docker_compose/intel/cpu/xeon/README.md) or [Gaudi README](/GenAIExamples/AudioQnA/docker_compose/intel/hpu/gaudi/README.md) to build the OPEA images. These too will be available on Docker Hub soon to simplify use. + +Here's a [Link](https://github.com/opea-project/GenAIComps/blob/main/comps/reranks/tei/Dockerfile) to a Docker file. + +You can take a look at the tools yaml and python files in this example. For more details, please refer to the "Provide your own tools" section in the instructions [here](https://github.com/opea-project/GenAIComps/tree/main/comps/agent/langchain#5-customize-agent-strategy). + +Here's another [Link](https://github.com/opea-project/GenAIExamples/blob/main/ChatQnA/ui/docker/Dockerfile.react) to examine. + +Here is a nice one [Docker Xeon README](/GenAIExamples/DocSum/docker_compose/intel/cpu/xeon/README.md) and that with a section reference [Docker Xeon README](/GenAIExamples/DocSum/docker_compose/intel/cpu/xeon/README.md#section) + +And a reference to a python file [finetune_config](https://github.com/opea-project/GenAIComps/blob/main/comps/finetuning/finetune_config.py) to keep things interesting. + +Here's an [issue](https://github.com/opea-project/GenAIExamples/issues/763) +reference and +[Actions](https://github.com/opea-project/GenAIExamples/actions) reference too. +Might as well test [PRs](https://github.com/opea-project/GenAIExamples/pulls) +and [Projects](https://github.com/opea-project/GenAIExamples/projects) too. + +In release notes will find [88b3c1](https://github.com/opea-project/GenAIInfra/commit/88b3c108e5b5e3bfb6d9346ce2863b69f70cc2f1) commit references. diff --git a/scripts/test/test.md.saved b/scripts/test/test.md.saved new file mode 100644 index 00000000..9d0c8fac --- /dev/null +++ b/scripts/test/test.md.saved @@ -0,0 +1,35 @@ +# Test markdown file with cross-repo links + +This folder contains a collection of Kubernetes manifest files for deploying the ChatQnA service across scalable nodes. It includes a comprehensive [benchmarking tool](https://github.com/opea-project/GenAIEval/blob/main/evals/benchmark/README.md) that enables throughput analysis to assess inference performance. + +We have created the [BKC manifest](https://github.com/opea-project/GenAIExamples/tree/main/ChatQnA/benchmark) for single node, two nodes and four nodes K8s cluster. In order to apply, we need to check out and configure some values. + +The test uses the [benchmark tool](https://github.com/opea-project/GenAIEval/tree/main/evals/benchmark) to do performance test. We need to set up benchmark tool at the master node of Kubernetes which is k8s-master. + +This document outlines the deployment process for a CodeGen application utilizing the [GenAIComps](https://github.com/opea-project/GenAIComps.git) microservice pipeline on Intel Gaudi2 server. The steps include Docker images creation, container deployment via Docker Compose, and service execution to integrate microservices such as `llm`. We will publish the Docker images to the Docker Hub soon, further simplifying the deployment process for this service. + +Install GMC in your Kubernetes cluster, if you have not already done so, by following the steps in Section "Getting Started" at [GMC Install](https://github.com/opea-project/GenAIInfra/tree/main/microservices-connector#readme). We will soon publish images to Docker Hub, at which point no builds will be required, further simplifying install. + +If you get errors like "Access Denied", [validate micro service](https://github.com/opea-project/GenAIExamples/tree/main/CodeGen/docker_compose/intel/cpu/xeon#validate-microservices) first. + +Update Knowledge Base via Local File [nke-10k-2023.pdf](https://github.com/opea-project/GenAIComps/blob/main/comps/retrievers/redis/data/nke-10k-2023.pdf) + +Please refer to [Xeon README](https://github.com/opea-project/GenAIExamples/blob/main/AudioQnA/docker_compose/intel/cpu/xeon/README.md) or [Gaudi README](https://github.com/opea-project/GenAIExamples/blob/main/AudioQnA/docker_compose/intel/hpu/gaudi/README.md) to build the OPEA images. These too will be available on Docker Hub soon to simplify use. + +Here's a [Link](https://github.com/opea-project/GenAIComps/blob/main/comps/reranks/tei/Dockerfile) to a Docker file. + +You can take a look at the tools yaml and python files in this example. For more details, please refer to the "Provide your own tools" section in the instructions [here](https://github.com/opea-project/GenAIComps/tree/main/comps/agent/langchain#5-customize-agent-strategy). + +Here's another [Link](https://github.com/opea-project/GenAIExamples/blob/main/ChatQnA/ui/docker/Dockerfile.react) to examine. + +Here is a nice one [Docker Xeon README](https://github.com/opea-project/GenAIExamples/blob/main/DocSum/docker_compose/intel/cpu/xeon/README.md) and that with a section reference [Docker Xeon README](https://github.com/opea-project/GenAIExamples/blob/main/DocSum/docker_compose/intel/cpu/xeon/README.md#section) + +And a reference to a python file [finetune_config](https://github.com/opea-project/GenAIComps/blob/main/comps/finetuning/finetune_config.py) to keep things interesting. + +Here's an [issue](https://github.com/opea-project/GenAIExamples/issues/763) +reference and +[Actions](https://github.com/opea-project/GenAIExamples/actions) reference too. +Might as well test [PRs](https://github.com/opea-project/GenAIExamples/pulls) +and [Projects](https://github.com/opea-project/GenAIExamples/projects) too. + +In release notes will find [88b3c1](https://github.com/opea-project/GenAIInfra/commit/88b3c108e5b5e3bfb6d9346ce2863b69f70cc2f1) commit references.