|
|
|
@@ -3,7 +3,7 @@ import random |
|
|
|
from datetime import datetime |
|
|
|
from typing import List |
|
|
|
|
|
|
|
from flask import request |
|
|
|
from flask import request, current_app |
|
|
|
from flask_login import current_user |
|
|
|
from core.login.login import login_required |
|
|
|
from flask_restful import Resource, fields, marshal, marshal_with, reqparse |
|
|
|
@@ -275,7 +275,8 @@ class DatasetDocumentListApi(Resource): |
|
|
|
parser.add_argument('duplicate', type=bool, nullable=False, location='json') |
|
|
|
parser.add_argument('original_document_id', type=str, required=False, location='json') |
|
|
|
parser.add_argument('doc_form', type=str, default='text_model', required=False, nullable=False, location='json') |
|
|
|
parser.add_argument('doc_language', type=str, default='English', required=False, nullable=False, location='json') |
|
|
|
parser.add_argument('doc_language', type=str, default='English', required=False, nullable=False, |
|
|
|
location='json') |
|
|
|
args = parser.parse_args() |
|
|
|
|
|
|
|
if not dataset.indexing_technique and not args['indexing_technique']: |
|
|
|
@@ -335,7 +336,8 @@ class DatasetInitApi(Resource): |
|
|
|
parser.add_argument('data_source', type=dict, required=True, nullable=True, location='json') |
|
|
|
parser.add_argument('process_rule', type=dict, required=True, nullable=True, location='json') |
|
|
|
parser.add_argument('doc_form', type=str, default='text_model', required=False, nullable=False, location='json') |
|
|
|
parser.add_argument('doc_language', type=str, default='English', required=False, nullable=False, location='json') |
|
|
|
parser.add_argument('doc_language', type=str, default='English', required=False, nullable=False, |
|
|
|
location='json') |
|
|
|
args = parser.parse_args() |
|
|
|
|
|
|
|
try: |
|
|
|
@@ -483,7 +485,7 @@ class DocumentBatchIndexingEstimateApi(DocumentResource): |
|
|
|
indexing_runner = IndexingRunner() |
|
|
|
try: |
|
|
|
response = indexing_runner.file_indexing_estimate(current_user.current_tenant_id, file_details, |
|
|
|
data_process_rule_dict, None, dataset_id) |
|
|
|
data_process_rule_dict, None, dataset_id) |
|
|
|
except LLMBadRequestError: |
|
|
|
raise ProviderNotInitializeError( |
|
|
|
f"No Embedding Model available. Please configure a valid provider " |
|
|
|
@@ -855,6 +857,14 @@ class DocumentStatusApi(DocumentResource): |
|
|
|
if not document.archived: |
|
|
|
raise InvalidActionError('Document is not archived.') |
|
|
|
|
|
|
|
# check document limit |
|
|
|
if current_app.config['EDITION'] == 'CLOUD': |
|
|
|
documents_count = DocumentService.get_tenant_documents_count() |
|
|
|
total_count = documents_count + 1 |
|
|
|
tenant_document_count = int(current_app.config['TENANT_DOCUMENT_COUNT']) |
|
|
|
if total_count > tenant_document_count: |
|
|
|
raise ValueError(f"All your documents have overed limit {tenant_document_count}.") |
|
|
|
|
|
|
|
document.archived = False |
|
|
|
document.archived_at = None |
|
|
|
document.archived_by = None |
|
|
|
@@ -872,6 +882,10 @@ class DocumentStatusApi(DocumentResource): |
|
|
|
|
|
|
|
|
|
|
|
class DocumentPauseApi(DocumentResource): |
|
|
|
|
|
|
|
@setup_required |
|
|
|
@login_required |
|
|
|
@account_initialization_required |
|
|
|
def patch(self, dataset_id, document_id): |
|
|
|
"""pause document.""" |
|
|
|
dataset_id = str(dataset_id) |
|
|
|
@@ -901,6 +915,9 @@ class DocumentPauseApi(DocumentResource): |
|
|
|
|
|
|
|
|
|
|
|
class DocumentRecoverApi(DocumentResource): |
|
|
|
@setup_required |
|
|
|
@login_required |
|
|
|
@account_initialization_required |
|
|
|
def patch(self, dataset_id, document_id): |
|
|
|
"""recover document.""" |
|
|
|
dataset_id = str(dataset_id) |
|
|
|
@@ -926,6 +943,21 @@ class DocumentRecoverApi(DocumentResource): |
|
|
|
return {'result': 'success'}, 204 |
|
|
|
|
|
|
|
|
|
|
|
class DocumentLimitApi(DocumentResource): |
|
|
|
@setup_required |
|
|
|
@login_required |
|
|
|
@account_initialization_required |
|
|
|
def get(self): |
|
|
|
"""get document limit""" |
|
|
|
documents_count = DocumentService.get_tenant_documents_count() |
|
|
|
tenant_document_count = int(current_app.config['TENANT_DOCUMENT_COUNT']) |
|
|
|
|
|
|
|
return { |
|
|
|
'documents_count': documents_count, |
|
|
|
'documents_limit': tenant_document_count |
|
|
|
}, 200 |
|
|
|
|
|
|
|
|
|
|
|
api.add_resource(GetProcessRuleApi, '/datasets/process-rule') |
|
|
|
api.add_resource(DatasetDocumentListApi, |
|
|
|
'/datasets/<uuid:dataset_id>/documents') |
|
|
|
@@ -951,3 +983,4 @@ api.add_resource(DocumentStatusApi, |
|
|
|
'/datasets/<uuid:dataset_id>/documents/<uuid:document_id>/status/<string:action>') |
|
|
|
api.add_resource(DocumentPauseApi, '/datasets/<uuid:dataset_id>/documents/<uuid:document_id>/processing/pause') |
|
|
|
api.add_resource(DocumentRecoverApi, '/datasets/<uuid:dataset_id>/documents/<uuid:document_id>/processing/resume') |
|
|
|
api.add_resource(DocumentLimitApi, '/datasets/limit') |