- 重构了 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 文件,实现了结构体到解释字符串的转换
40 lines
929 B
Go
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
|
|
}
|