document.api 3.8 KB
syntax = "v1"

// 后台接口
@server(
    prefix: v1
    group: document
    middleware: LogRequest
    jwt: SystemAuth
)
service Core {
    @doc  "文档-详情"
    @handler chatDocumentGet
    get /chat/document/:id (ChatDocumentGetRequest) returns (ChatDocumentGetResponse)
    @doc  "文档-保存"
    @handler chatDocumentSave
    post /chat/document (ChatDocumentSaveRequest) returns (ChatDocumentSaveResponse)
    @doc  "文档-批量保存"
    @handler chatDocumentBatchSave
    post /chat/document/batch_save (ChatDocumentBatchSaveRequest) returns (ChatDocumentBatchSaveResponse)
    @doc  "文档-删除"
    @handler chatDocumentDelete
    delete /chat/document/:id (ChatDocumentDeleteRequest) returns (ChatDocumentDeleteResponse)
    @doc  "文档-删除"
    @handler chatDocumentRename
    post /chat/document/rename (ChatDocumentRenameRequest) returns (ChatDocumentRenameResponse)
//    @doc  "文档-更新"
//    @handler chatDocumentUpdate
//    put /chat/document/:id (ChatDocumentUpdateRequest) returns (ChatDocumentUpdateResponse)
    @doc  "文档-搜索"
    @handler chatDocumentSearch
    post /chat/document/search (ChatDocumentSearchRequest) returns (ChatDocumentSearchResponse)
}

type (
    ChatDocumentGetRequest {
        Id int64 `path:"id"`
    }
    ChatDocumentGetResponse {
        ChatDocument ChatDocumentItem `json:"document"`
    }

    ChatDocumentSaveRequest {
        FileName string  `json:"fileName"`
        Url      string  `json:"url"`
        Size     float64 `json:"size"` // 文件大小(KB)
    }
    ChatDocumentSaveResponse {
        ChatDocument ChatDocumentItem `json:"document"`
    }

    ChatDocumentDeleteRequest {
        Id int64 `path:"id"`
    }
    ChatDocumentDeleteResponse {}

    ChatDocumentUpdateRequest {
        Id int64 `path:"id"`
        ChatDocument ChatDocumentItem `json:"document"`
    }
    ChatDocumentUpdateResponse {}

    ChatDocumentSearchRequest {
        Page int  `json:"page,optional"`
        Size int  `json:"size,optional"`
        Name     string `json:"name,optional"`      // 文件名匹配
        FileType string `json:"fileType,optional"`  // 文件类型 markdown\pdf\txt\doc&docx
        Status   int    `json:"status,optional"`    // 文件状态 1.使用中、0.待处理、2.预处理中、3.处理失败
    }
    ChatDocumentSearchResponse{
        List []ChatDocumentItem  `json:"list"`
        Total int64 `json:"total"`
    }
    ChatDocumentItem {
        Id        int64  `json:"id"`
        Name      string `json:"name,optional"`      // 文件名
        FileType  string `json:"fileType"` // 文件类型 markdown\pdf\txt\doc&docx
        Status    int    `json:"status"` // 1.使用中、0.待处理、2.预处理中、3.处理失败
        OriginFileName string `json:"originFileName,omitempty"` // 源文件命
        Ext            string `json:"ext,omitempty"`  // 格式
        FileId    string `json:"fileId,omitempty"`    // 星火文件ID
        FileUrl   string `json:"fileUrl,omitempty"`   // 文件地址
        FileSize  float64 `json:"fileSize,omitempty"` // 文件大小KB
        CreatedAt int64 `json:"createdAt,omitempty"`  // 创建时间
        UpdatedAt int64 `json:"updatedAt,omitempty"`  // 更新时间
    }
)

// 文档重命名
type(
    ChatDocumentRenameRequest{
        Id   int64  `json:"id"`   // 文档ID
        Name string `json:"name"` // 新名称
    }
    ChatDocumentRenameResponse{
        ChatDocument ChatDocumentItem `json:"document"`
    }
)

//文档批量添加
type(
    ChatDocumentBatchSaveRequest {
       Files []DocumentFile `json:"files"`
    }
    ChatDocumentBatchSaveResponse {
        ChatDocument []ChatDocumentItem `json:"documents"`
    }
    DocumentFile{
        FileName string  `json:"fileName"`
        Url      string  `json:"url"`
        Size     float64 `json:"size"` // 文件大小(KB)
    }
)