Browse Source

fix: page/limit param not effective (#18196)

tags/1.3.0
诗浓 6 months ago
parent
commit
4166f73d9d
No account linked to committer's email address
2 changed files with 13 additions and 4 deletions
  1. 2
    0
      api/controllers/service_api/dataset/segment.py
  2. 11
    4
      api/services/dataset_service.py

+ 2
- 0
api/controllers/service_api/dataset/segment.py View File

@@ -122,6 +122,8 @@ class SegmentApi(DatasetApiResource):
tenant_id=current_user.current_tenant_id,
status_list=args["status"],
keyword=args["keyword"],
page=page,
limit=limit,
)

response = {

+ 11
- 4
api/services/dataset_service.py View File

@@ -2175,7 +2175,13 @@ class SegmentService:

@classmethod
def get_segments(
cls, document_id: str, tenant_id: str, status_list: list[str] | None = None, keyword: str | None = None
cls,
document_id: str,
tenant_id: str,
status_list: list[str] | None = None,
keyword: str | None = None,
page: int = 1,
limit: int = 20,
):
"""Get segments for a document with optional filtering."""
query = DocumentSegment.query.filter(
@@ -2188,10 +2194,11 @@ class SegmentService:
if keyword:
query = query.filter(DocumentSegment.content.ilike(f"%{keyword}%"))

segments = query.order_by(DocumentSegment.position.asc()).all()
total = len(segments)
paginated_segments = query.order_by(DocumentSegment.position.asc()).paginate(
page=page, per_page=limit, max_per_page=100, error_out=False
)

return segments, total
return paginated_segments.items, paginated_segments.total

@classmethod
def update_segment_by_id(

Loading…
Cancel
Save