向量化知识库 @param knowledge_id: 知识库id @param model_id 向量模型 :return: None
(knowledge_id, model_id)
| 106 | |
| 107 | @celery_app.task(base=QueueOnce, once={"keys": ["knowledge_id"]}, name="celery:embedding_by_knowledge") |
| 108 | def embedding_by_knowledge(knowledge_id, model_id): |
| 109 | """ |
| 110 | 向量化知识库 |
| 111 | @param knowledge_id: 知识库id |
| 112 | @param model_id 向量模型 |
| 113 | :return: None |
| 114 | """ |
| 115 | maxkb_logger.info(_("Start--->Vectorized knowledge: {knowledge_id}").format(knowledge_id=knowledge_id)) |
| 116 | try: |
| 117 | ListenerManagement.delete_embedding_by_knowledge(knowledge_id) |
| 118 | drop_knowledge_index(knowledge_id=knowledge_id) |
| 119 | document_list = QuerySet(Document).filter(knowledge_id=knowledge_id) |
| 120 | maxkb_logger.info( |
| 121 | _("Knowledge documentation: {document_names}").format( |
| 122 | document_names=", ".join([d.name for d in document_list]) |
| 123 | ) |
| 124 | ) |
| 125 | for document in document_list: |
| 126 | try: |
| 127 | embedding_by_document.delay(document.id, model_id) |
| 128 | except Exception as e: |
| 129 | pass |
| 130 | except Exception as e: |
| 131 | maxkb_logger.error( |
| 132 | _("Vectorized knowledge: {knowledge_id} error {error} {traceback}").format( |
| 133 | knowledge_id=knowledge_id, error=str(e), traceback=traceback.format_exc() |
| 134 | ) |
| 135 | ) |
| 136 | finally: |
| 137 | maxkb_logger.info(_("End--->Vectorized knowledge: {knowledge_id}").format(knowledge_id=knowledge_id)) |
| 138 | |
| 139 | |
| 140 | def embedding_by_problem(args, model_id): |
nothing calls this directly
no test coverage detected