Quellcode durchsuchen

fix dataset segment update api not effect issue (#4151)

tags/0.6.7
Jyong vor 1 Jahr
Ursprung
Commit
591b993685
Es ist kein Account mit der E-Mail-Adresse des Committers verbunden
1 geänderte Dateien mit 27 neuen und 2 gelöschten Zeilen
  1. 27
    2
      api/services/dataset_service.py

+ 27
- 2
api/services/dataset_service.py Datei anzeigen

from tasks.clean_notion_document_task import clean_notion_document_task from tasks.clean_notion_document_task import clean_notion_document_task
from tasks.deal_dataset_vector_index_task import deal_dataset_vector_index_task from tasks.deal_dataset_vector_index_task import deal_dataset_vector_index_task
from tasks.delete_segment_from_index_task import delete_segment_from_index_task from tasks.delete_segment_from_index_task import delete_segment_from_index_task
from tasks.disable_segment_from_index_task import disable_segment_from_index_task
from tasks.document_indexing_task import document_indexing_task from tasks.document_indexing_task import document_indexing_task
from tasks.document_indexing_update_task import document_indexing_update_task from tasks.document_indexing_update_task import document_indexing_update_task
from tasks.duplicate_document_indexing_task import duplicate_document_indexing_task from tasks.duplicate_document_indexing_task import duplicate_document_indexing_task
cache_result = redis_client.get(indexing_cache_key) cache_result = redis_client.get(indexing_cache_key)
if cache_result is not None: if cache_result is not None:
raise ValueError("Segment is indexing, please try again later") raise ValueError("Segment is indexing, please try again later")
if 'enabled' in args and args['enabled'] is not None:
action = args['enabled']
if segment.enabled != action:
if not action:
segment.enabled = action
segment.disabled_at = datetime.datetime.now(datetime.timezone.utc).replace(tzinfo=None)
segment.disabled_by = current_user.id
db.session.add(segment)
db.session.commit()
# Set cache to prevent indexing the same segment multiple times
redis_client.setex(indexing_cache_key, 600, 1)
disable_segment_from_index_task.delay(segment.id)
return segment
if not segment.enabled:
if 'enabled' in args and args['enabled'] is not None:
if not args['enabled']:
raise ValueError("Can't update disabled segment")
else:
raise ValueError("Can't update disabled segment")
try: try:
content = args['content'] content = args['content']
if segment.content == content: if segment.content == content:
segment.answer = args['answer'] segment.answer = args['answer']
if 'keywords' in args and args['keywords']: if 'keywords' in args and args['keywords']:
segment.keywords = args['keywords'] segment.keywords = args['keywords']
if 'enabled' in args and args['enabled'] is not None:
segment.enabled = args['enabled']
segment.enabled = True
segment.disabled_at = None
segment.disabled_by = None
db.session.add(segment) db.session.add(segment)
db.session.commit() db.session.commit()
# update segment index task # update segment index task
segment.completed_at = datetime.datetime.now(datetime.timezone.utc).replace(tzinfo=None) segment.completed_at = datetime.datetime.now(datetime.timezone.utc).replace(tzinfo=None)
segment.updated_by = current_user.id segment.updated_by = current_user.id
segment.updated_at = datetime.datetime.now(datetime.timezone.utc).replace(tzinfo=None) segment.updated_at = datetime.datetime.now(datetime.timezone.utc).replace(tzinfo=None)
segment.enabled = True
segment.disabled_at = None
segment.disabled_by = None
if document.doc_form == 'qa_model': if document.doc_form == 'qa_model':
segment.answer = args['answer'] segment.answer = args['answer']
db.session.add(segment) db.session.add(segment)
db.session.commit() db.session.commit()
# update segment vector index # update segment vector index
VectorService.update_segment_vector(args['keywords'], segment, dataset) VectorService.update_segment_vector(args['keywords'], segment, dataset)

except Exception as e: except Exception as e:
logging.exception("update segment index failed") logging.exception("update segment index failed")
segment.enabled = False segment.enabled = False

Laden…
Abbrechen
Speichern