86 lines
3.5 KiB
Go
86 lines
3.5 KiB
Go
package dto
|
||
|
||
import (
|
||
"rag/consts/document"
|
||
|
||
"gitea.com/red-future/common/beans"
|
||
"github.com/gogf/gf/v2/frame/g"
|
||
"github.com/gogf/gf/v2/os/gtime"
|
||
"github.com/pgvector/pgvector-go"
|
||
)
|
||
|
||
// RAGQueryReq RAG查询请求
|
||
type RAGQueryReq struct {
|
||
g.Meta `path:"/ragQuery" method:"post" tags:"RAG查询" summary:"执行RAG查询" dc:"执行RAG查询"`
|
||
|
||
Content string `json:"content" v:"required#查询内容不能为空" dc:"用户问题"`
|
||
DatasetIds []int64 `json:"datasetIds" dc:"数据集ID"`
|
||
History []*Message `json:"history" dc:"历史对话"`
|
||
TopK int `json:"topK" d:"5" dc:"检索topK,默认5"`
|
||
}
|
||
|
||
type Message struct {
|
||
Role string `json:"role"`
|
||
Content string `json:"content"`
|
||
}
|
||
|
||
// RAGQueryRes RAG查询响应
|
||
type RAGQueryRes struct {
|
||
Answer string `json:"answer" dc:"生成的答案"`
|
||
}
|
||
|
||
// UpdateDocumentVectorReq 更新文件块向量请求
|
||
type UpdateDocumentVectorReq struct {
|
||
g.Meta `path:"/update" method:"put" tags:"文件块向量管理" summary:"更新文件块" dc:"更新文件块"`
|
||
|
||
Id int64 `json:"id" v:"required#ID不能为空"`
|
||
Status document.Status `json:"status"`
|
||
}
|
||
|
||
// ListDocumentVectorReq 文件块向量列表请求
|
||
type ListDocumentVectorReq struct {
|
||
g.Meta `path:"/list" method:"get" tags:"文件块向量管理" summary:"获取文件块向量列表" dc:"分页查询文件块向量列表,支持多条件筛选"`
|
||
|
||
Page *beans.Page `json:"page"`
|
||
Keyword string `json:"keyword" dc:"关键词搜索"`
|
||
DatasetId int64 `json:"datasetId"`
|
||
DocumentId int64 `json:"documentId"`
|
||
Status document.Status `json:"status"`
|
||
VectorStatus document.VectorStatus `json:"vectorStatus"`
|
||
}
|
||
|
||
// ListDocumentVectorRes 文件块向量列表响应
|
||
type ListDocumentVectorRes struct {
|
||
List []*DocumentVectorVO `json:"list"`
|
||
Total int `json:"total"`
|
||
}
|
||
|
||
type DocumentVectorVO struct {
|
||
Id int64 `json:"id,string" dc:"id"`
|
||
Status document.Status `json:"status" dc:"状态"`
|
||
VectorStatus document.VectorStatus `json:"vectorStatus" dc:"向量状态"`
|
||
DatasetId int64 `json:"datasetId,string" dc:"所属数据集ID"`
|
||
DocumentId int64 `json:"documentId,string" dc:"所属文档ID"`
|
||
Content string `json:"content" dc:"内容"`
|
||
ContentHash string `json:"contentHash" dc:"内容hash"`
|
||
ChunkIndex int64 `json:"chunkIndex" dc:"块索引"`
|
||
Vector []float64 `json:"vector" dc:"向量"`
|
||
Metadata map[string]interface{} `json:"metadata" dc:"元信息"`
|
||
CreatedAt *gtime.Time `json:"createdAt" dc:"创建时间"`
|
||
UpdatedAt *gtime.Time `json:"updatedAt" dc:"更新时间"`
|
||
}
|
||
|
||
type VectorDocumentVectorMsg struct {
|
||
TenantId uint64 `json:"tenantId"`
|
||
Creator string `json:"creator"`
|
||
DatasetId int64 `json:"datasetId"` // 数据集ID
|
||
DocumentId int64 `json:"documentId"` // 所属文档ID
|
||
Content string `json:"content"` // 原始内容
|
||
ContentHash string `json:"contentHash"` // 原始内容hash
|
||
ChunkIndex int64 `json:"chunkIndex"` // 第几块
|
||
Status document.Status `json:"status"`
|
||
VectorStatus document.VectorStatus `json:"vectorStatus"`
|
||
Vector pgvector.Vector `json:"vector"`
|
||
Metadata map[string]interface{} `json:"metadata"`
|
||
}
|