Havoc412 ae7edb5e8d 🎨 refactor(rag): 重构 RAG 模型相关代码
- 重构了 rag_controller.go 中的逻辑,使用新的 DocumentHub 结构
- 修改了 encounter.go 中的 Encounter 结构,增加了 explain 标签
- 重写了 rag_websocket.go 中的逻辑,使用新的 DocumentHub 结构
- 新增了 curd_es/encounter_es_curd.go 文件,实现了 Encounter 的 CURD 操作
- 更新了 nlp/func.go 中的 ChatRAG 函数,使用新的 DocumentHub 结构
- 新增了 curd/docs_hub.go 文件,实现了 DocumentHub 的 TopK 方法
- 新增了 utils/data_explain/data_explain_rag.go 文件,实现了结构体到解释字符串的转换
2024-11-20 19:30:11 +08:00

40 lines
929 B
Go

package model_res
import (
"catface/app/model"
"catface/app/model_es"
"time"
)
// INFO 由于直接放到 model 中会导致循环引用,所以放到 model_res 中
func NewDocResult(doc *model.Doc, doc_es *model_es.Doc) *DocResult {
return &DocResult{
DocBase: DocBase{Type: "doc"},
Id: doc.Id,
Name: doc.Name,
Content: doc_es.Content,
UpdatedAt: doc.UpdatedAt,
}
}
type DocResult struct {
DocBase
Id int64 `json:"id"`
Name string `json:"name" explain:"文档名称"`
Content string `json:"content" explain:"文档内容"`
UpdatedAt *time.Time `json:"updated_at" explain:"最后更新时间"`
}
// GetType implements DocInterface.
func (d DocResult) GetType() string {
panic("unimplemented")
}
/**
* @description: 实现 DocInterface 接口,输出作为 LLM 的参考内容。
* @return {*}
*/
func (d DocResult) ToString() string {
return d.Content
}