Files
ai-agent/internal/pkg/dto/request/knowledge_request.go
T
t 18c9354095 refactor: 将客服后端重构为宿主可嵌入模块
- 注入数据库、运行时配置、统一响应、文件存储和平台 AI 能力,补充业务读写工具与客户快捷操作契约。

- 移除模块内重复的组织、客户、工单、标签、技能、旧工作流、MCP 和迁移实现,将身份权限与业务主体交由宿主管理。

- 使用 libSQL 重构向量存储,并完善图片消息、访客身份、排队调度、企业微信和支持聊天页面。

- 统一 HTTP、DTO 与 WebSocket 的 snake_case 协议,补齐模块初始化、业务动作和公共载荷等回归测试。
2026-08-28 22:23:13 +08:00

138 lines
4.2 KiB
Go

package request
import (
"io"
"code.tczkiot.com/wlw/ai-agent/internal/pkg/enums"
)
type CreateKnowledgeBaseRequest struct {
Name string `json:"name"`
Description string `json:"description"`
KnowledgeType string `json:"knowledge_type"`
DefaultTopK int `json:"default_top_k"`
DefaultScoreThreshold float64 `json:"default_score_threshold"`
DefaultRerankLimit int `json:"default_rerank_limit"`
ChunkProvider string `json:"chunk_provider"`
ChunkTargetTokens int `json:"chunk_target_tokens"`
ChunkMaxTokens int `json:"chunk_max_tokens"`
ChunkOverlapTokens int `json:"chunk_overlap_tokens"`
AnswerMode int `json:"answer_mode"`
Remark string `json:"remark"`
}
type UpdateKnowledgeBaseRequest struct {
ID int64 `json:"id"`
CreateKnowledgeBaseRequest
}
type CreateKnowledgeDirectoryRequest struct {
KnowledgeBaseID int64 `json:"knowledge_base_id"`
ParentID int64 `json:"parent_id"`
Name string `json:"name"`
Remark string `json:"remark"`
}
type UpdateKnowledgeDirectoryRequest struct {
ID int64 `json:"id"`
CreateKnowledgeDirectoryRequest
}
type DeleteKnowledgeDirectoryRequest struct {
ID int64 `json:"id"`
}
type CreateKnowledgeDocumentRequest struct {
KnowledgeBaseID int64 `json:"knowledge_base_id"`
DirectoryID int64 `json:"directory_id"`
Title string `json:"title"`
ContentType enums.KnowledgeDocumentContentType `json:"content_type"`
Content string `json:"content"`
}
type UpdateKnowledgeDocumentRequest struct {
ID int64 `json:"id"`
CreateKnowledgeDocumentRequest
}
type BatchMoveKnowledgeDocumentRequest struct {
KnowledgeBaseID int64 `json:"knowledge_base_id"`
DirectoryID int64 `json:"directory_id"`
IDs []int64 `json:"ids"`
}
type BatchDeleteKnowledgeDocumentRequest struct {
IDs []int64 `json:"ids"`
}
type CreateKnowledgeFAQRequest struct {
KnowledgeBaseID int64 `json:"knowledge_base_id"`
DirectoryID int64 `json:"directory_id"`
Question string `json:"question"`
Answer string `json:"answer"`
SimilarQuestions []string `json:"similar_questions"`
Remark string `json:"remark"`
}
type UpdateKnowledgeFAQRequest struct {
ID int64 `json:"id"`
CreateKnowledgeFAQRequest
}
type BatchMoveKnowledgeFAQRequest struct {
KnowledgeBaseID int64 `json:"knowledge_base_id"`
DirectoryID int64 `json:"directory_id"`
IDs []int64 `json:"ids"`
}
type BatchDeleteKnowledgeFAQRequest struct {
IDs []int64 `json:"ids"`
}
type KnowledgeFAQImportMode string
const (
KnowledgeFAQImportModeAppend KnowledgeFAQImportMode = "append"
KnowledgeFAQImportModeOverwrite KnowledgeFAQImportMode = "overwrite"
)
type ImportKnowledgeFAQRequest struct {
KnowledgeBaseID int64
Mode KnowledgeFAQImportMode
Filename string
Reader io.Reader
Locale string
}
type KnowledgeSearchRequest struct {
KnowledgeBaseIDs []int64 `json:"knowledge_base_ids"`
Question string `json:"question"`
TopK int `json:"top_k"`
ScoreThreshold float64 `json:"score_threshold"`
RerankLimit int `json:"rerank_limit"`
Channel string `json:"channel"`
Scene string `json:"scene"`
SessionID string `json:"session_id"`
ConversationID int64 `json:"conversation_id"`
}
type KnowledgeAnswerRequest struct {
KnowledgeBaseIDs []int64 `json:"knowledge_base_ids"`
Question string `json:"question"`
TopK int `json:"top_k"`
ScoreThreshold float64 `json:"score_threshold"`
RerankLimit int `json:"rerank_limit"`
Channel string `json:"channel"`
Scene string `json:"scene"`
SessionID string `json:"session_id"`
ConversationID int64 `json:"conversation_id"`
AnswerMode int `json:"answer_mode"`
}
type CreateKnowledgeFeedbackRequest struct {
RetrieveLogID int64 `json:"retrieve_log_id"`
FeedbackType int `json:"feedback_type"`
FeedbackReason string `json:"feedback_reason"`
Remark string `json:"remark"`
}