2025-05-29 19:52:34 +08:00
|
|
|
# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
|
|
|
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
|
|
2025-05-28 14:13:46 +08:00
|
|
|
from src.config.tools import SELECTED_RAG_PROVIDER, RAGProvider
|
|
|
|
|
from src.rag.ragflow import RAGFlowProvider
|
|
|
|
|
from src.rag.retriever import Retriever
|
2025-08-17 22:57:23 +08:00
|
|
|
from src.rag.vikingdb_knowledge_base import VikingDBKnowledgeBaseProvider
|
2025-09-12 22:20:55 +08:00
|
|
|
from src.rag.milvus import MilvusProvider
|
2025-05-28 14:13:46 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
def build_retriever() -> Retriever | None:
|
|
|
|
|
if SELECTED_RAG_PROVIDER == RAGProvider.RAGFLOW.value:
|
|
|
|
|
return RAGFlowProvider()
|
2025-07-03 10:06:42 +08:00
|
|
|
elif SELECTED_RAG_PROVIDER == RAGProvider.VIKINGDB_KNOWLEDGE_BASE.value:
|
|
|
|
|
return VikingDBKnowledgeBaseProvider()
|
2025-09-12 22:20:55 +08:00
|
|
|
elif SELECTED_RAG_PROVIDER == RAGProvider.MILVUS.value:
|
|
|
|
|
return MilvusProvider()
|
2025-05-28 14:13:46 +08:00
|
|
|
elif SELECTED_RAG_PROVIDER:
|
|
|
|
|
raise ValueError(f"Unsupported RAG provider: {SELECTED_RAG_PROVIDER}")
|
|
|
|
|
return None
|