Feat: Cross-Language Search for RAGFlow (#469)

* cross-language search

* test passed
This commit is contained in:
Zhonghao Liu
2025-07-24 16:39:02 +08:00
committed by GitHub
parent 660395485c
commit f92bf0ca22
4 changed files with 20 additions and 0 deletions

View File

@@ -4,6 +4,7 @@
import os
import requests
from src.rag.retriever import Chunk, Document, Resource, Retriever
from typing import List, Optional
from urllib.parse import urlparse
@@ -15,6 +16,7 @@ class RAGFlowProvider(Retriever):
api_url: str
api_key: str
page_size: int = 10
cross_languages: Optional[List[str]] = None
def __init__(self):
api_url = os.getenv("RAGFLOW_API_URL")
@@ -31,6 +33,11 @@ class RAGFlowProvider(Retriever):
if page_size:
self.page_size = int(page_size)
self.cross_languages = None
cross_languages = os.getenv("RAGFLOW_CROSS_LANGUAGES")
if cross_languages:
self.cross_languages = cross_languages.split(",")
def query_relevant_documents(
self, query: str, resources: list[Resource] = []
) -> list[Document]:
@@ -55,6 +62,9 @@ class RAGFlowProvider(Retriever):
"page_size": self.page_size,
}
if self.cross_languages:
payload["cross_languages"] = self.cross_languages
response = requests.post(
f"{self.api_url}/api/v1/retrieval", headers=headers, json=payload
)