| 81 | |
| 82 | |
| 83 | class ProblemParagraphManage: |
| 84 | def __init__(self, problem_paragraph_object_list: List[ProblemParagraphObject], knowledge_id): |
| 85 | self.knowledge_id = knowledge_id |
| 86 | self.problem_paragraph_object_list = problem_paragraph_object_list |
| 87 | |
| 88 | def to_problem_model_list(self): |
| 89 | problem_list = [item.problem_content for item in self.problem_paragraph_object_list] |
| 90 | exists_problem_list = [] |
| 91 | if len(self.problem_paragraph_object_list) > 0: |
| 92 | # 查询到已存在的问题列表 |
| 93 | exists_problem_list = QuerySet(Problem).filter(knowledge_id=self.knowledge_id, |
| 94 | content__in=problem_list).all() |
| 95 | problem_content_dict = {} |
| 96 | problem_model_list = [ |
| 97 | or_get( |
| 98 | exists_problem_list, |
| 99 | problemParagraphObject.problem_content, |
| 100 | problemParagraphObject.knowledge_id, |
| 101 | problemParagraphObject.document_id, |
| 102 | problemParagraphObject.paragraph_id, problem_content_dict |
| 103 | ) for problemParagraphObject in self.problem_paragraph_object_list] |
| 104 | |
| 105 | problem_paragraph_mapping_list = [ |
| 106 | ProblemParagraphMapping( |
| 107 | id=uuid.uuid7(), |
| 108 | document_id=document_id, |
| 109 | problem_id=problem_model.id, |
| 110 | paragraph_id=paragraph_id, |
| 111 | knowledge_id=self.knowledge_id |
| 112 | ) for problem_model, document_id, paragraph_id in problem_model_list] |
| 113 | |
| 114 | result = [ |
| 115 | problem_model for problem_model, is_create in problem_content_dict.values() if is_create |
| 116 | ], problem_paragraph_mapping_list |
| 117 | return result |
| 118 | |
| 119 | |
| 120 | def get_embedding_model_by_knowledge_id_list(knowledge_id_list: List): |
no outgoing calls
no test coverage detected