Feat: support cross-lang search. (#7557)

### What problem does this PR solve?

#7376
#4503
#5710 
#7470

### Type of change

- [x] New Feature (non-breaking change which adds functionality)
This commit is contained in:
Kevin Hu
2025-05-09 15:32:02 +08:00
committed by GitHub
parent 2fe332d01d
commit 2ccec93d71
4 changed files with 65 additions and 3 deletions

View File

@ -36,7 +36,8 @@ from api.utils import current_timestamp, datetime_format
from rag.app.resume import forbidden_select_fields4resume
from rag.app.tag import label_question
from rag.nlp.search import index_name
from rag.prompts import chunks_format, citation_prompt, full_question, kb_prompt, keyword_extraction, llm_id2llm_type, message_fit_in
from rag.prompts import chunks_format, citation_prompt, full_question, kb_prompt, keyword_extraction, llm_id2llm_type, message_fit_in, \
cross_languages
from rag.utils import num_tokens_from_string, rmSpace
from rag.utils.tavily_conn import Tavily
@ -214,6 +215,9 @@ def chat(dialog, messages, stream=True, **kwargs):
else:
questions = questions[-1:]
if prompt_config.get("cross_languages"):
questions = [cross_languages(dialog.tenant_id, dialog.llm_id, questions[0], prompt_config["cross_languages"])]
refine_question_ts = timer()
rerank_mdl = None

View File

@ -131,7 +131,7 @@ class DocumentService(CommonService):
if types:
query = query.where(cls.model.type.in_(types))
return query.scalar() or 0
return int(query.scalar()) or 0
@classmethod
@DB.connection_context()