Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add EdgeCraftRag as a GenAIExample #1072

Merged
merged 54 commits into from
Nov 8, 2024
Merged

Conversation

Yongbozzz
Copy link
Collaborator

@Yongbozzz Yongbozzz commented Nov 5, 2024

Description

Edge Craft RAG (EC-RAG) is a customizable, tunable and production-ready Retrieval-Augmented Generation system for edge solutions. It is designed to curate the RAG pipeline to meet hardware requirements at edge with guaranteed quality and performance.

Issues

N/A

Type of change

List the type of change like below. Please delete options that are not relevant.

  • New feature (non-breaking change which adds new functionality)

Dependencies

langchain-core, llama-index

Tests

image

Related RFC

https://opea-project.github.io/latest/community/rfcs/24-08-21-GenAIExample-002-Edge_Craft_RAG.html

Copy link
Collaborator

@ftian1 ftian1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks like the edgecraftrag folder contains an entire solution of rag server, from the component to the pipeline construction, which is overlapped with OPEA design. OPEA design philosophy is trying to abstract those common component for enterprise use and the pipeline construction is done in OPEA mega service. I am not sure if there are values to introduce another pipeline implementation. and you also invokes GenAIComps.core.register_microservice() API in your implementation, which shouldn't happen. we only register OPEA microservice for those common components and should put under GenAIComps repo but not here.

@Yongbozzz Yongbozzz force-pushed the ecrag_v1 branch 2 times, most recently from 61cf9bd to 58865a2 Compare November 5, 2024 07:13
@myqi
Copy link
Collaborator

myqi commented Nov 5, 2024

looks like the edgecraftrag folder contains an entire solution of rag server, from the component to the pipeline construction, which is overlapped with OPEA design. OPEA design philosophy is trying to abstract those common component for enterprise use and the pipeline construction is done in OPEA mega service. I am not sure if there are values to introduce another pipeline implementation. and you also invokes GenAIComps.core.register_microservice() API in your implementation, which shouldn't happen. we only register OPEA microservice for those common components and should put under GenAIComps repo but not here.

@ftian1 Thanks for your comment, as mentioned in the RFC, the goal of this example is to make a RAG solution specifically for edge use cases, which includes these characteristics:

  • Less microservices are needed in a single node on-prem system.
  • Intel Core CPU, NPU, iGPU, dGPU will be selectively used in a single pipeline.

Thus, we are building the pipeline as a solution for now to 1) eliminate some of the microservices setup 2) implement each of the stages in the pipeline to meet edge specific needs. Moving on, we are happy to contribute these implementations to GenAIComps.

We are showcasing that OPEA can integrate with existing solutions by just replacing some of the components with OPEA microservices (Like LLM in this case). With that, I don't think it's an overlap for the implementation. We are NOT trying to change the way of building the pipeline in OPEA.

As to the register_microservice() API, we're okay to use another API serving framework and will update soon.

ZePan110 and others added 11 commits November 5, 2024 15:35
Signed-off-by: ZePan110 <ze.pan@intel.com>
Signed-off-by: chensuyue <suyue.chen@intel.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
…an up issue (opea-project#1068)

Signed-off-by: chensuyue <suyue.chen@intel.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Signed-off-by: Zhu, Yongbo <yongbo.zhu@intel.com>
Signed-off-by: Zhu, Yongbo <yongbo.zhu@intel.com>
Signed-off-by: chensuyue <suyue.chen@intel.com>
Signed-off-by: Zhu, Yongbo <yongbo.zhu@intel.com>
Signed-off-by: ZePan110 <ze.pan@intel.com>
Signed-off-by: chensuyue <suyue.chen@intel.com>
Signed-off-by: Wang, Xigui <xigui.wang@intel.com>
@chensuyue chensuyue added this to the v1.1 milestone Nov 7, 2024
@lvliang-intel
Copy link
Collaborator

@Yongbozzz,
Please fix the code spell issue.
Uploading image.png…

@myqi
Copy link
Collaborator

myqi commented Nov 7, 2024

@Yongbozzz,
Please fix the code spell issue.
Uploading image.png…

EdgeCraftRAG/edgecraftrag/api_schema.py:9: ModelIn ==> modeling, model in

ModelIn is a type, can this be ignored?

ZePan110 and others added 19 commits November 8, 2024 11:16
Signed-off-by: ZePan110 <ze.pan@intel.com>
Signed-off-by: chensuyue <suyue.chen@intel.com>
Signed-off-by: Zhu, Yongbo <yongbo.zhu@intel.com>
Signed-off-by: Zhu, Yongbo <yongbo.zhu@intel.com>
Signed-off-by: Zhu, Yongbo <yongbo.zhu@intel.com>
Signed-off-by: Zhu, Yongbo <yongbo.zhu@intel.com>
Signed-off-by: Zhu, Yongbo <yongbo.zhu@intel.com>
Signed-off-by: Zhu, Yongbo <yongbo.zhu@intel.com>
Signed-off-by: Zhu, Yongbo <yongbo.zhu@intel.com>
EdgeCraftRAG/edgecraftrag/README.md Outdated Show resolved Hide resolved
@ftian1
Copy link
Collaborator

ftian1 commented Nov 8, 2024

I am ok with the overall design. pls fix the comments provided by suyue

@Yongbozzz
Copy link
Collaborator Author

Yongbozzz commented Nov 8, 2024

I am ok with the overall design. pls fix the comments provided by suyue

Hi Tian Feng, I have resolve the comments provided by suyue and will add e2e test after merge (aligned with suyue), thanks

Signed-off-by: Zhu, Yongbo <yongbo.zhu@intel.com>
@lvliang-intel lvliang-intel merged commit c9088eb into opea-project:main Nov 8, 2024
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants