package org.xyzh.ai.client.dto;

import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
import java.util.List;
import java.util.Map;

/**
 * @description 知识库检索响应
 * @filename RetrievalResponse.java
 * @author AI Assistant
 * @copyright xyzh
 * @since 2025-11-04
 */
@Data
public class RetrievalResponse {

    /**
     * 查询ID
     */
    @JSONField(name = "query_id")
    private String queryId;

    /**
     * 检索结果列表
     */
    private List<RetrievalRecord> records;

    @Data
    public static class RetrievalRecord {
        /**
         * 分段内容
         */
        private String content;

        /**
         * 相似度分数
         */
        private Double score;

        /**
         * 标题
         */
        private String title;

        /**
         * 元数据
         */
        private Map<String, Object> metadata;

        /**
         * 文档ID
         */
        @JSONField(name = "document_id")
        private String documentId;

        /**
         * 文档名称
         */
        @JSONField(name = "document_name")
        private String documentName;

        /**
         * 分段ID
         */
        @JSONField(name = "segment_id")
        private String segmentId;

        /**
         * 分段位置
         */
        @JSONField(name = "segment_position")
        private Integer segmentPosition;

        /**
         * 索引节点ID
         */
        @JSONField(name = "index_node_id")
        private String indexNodeId;

        /**
         * 索引节点哈希
         */
        @JSONField(name = "index_node_hash")
        private String indexNodeHash;
    }
}

