Browse Source

fix: keywords (#7357)

tags/0.7.1
crazywoola 1 year ago
parent
commit
4d4af00399
No account linked to committer's email address
2 changed files with 16 additions and 10 deletions
  1. 11
    8
      api/controllers/service_api/dataset/segment.py
  2. 5
    2
      api/services/dataset_service.py

+ 11
- 8
api/controllers/service_api/dataset/segment.py View File

raise ProviderNotInitializeError( raise ProviderNotInitializeError(
"No Embedding Model available. Please configure a valid provider " "No Embedding Model available. Please configure a valid provider "
"in the Settings -> Model Provider.") "in the Settings -> Model Provider.")
except ProviderTokenNotInitError as ex:
except ProviderTokenNotInitError as ex:
raise ProviderNotInitializeError(ex.description) raise ProviderNotInitializeError(ex.description)
# validate args # validate args
parser = reqparse.RequestParser() parser = reqparse.RequestParser()
parser.add_argument('segments', type=list, required=False, nullable=True, location='json') parser.add_argument('segments', type=list, required=False, nullable=True, location='json')
args = parser.parse_args() args = parser.parse_args()
for args_item in args['segments']:
SegmentService.segment_create_args_validate(args_item, document)
segments = SegmentService.multi_create_segment(args['segments'], document, dataset)
return {
'data': marshal(segments, segment_fields),
'doc_form': document.doc_form
}, 200
if args['segments'] is not None:
for args_item in args['segments']:
SegmentService.segment_create_args_validate(args_item, document)
segments = SegmentService.multi_create_segment(args['segments'], document, dataset)
return {
'data': marshal(segments, segment_fields),
'doc_form': document.doc_form
}, 200
else:
return {"error": "Segemtns is required"}, 400


def get(self, tenant_id, dataset_id, document_id): def get(self, tenant_id, dataset_id, document_id):
"""Create single segment.""" """Create single segment."""

+ 5
- 2
api/services/dataset_service.py View File

segment_data_list.append(segment_document) segment_data_list.append(segment_document)


pre_segment_data_list.append(segment_document) pre_segment_data_list.append(segment_document)
keywords_list.append(segment_item['keywords'])
if 'keywords' in segment_item:
keywords_list.append(segment_item['keywords'])
else:
keywords_list.append(None)


try: try:
# save vector index # save vector index
db.session.add(segment) db.session.add(segment)
db.session.commit() db.session.commit()
# update segment index task # update segment index task
if args['keywords']:
if 'keywords' in args:
keyword = Keyword(dataset) keyword = Keyword(dataset)
keyword.delete_by_ids([segment.index_node_id]) keyword.delete_by_ids([segment.index_node_id])
document = RAGDocument( document = RAGDocument(

Loading…
Cancel
Save