diff --git a/backend/apps/chat/task/llm.py b/backend/apps/chat/task/llm.py index 0ed0b78a..39263b7d 100644 --- a/backend/apps/chat/task/llm.py +++ b/backend/apps/chat/task/llm.py @@ -220,7 +220,8 @@ class LLMService: self.chat_question.data = orjson.dumps(data.get('data')).decode() analysis_msg: List[Union[BaseMessage, dict[str, Any]]] = [] - self.chat_question.terminologies = get_terminology_template(self.session, self.chat_question.question, self.current_user.oid) + self.chat_question.terminologies = get_terminology_template(self.session, self.chat_question.question, + self.current_user.oid) analysis_msg.append(SystemMessage(content=self.chat_question.analysis_sys_question())) analysis_msg.append(HumanMessage(content=self.chat_question.analysis_user_question())) @@ -498,6 +499,10 @@ class LLMService: answer=orjson.dumps({'content': full_text}).decode(), datasource=_datasource, engine_type=_engine_type) + + self.chat_question.terminologies = get_terminology_template(self.session, self.chat_question.question, + self.ds.oid if isinstance(self.ds, + CoreDatasource) else 1) self.init_messages() if _error: @@ -894,7 +899,10 @@ class LLMService: def run_task(self, in_chat: bool = True): try: - self.chat_question.terminologies = get_terminology_template(self.session, self.chat_question.question, self.current_user.oid) + if self.ds: + self.chat_question.terminologies = get_terminology_template(self.session, self.chat_question.question, + self.ds.oid if isinstance(self.ds, + CoreDatasource) else 1) self.init_messages() # return id diff --git a/backend/apps/terminology/curd/terminology.py b/backend/apps/terminology/curd/terminology.py index ff7f99d0..be6f69be 100644 --- a/backend/apps/terminology/curd/terminology.py +++ b/backend/apps/terminology/curd/terminology.py @@ -418,7 +418,9 @@ def to_xml_string(_dict: list[dict] | dict, root: str = 'terminologies') -> str: return pretty_xml -def get_terminology_template(session: SessionDep, question: str, oid: int) -> str: +def get_terminology_template(session: SessionDep, question: str, oid: Optional[int] = 1) -> str: + if not oid: + oid = 1 _results = select_terminology_by_word(session, question, oid) if _results and len(_results) > 0: terminology = to_xml_string(_results)