v0.1.0
arcadia-v0.1.0
Welcome to this new release! Our first release towards one-stop LLMOps!
Images built for this release:
kubeagi/arcadia:v0.1.0
kubeagi/data-processing:v0.1.0
Breaking Changes:
None
Feature summary 🚀 🚀 🚀
- Dataset management
- Manage data by integrating with object storage(s3), view excel file and add label to different data types
- Versioned dataset management with default datasource
ObjectStorageService
- Comprehensive data processing capabilities: data cleaning, text splitting (e.g., text segmentation, QA splitting using LLM)
- RDMA as an optional storage service that can speed up model/data download by about 10 times
- AI Knowledgebase
- Auto QA Embedding generation and indexing
- Chromadb as the vector store by default
- AI Model and Inference Service
- Manage the lifecycle of model and Inference Service
- Able to host llm and embedding models in Kubernetes via our
Worker
protocol: qwen, baichuan, vicuna, chatglm, bge-large-zh-v1.5, etc... - Able to integrate with powerful 3rd_party providers, like zhipuai, openai, etc...
- Model loading accelerations with rdma network protocols
- Support CPU & GPU Model Serving
- LLM Applications
- A powerful and flexible Application Runtime
- GPTs - initial implementation of LLM application orchestration capabilities. Manage and orchestrate Prompt, LLM/Retriever Chain nodes, and provide relevant example applications (based on streamlit)
- Provide LLMChain and RetrivalQAChain for common LLM applications and RAG applications
- Create/debug typical GPT like application using web console easily
- Support blocking and SSE mode chat
-
A all-in-one deployment helm chart
-
Documentation online doc link
Changelog
New Features
- b1bda3c: feat: Develop CRD Datasource (@zqq454224016)
- 8de4d5a: feat: a kubeagi yaml file to install arcadia with kubebb (@bjwswang)
- 82a1f43: feat: able to configure base url for openai kind of embedders/llms (@bjwswang)
- 933416c: feat: able to configure text splitter in local dataset management (@bjwswang)
- 5df65ad: feat: able to configure worker type when create and update (@bjwswang)
- 6ec48be: feat: able to get model list provided by Embedder and LLM (@bjwswang)
- 1113151: feat: able to load multiple files into vector store with arctl (@bjwswang)
- 04f4d1a: feat: able to offline worker instead of remove (@bjwswang)
- 0fc7121: feat: able to user worker's llm/embedding service as 3rd party provider (@bjwswang)
- 295710b: feat: able to view system pre-configured models (@bjwswang)
- 450f989: feat: add CRD Embeddings (@Lanture1064)
- 9a210ca: feat: add CRD LLM controller (@Lanture1064)
- 75e437a: feat: add CRD: KnowledgeBase and VectorStore (@Abirdcfly)
- 1823608: feat: add CRDs for App (@Abirdcfly)
- d966c36: feat: add LLM read & list api (@Lanture1064)
- fccd825: feat: add Model.gql (@dayuy)
- 8ec9adc: feat: add RDMA definition to datasource (@0xff-dev)
- c2f8d75: feat: add SDK to call the API (@)
- 73f20da: feat: add SSE invoke support for API server sample (@Lanture1064)
- 51f1416: feat: add a cli to load documents and chat with similarity search (@bjwswang)
- eb6100a: feat: add a new intermediate status OfflineInProgress (@bjwswang)
- 64bd42b: feat: add auto graphql sdk generator action (@Abirdcfly)
- a04cf90: feat: add baichuan-7b chatglm-6b in dashscope as llm (@Abirdcfly)
- 04b90a6: feat: add beijing_gjj_bot example (@Abirdcfly)
- d2c5b52: feat: add chart postgresql as arcadia dependency (@bjwswang)
- 9e90dea: feat: add checkModelService API & fix (@Lanture1064)
- b148b4e: feat: add chromadb (@0xff-dev)
- 2a8dbcd: feat: add dashscope as llm (@Abirdcfly)
- d4bdbd3: feat: add dataprocess helm chart (@Lanture1064)
- 5036518: feat: add dataset.gql and versioned_dataset.gql (@dayuy)
- 9c30084: feat: add datasource comments and update fields (@zqq454224016)
- ac7c619: feat: add document Q&A chat API server example (@Lanture1064)
- 536db67: feat: add embedder API (@zqq454224016)
- 8af5ab7: feat: add embedder and knowledgebase gql (@zqq454224016)
- 9e6d4fb: feat: add example for CRD Datasource test (@zqq454224016)
- 957057f: feat: add fastchat API server & controller helm chart (@Lanture1064)
- 99f70c5: feat: add internal url for endpoint (@bjwswang)
- bdf8a51: feat: add knowledgebase API and update comments (@zqq454224016)
- 9fd129b: feat: add knowledgebase application (@Abirdcfly)
- a821d92: feat: add kubeenv for data processing and lint with isort (@bjwswang)
- 7261fb5: feat: add llama2 in dashscope as llm (@Abirdcfly)
- f3b4b32: feat: add llm_config in data process config (@bjwswang)
- 6e98953: feat: add local worker as llm in app (@Abirdcfly)
- 7458335: feat: add make prepare-push (@Abirdcfly)
- b5d6307: feat: add model service CUD API (@Lanture1064)
- bc1df20: feat: add more chat api (@Abirdcfly)
- a25474a: feat: add more config for app (@Abirdcfly)
- 8c4fd2c: feat: add more detail log in chat api (@Abirdcfly)
- d41c1b3: feat: add parameter whether to enable oidc (@0xff-dev)
- 1166d27: feat: add prompt controller (@bjwswang)
- 9351150: feat: add rbac rating CLI as an example (@bjwswang)
- 850d2d1: feat: add spell test and fix existed misspellings (@Abirdcfly)
- 161a89f: feat: add swagger api doc (@Abirdcfly)
- e482d76: feat: add text-embedding in dashscope (@Abirdcfly)
- c3462f9: feat: add worker chart (@Lanture1064)
- 66f213a: feat: add worker graphql apis and optimize other graphql apis along with tiny changes to operator (@bjwswang)
- f4d1495: feat: add zhipuai embedding api & examples (@Lanture1064)
- 589f7eb: feat: breakpoint upload via MinIO (@dayuy)
- e886f54: feat: chat with llm now support sse (@Abirdcfly)
- a39191a: feat: check datasource bucket and object (@zqq454224016)
- 1139307: feat: create and delete buckets based on namespace changes (@0xff-dev)
- 35f464c: feat: create embedder&llm for worker based on model type (@bjwswang)
- 6bc9314: feat: dataset and versioneddataset impl (@0xff-dev)
- 89baee6: feat: dataset graphql api (@0xff-dev)
- ca63b19: feat: define CRD Dataset and VersionedDataset (@bjwswang)
- c694d5f: feat: define CRD LLM and update helm charts (@bjwswang)
- 40b3899: feat: deploy graphql-server (@zqq454224016)
- 009ac72: feat: develop model management API (@zqq454224016)
- 1404c53: feat: enable AI evaluator for Rating (@bjwswang)
- ba1dafa: feat: enable multiple gpus in worker (@bjwswang)
- 8b74fa1: feat: enable multiple gpus(sinle node) in runner fastchat (@bjwswang)
- 746251b: feat: enable sse-invoke in zhipuai and standarlize response body (@bjwswang)
- 4281700: feat: extract common funs in graphql server to pkg/common (@bjwswang)
- 0e489ea: feat: graphql base framework for bff server (@0xff-dev)
- c748a5c: feat: graphql-server supplement (@zqq454224016)
- ed7e262: feat: impl dataprocessing list api (@bjwswang)
- 1c491d6: feat: implement crd Model and define crd Worker (@bjwswang)
- 9c86805: feat: implement CRD Worker (@bjwswang)
- 2290b8f: feat: implement datasource management for arctl (@bjwswang)
- d064751: feat: init default controller config (@Abirdcfly)
- 91a670f: feat: initialize crds for llm service and prompt (@bjwswang)
- b4710dc: feat: knowledgebase support local worker embedder (@Abirdcfly)
- bd76236: feat: list datasources (@dayuy)
- 81cf823: feat: list datasources in arctl (@bjwswang)
- 3aeb625: feat: list llms and embedders (@0xff-dev)
- 4154535: feat: manage local dataset with arctl (@bjwswang)
- 45b1786: feat: optimize graphql-server for portal along with operator implementations (@bjwswang)
- e612dc0: feat: optimize model service apis (@bjwswang)
- 008a40a: feat: refactor code and modify the function for process detail info. (@)
- 3f567ff: feat: refactor the graphql generation structure (@0xff-dev)
- b135904: feat: remove knowledgebase should remove data in vectorstore (@Abirdcfly)
- 813660c: feat: retrieve files from Minio for data processing (@)
- 7702c09: feat: set creator value in apiserver (@Abirdcfly)
- fc354bc: feat: show skip handle file in knowledgebase status (@Abirdcfly)
- e437c5d: feat: support ZhiPuAI and update crd definitions (@bjwswang)
- 33d6a33: feat: support api prefix for graphql playground (@0xff-dev)
- b9bef79: feat: support for downloading model files via rdma (@0xff-dev)
- 340e454: feat: support for reading csv files with several rows (@0xff-dev)
- 42a56ca: feat: support for uploading folders in this current example (@dayuy)
- 8fb25ec: feat: support minio object tag for knowledgebase (@Abirdcfly)
- 5f2273a: feat: support oidc auth (@0xff-dev)
- 2d523e1: feat: update arcadia helm charts and add minio as system datasource for arcadia (@bjwswang)
- 4684ebf: feat: update datasource api (@zqq454224016)
- d25f122: feat: use complete model typed objec reference as input for worker creation (@bjwswang)
- acd3b86: feat: utlize worker's UID as the model registration name (@bjwswang)
- e170717: feat: versionedataset graphql api (@0xff-dev)
- c731b44: feat: when no userPrompt setting, we use default one (@Abirdcfly)
- 178f8a1: feat: worker support VLLM (@Lanture1064)
- f71511a: feat:Add Data Processing List, Add, Delete APIs, and Dockerfile (@)
- fdc315e: feat:add a 'namespace' parameter to the data processing API interface. (@)
- 20c51cf: feat:add data processing list、add and delete APIs for graphql (@)
- 962db15: feat:add parameters related to file processing progress in the details for graphql (@wangxinbiao)
- dd3cc71: feat:add progress functionality to the details page. (@wangxinbiao)
- 9e48732: feat:add the openai support and remove async in the most functions. (@)
- bc4987c: feat:check for existing names during creation. (@wangxinbiao)
- 9d32130: feat:data processing details for graphql (@)
- c3459a3: feat:generate Q&A pairs from text (@)
- 2a46f40: feat:handle dataset status (@)
Bug Fixes
- 85f88eb: fix: MapStr2Any will panic (@Abirdcfly)
- 828afa7: fix: Modify automatically generated files (@zqq454224016)
- 918e43d: fix: add create permision of subjectaccressreviews to arcadia service account (@bjwswang)
- 2a2c97c: fix: add http probe and profiling; update to correct arcadia image (@bjwswang)
- cf5774c: fix: add pkg into Dockerfile (@bjwswang)
- 1746655: fix: add unique id to different documents (@bjwswang)
- abcbdc4: fix: add unmarshall func to reponse (@bjwswang)
- e45ed46: fix: add version count and file count, update gql (@0xff-dev)
- 9321822: fix: application graph cant update llm name (@Abirdcfly)
- ea9801b: fix: bump arcadia chart version (@bjwswang)
- 2f82623: fix: change model's type to plural; add example to call worker apis (@bjwswang)
- 054f683: fix: chart release workflow and README (@bjwswang)
- 3ad9182: fix: check if the resource is in deletion (@0xff-dev)
- fa9fc6f: fix: config minio secure and skip https authentication (@0xff-dev)
- afba43f: fix: correctly display knowledgebase return status (@zqq454224016)
- d3d5782: fix: dataset is not configured field fields (@0xff-dev)
- 7c54031: fix: delete model files when model got deleted (@0xff-dev)
- abd7b73: fix: fixed an issue where services deployed via helm are dependent on each other and do not start (@0xff-dev)
- 7dd424a: fix: get more accurate emberder segmentation (@Abirdcfly)
- 0de13a5: fix: golangci-lint errors (@bjwswang)
- 33c7ccc: fix: graphql-server can't run (@0xff-dev)
- ec82d38: fix: ignore Create if condtions not zero (@bjwswang)
- 5394a52: fix: ignore already exist error in worker reconcile (@bjwswang)
- 631b339: fix: invalid Chart versions and images (@bjwswang)
- 14e6a27: fix: knowledgebase should reconcile fileGroups updates (@Abirdcfly)
- 11fe393: fix: knowledgebase should use versioneddataset (@Abirdcfly)
- 17db54e: fix: knowledgebase.spec.fileGroups[*].path use path in versioneddataset (@Abirdcfly)
- cc5f018: fix: knowledgebaseretriever update scoreThreshold default value from 0.7 to 0.3 (@Abirdcfly)
- ed07bcb: fix: minimize permissions to arcadia (@bjwswang)
- c9ea490: fix: missing resource namespace when update (@bjwswang)
- f8e55b7: fix: model add api field (@0xff-dev)
- 98c573b: fix: modify knowledgebase and model field (@zqq454224016)
- 96b9dbd: fix: optimize chromadb configurations (@bjwswang)
- c4190ca: fix: optimize llm checks (@bjwswang)
- cd8d3b9: fix: optimize rbac inqury promt (@bjwswang)
- 4a0b856: fix: page panic (@0xff-dev)
- c73150d: fix: portal & minio env values (@Lanture1064)
- e4331bd: fix: reconcile logic bugs in prompt and llm (@bjwswang)
- e13a2ca: fix: refactor dataset and versioneddataset (@0xff-dev)
- fa2d3b3: fix: remove client-go oidc cache (@0xff-dev)
- 66a98a9: fix: remove minio from arcadia charts which use kubebb componentplan;update docs (@bjwswang)
- d12a42e: fix: remove minio uploadid cache (@0xff-dev)
- 85b9996: fix: remove post-upgrade to arcadia;update graphql-server readme (@bjwswang)
- 7c67494: fix: rename bucket name, and add missing permission (@0xff-dev)
- 00d6794: fix: rename fileGroup.datasource to fileGroup.source (@Abirdcfly)
- acbf241: fix: return the total number of rows in csv file (@0xff-dev)
- cccb3f0: fix: set default vectorstore (@zqq454224016)
- 6ebb85c: fix: skip to fetch system models if the ns is system namespace (@bjwswang)
- 1c2dd59: fix: some github action failed due to refactor (@Abirdcfly)
- dbf173d: fix: supports synchronization of already uploaded data (@0xff-dev)
- 55516c2: fix: the data list is sorted in reverse order and supports returning data processing status (@0xff-dev)
- 9db49eb: fix: tiny changes to vectorstore chromadb (@bjwswang)
- 76d0ba8: fix: tiny changes to vectorstore chromadb (@bjwswang)
- 216f9ae: fix: trim prefix from the versioneddataset file path (@bjwswang)
- 7cdc3e5: fix: typo (@xxxxibo)
- 8bc531e: fix: unmilited page size not working in llm/embedder (@bjwswang)
- c3911c3: fix: update app graph api (@Abirdcfly)
- 311be84: fix: update graphql base on GRL_SDK_GENERATOR_IMAGE update (@Abirdcfly)
- 737b8e2: fix: update knowledgebase to display filedetail.status (@zqq454224016)
- 26c788e: fix: use 1 Hour to replace 1 minutes for long time reconcile (@Abirdcfly)
- 1aac456: fix: use ClusterIP for chromadb by default (@bjwswang)
- 13c33c2: fix: use RecursiveCharacter to replace TokenSplitter to skip net req (@Abirdcfly)
- 4631389: fix: use condnition.status as the model status (@bjwswang)
- e023df2: fix: use gin for minio url (@Abirdcfly)
- 6d2db81: fix: vectorstore retry too quickly (@Abirdcfly)
- 17832f0: fix: when no knowledgebase setting or is empty, we should ignore it (@Abirdcfly)
- bbec743: fix: worker's updatetime refreshed unexpectedly (@bjwswang)
- bff456c: fix:add PostgreSQL connection pool (@)
- e3ab143: fix:add the uniform file path prefix from Minio to the environment variable and use it. (@)
- 54af002: fix:bugs when check datasource;add hook weight to makesure oss created after minio (@bjwswang)
- cc220f5: fix:optimization of QA splitting (@wangxinbiao)
- 12f620b: fix:reslove merge (@)
Others
- 74c7ff1: #405 init postgresql data during pg start for 1st time (@nkwangleiGIT)
- 10728f3: Create README.md (@ggservice007)
- 3f1bb27: Fix doc links and move some docs to website (@nkwangleiGIT)
- bb7cb29: Fix issues and add doc about how to use streamlit (@nkwangleiGIT)
- 98bd3d1: Fix package issue and add default models (@nkwangleiGIT)
- 957b966: Fix some issues and add streamlit app samples (@nkwangleiGIT)
- 137c0fe: Fix sse support issue for streaming mode (@nkwangleiGIT)
- 822d8d6: Fix test failure (@nkwangleiGIT)
- 1b668f2: Merge branch 'main' into bjwswang (@bjwswang)
- f32efe9: Merge branch 'main' into dev (@bjwswang)
- 6e42f76: Merge branch 'main' into dev (@bjwswang)
- c957c0e: Merge branch 'main' into gql (@bjwswang)
- 37861fd: Merge branch 'main' into main (@bjwswang)
- ec04772: Merge remote-tracking branch 'upstream/main' into main (@nkwangleiGIT)
- b9e8abe: Move docs to website repo and fix LLM model data (@nkwangleiGIT)
- c28a35b: Refine code structure (@nkwangleiGIT)
- 9ee427a: Refine helm package and add installation docs (@nkwangleiGIT)
- 6d53213: Refine some code logic and add streamlkit data-app support (@nkwangleiGIT)
- 05c8bb9: Update Chart.yaml (@Lanture1064)
- 2c455b4: Update Chart.yaml (@Lanture1064)
- 7c951c5: Update doc link, menu and remove llm/secret from samples (@nkwangleiGIT)
- a91531b: Use shared LLM service for tests (@nkwangleiGIT)
- e7f3276: add load command for chat server example (@Lanture1064)
- 542a5fd: chore(helm): update arcadia portal menus (@Carrotzpc)
- 0430e9b: chore: Update auth gql & related pkg (@Lanture1064)
- ed0cde8: chore: add bucket and bucket_paht query parameter (@0xff-dev)
- 70b3758: chore: add data-process image build to workflow (@Lanture1064)
- 11c10ce: chore: add datasource check apis;print the graphql server Raw Request and raw response (@bjwswang)
- 14e5c59: chore: add some drawings (@bjwswang)
- 3413d74: chore: add validation rules to the versioneddataset field (@0xff-dev)
- 207c73a: chore: add version release action (@Abirdcfly)
- 863b06f: chore: bump arcadia chart version (@Abirdcfly)
- 31bafe1: chore: bump helm/chart-testing-action version (@Abirdcfly)
- 648bf6f: chore: bump image in chart arcadia to use the current tag (@bjwswang)
- 798c6ae: chore: bump k8s cluster version from 1.24.13 to 1.24.15 (@Abirdcfly)
- c8ea80d: chore: cache the total number of lines in the csv file (@0xff-dev)
- 0d7c818: chore: change default image and service name for fastchat (@bjwswang)
- 3eec8c2: chore: correct namespace controller rbac (@Abirdcfly)
- 0a75e2d: chore: disable dataprocess pod in example-test (@Abirdcfly)
- 8de1e45: chore: expose ingress settings for fastchat in arcadia (@bjwswang)
- 7e6c39e: chore: fix bugs in update/delete ms (@Lanture1064)
- 131df69: chore: fix embedder controller (@Lanture1064)
- b07181a: chore: fix goreportcard link and misspell reported by goreport (@Abirdcfly)
- 92697be: chore: fix update embedder bug (@Lanture1064)
- 87d578a: chore: increase default proxy-body-size for nginx ingress in minio (@bjwswang)
- c220249: chore: invalid syntax in model.gql (@bjwswang)
- 413a91e: chore: lint data-process code with pylint and optimize the dockerfile (@bjwswang)
- e21516c: chore: make sure embedding and chat use same LLM (@bjwswang)
- 78b1c4a: chore: model support returns a list of document files (@0xff-dev)
- fb4cee5: chore: modify the file filter structure (@0xff-dev)
- fc2d073: chore: optimize graphql-server chart (@0xff-dev)
- e554a9f: chore: remove the bff-sdk directory & add the command gql-sdk-upgrade to the Makefile (@dayuy)
- c5b0929: chore: remove unused llms (@bjwswang)
- b2de809: chore: typo in graphql gql fil (@bjwswang)
- 4a15b88: chore: typos in kubeagi.yaml (@bjwswang)
- a211d9a: chore: update doc and change the arguments (@bjwswang)
- 2754116: chore: update docs and set default image to specific tag (@bjwswang)
- 4589e6f: chore: update github action && add docker go proxy auto config (@Abirdcfly)
- aa8009e: chore: update some default value (@Abirdcfly)
- b69b195: chore: update worker's dockerfile and use github action to build images (@bjwswang)
- 679ad16: chore: use a more simplified reason Running instead of WorkingRunnig (@bjwswang)
- a7d1d54: chore: use golang errors replace k8s.io/apimachinery/pkg/util/errors (@Abirdcfly)
- 3aaf391: chore: use kubeagi as the base repository (@bjwswang)
- 7bb5b60: chore: use langchaingo/chroma vectorstore and graduate our chromadb implementations (@bjwswang)
- 415d607: chore: use same common spec in worker's llm/worker (@bjwswang)
- cbd517d: cleanup: remove useless crd laboratory (@Abirdcfly)
- d5bd6ac: doc: update graphql-server readme (@Abirdcfly)
- bdbac58: docs: add some assets for dataset and local llm (@bjwswang)
- d9b6641: docs: schedule a kind cluster with GPU enabled (@bjwswang)
- 283a11f: docs: update README (@bjwswang)
- 7ef54d5: docs: update README.md (@bjwswang)
- e5106bc: docs: update document (@bjwswang)
- 8c021bd: refactor: CRD datasource to fit product design (@bjwswang)
- 8e4be8a: refactor: Extract LLM validate logic (@Lanture1064)
- 11ff7f1: refactor: definition of versioned dataset (@bjwswang)
- 13e9ce3: refactor: minio (@0xff-dev)
- 93e48a4: refactor: optimize dataprocessing config (@bjwswang)
- b23d6f9: refactor: remove spec.input and spec.output of app node crd (@Abirdcfly)
- 0db5df8: refactor: rename graphql-server as apiserver (@bjwswang)
- 7147b96: refactor: use DeleteCommonInput to replace other structures with the same fields but different names (@Abirdcfly)
- 047f4ff: refactor: use getClientFromCtx to simply code (@Abirdcfly)
- 593662c: update (@Lanture1064)
Thanks to our Contributors!
Thank you to everyone who contributed to v0.1.0! ❤️
And thank you very much to everyone else not listed here who contributed in other ways like filing issues, giving feedback, testing fixes, helping users in slack, etc. 🙏