dify/api/core/entities/knowledge_entities.py

50 lines
1.1 KiB
Python

from pydantic import BaseModel, Field, field_validator
class PreviewDetail(BaseModel):
content: str
child_chunks: list[str] | None = None
class QAPreviewDetail(BaseModel):
question: str
answer: str
class IndexingEstimate(BaseModel):
total_segments: int
preview: list[PreviewDetail]
qa_preview: list[QAPreviewDetail] | None = None
class PipelineDataset(BaseModel):
id: str
name: str
description: str = Field(default="", description="knowledge dataset description")
chunk_structure: str
@field_validator("description", mode="before")
@classmethod
def normalize_description(cls, value: str | None) -> str:
"""Coerce None to empty string so description is always a string."""
if value is None:
return ""
return value
class PipelineDocument(BaseModel):
id: str
position: int
data_source_type: str
data_source_info: dict | None = None
name: str
indexing_status: str
error: str | None = None
enabled: bool
class PipelineGenerateResponse(BaseModel):
batch: str
dataset: PipelineDataset
documents: list[PipelineDocument]