|
|
|
|
|
|
|
|
from api.db import LLMType, ParserType |
|
|
from api.db import LLMType, ParserType |
|
|
from api.db.services.document_service import DocumentService |
|
|
from api.db.services.document_service import DocumentService |
|
|
from api.db.services.llm_service import LLMBundle |
|
|
from api.db.services.llm_service import LLMBundle |
|
|
from api.db.services.task_service import TaskService |
|
|
|
|
|
|
|
|
from api.db.services.task_service import TaskService, has_canceled |
|
|
from api.db.services.file2document_service import File2DocumentService |
|
|
from api.db.services.file2document_service import File2DocumentService |
|
|
from api import settings |
|
|
from api import settings |
|
|
from api.versions import get_ragflow_version |
|
|
from api.versions import get_ragflow_version |
|
|
|
|
|
|
|
|
try: |
|
|
try: |
|
|
if prog is not None and prog < 0: |
|
|
if prog is not None and prog < 0: |
|
|
msg = "[ERROR]" + msg |
|
|
msg = "[ERROR]" + msg |
|
|
cancel = TaskService.do_cancel(task_id) |
|
|
|
|
|
|
|
|
cancel = has_canceled(task_id) |
|
|
|
|
|
|
|
|
if cancel: |
|
|
if cancel: |
|
|
msg += " [Canceled]" |
|
|
msg += " [Canceled]" |
|
|
|
|
|
|
|
|
canceled = False |
|
|
canceled = False |
|
|
task = TaskService.get_task(msg["id"]) |
|
|
task = TaskService.get_task(msg["id"]) |
|
|
if task: |
|
|
if task: |
|
|
canceled = DocumentService.do_cancel(task["doc_id"]) |
|
|
|
|
|
|
|
|
canceled = has_canceled(task["id"]) |
|
|
if not task or canceled: |
|
|
if not task or canceled: |
|
|
state = "is unknown" if not task else "has been cancelled" |
|
|
state = "is unknown" if not task else "has been cancelled" |
|
|
FAILED_TASKS += 1 |
|
|
FAILED_TASKS += 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
docs_to_tag = [] |
|
|
docs_to_tag = [] |
|
|
for d in docs: |
|
|
for d in docs: |
|
|
task_canceled = DocumentService.do_cancel(task["doc_id"]) |
|
|
|
|
|
|
|
|
task_canceled = has_canceled(task["id"]) |
|
|
if task_canceled: |
|
|
if task_canceled: |
|
|
progress_callback(-1, msg="Task has been canceled.") |
|
|
progress_callback(-1, msg="Task has been canceled.") |
|
|
return |
|
|
return |
|
|
|
|
|
|
|
|
progress_callback(-1, msg=error_message) |
|
|
progress_callback(-1, msg=error_message) |
|
|
raise Exception(error_message) |
|
|
raise Exception(error_message) |
|
|
|
|
|
|
|
|
task_canceled = DocumentService.do_cancel(task_doc_id) |
|
|
|
|
|
|
|
|
task_canceled = has_canceled(task_id) |
|
|
if task_canceled: |
|
|
if task_canceled: |
|
|
progress_callback(-1, msg="Task has been canceled.") |
|
|
progress_callback(-1, msg="Task has been canceled.") |
|
|
return |
|
|
return |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for b in range(0, len(chunks), DOC_BULK_SIZE): |
|
|
for b in range(0, len(chunks), DOC_BULK_SIZE): |
|
|
doc_store_result = await trio.to_thread.run_sync(lambda: settings.docStoreConn.insert(chunks[b:b + DOC_BULK_SIZE], search.index_name(task_tenant_id), task_dataset_id)) |
|
|
doc_store_result = await trio.to_thread.run_sync(lambda: settings.docStoreConn.insert(chunks[b:b + DOC_BULK_SIZE], search.index_name(task_tenant_id), task_dataset_id)) |
|
|
task_canceled = DocumentService.do_cancel(task_doc_id) |
|
|
|
|
|
|
|
|
task_canceled = has_canceled(task_id) |
|
|
if task_canceled: |
|
|
if task_canceled: |
|
|
progress_callback(-1, msg="Task has been canceled.") |
|
|
progress_callback(-1, msg="Task has been canceled.") |
|
|
return |
|
|
return |