|
@@ -75,7 +75,10 @@ func ResolveInfo(v map[string]interface{}) map[string]interface{} {
|
|
|
title := qu.ObjToString(v["title"])
|
|
|
dl := utf8.RuneCountInString(detail) //文本长度
|
|
|
//过滤数据···
|
|
|
- if strings.Contains(title, "开标记录") || v["jyfb_data"] != nil || dl < 20 {
|
|
|
+ if strings.Contains(title, "开标记录") || v["jyfb_data"] != nil {
|
|
|
+ return map[string]interface{}{}
|
|
|
+ }
|
|
|
+ if dl < 20 {
|
|
|
return map[string]interface{}{}
|
|
|
}
|
|
|
//识别结构,短文本结构
|
|
@@ -85,12 +88,17 @@ func ResolveInfo(v map[string]interface{}) map[string]interface{} {
|
|
|
}
|
|
|
//文本格式转换
|
|
|
detail = ul.HttpConvertToMarkdown(detail)
|
|
|
- //获取外围字段数据
|
|
|
- f_info_1 := prompt.AcquireExtractFieldInfoFirst(detail, shorText)
|
|
|
- f_info_2 := prompt.AcquireExtractFieldInfoFirst(detail, shorText)
|
|
|
+ //短文本判断是否有效性
|
|
|
+ if shorText {
|
|
|
+ if info := prompt.AcquireJudgeShortInfo(detail); info["结果"] != "是" {
|
|
|
+ return map[string]interface{}{}
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //获取外围字段数据-拆分合并字段
|
|
|
+ f_info_1 := prompt.AcquireExtractFieldInfoFirst(detail)
|
|
|
+ f_info_2 := prompt.AcquireExtractFieldInfoFirst(detail)
|
|
|
f_info := MergeInfo([]map[string]interface{}{f_info_1, f_info_2})
|
|
|
|
|
|
- //非短文本
|
|
|
if !shorText {
|
|
|
//获取分包信息
|
|
|
if pkg := prompt.AcquireNewMultiplePackageInfo(detail); len(pkg) > 0 {
|
|
@@ -100,28 +108,26 @@ func ResolveInfo(v map[string]interface{}) map[string]interface{} {
|
|
|
s_toptype, s_subtype := prompt.AcquireClassInfo(detail, title, qu.ObjToString(v["toptype"]))
|
|
|
f_info["s_toptype"] = s_toptype
|
|
|
f_info["s_subtype"] = s_subtype
|
|
|
- }
|
|
|
|
|
|
- //调用标的物识别
|
|
|
- if p_list := getPurList(v, detail, f_info); len(p_list) > 0 {
|
|
|
- f_info["purchasinglist"] = p_list
|
|
|
+ //调用标的物识别
|
|
|
+ if p_list := getPurList(v, detail, f_info); len(p_list) > 0 {
|
|
|
+ f_info["purchasinglist"] = p_list
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//字段清洗
|
|
|
fns := getpnsinfo(v) //获取附件名字
|
|
|
f_data = clean.CleanFieldInfo(f_info, fns)
|
|
|
|
|
|
- //对于某些字段进行二级校验
|
|
|
- if s_buyer := qu.ObjToString(f_data["s_buyer"]); s_buyer != "" {
|
|
|
- if zp_buyer := prompt.AcquireBuyerInfo(s_buyer); zp_buyer["实体单位"] != nil {
|
|
|
- if ns_buyer := clean.CleanBuyer(qu.ObjToString(zp_buyer["实体单位"])); ns_buyer != "" {
|
|
|
- f_data["s_buyer"] = ns_buyer
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ //采购单位二级校验
|
|
|
+ CheckOutBuyerInfo(f_data)
|
|
|
+
|
|
|
+ //强制逻辑判断-
|
|
|
+ ForcedLogicDecideInfo(f_data)
|
|
|
return f_data
|
|
|
}
|
|
|
|
|
|
+// 确认抽取范围
|
|
|
func ConfrimExtractInfo(q map[string]interface{}) map[string]interface{} {
|
|
|
dict := map[string]interface{}{}
|
|
|
sess := ul.SourceMgo.GetMgoConn()
|
|
@@ -158,6 +164,7 @@ func getpnsinfo(tmp map[string]interface{}) []string {
|
|
|
return arr
|
|
|
}
|
|
|
|
|
|
+// 获取正文数据
|
|
|
func getDetailText(v map[string]interface{}, tmpid string) string {
|
|
|
detail := qu.ObjToString(v["detail"])
|
|
|
if ul.IsTool {
|
|
@@ -196,6 +203,17 @@ func getPurList(v map[string]interface{}, detail string, f_info map[string]inter
|
|
|
return []map[string]interface{}{}
|
|
|
}
|
|
|
|
|
|
+// 二次校验采购单位
|
|
|
+func CheckOutBuyerInfo(f_data map[string]interface{}) {
|
|
|
+ if s_buyer := qu.ObjToString(f_data["s_buyer"]); s_buyer != "" {
|
|
|
+ if zp_buyer := prompt.AcquireBuyerInfo(s_buyer); zp_buyer["实体单位"] != nil {
|
|
|
+ if ns_buyer := clean.CleanBuyer(qu.ObjToString(zp_buyer["实体单位"])); ns_buyer != "" {
|
|
|
+ f_data["s_buyer"] = ns_buyer
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
// 合并字段
|
|
|
func MergeInfo(infos []map[string]interface{}) map[string]interface{} {
|
|
|
info := map[string]interface{}{}
|
|
@@ -207,6 +225,32 @@ func MergeInfo(infos []map[string]interface{}) map[string]interface{} {
|
|
|
return info
|
|
|
}
|
|
|
|
|
|
+// 强制逻辑判断数据
|
|
|
+func ForcedLogicDecideInfo(f_data map[string]interface{}) {
|
|
|
+ //原则大模型
|
|
|
+ //多单位不能一致
|
|
|
+ s_buyer := qu.ObjToString(f_data["s_buyer"])
|
|
|
+ s_winner := qu.ObjToString(f_data["s_winner"])
|
|
|
+ if s_buyer == s_winner && s_buyer != "" {
|
|
|
+ /*
|
|
|
+ 1、若单位名称-不含公司保留采购单位
|
|
|
+ 2、若单位名称-含公司保留中标单位
|
|
|
+ */
|
|
|
+ if strings.Contains(s_buyer, "公司") {
|
|
|
+ f_data["s_buyer"] = ""
|
|
|
+ } else {
|
|
|
+ f_data["s_winner"] = ""
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //代理机构
|
|
|
+ if s_agency := qu.ObjToString(f_data["s_agency"]); s_agency != "" {
|
|
|
+ if s_agency == s_buyer || s_agency == s_winner {
|
|
|
+ f_data["s_agency"] = ""
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
// 暂时不启用...无限重试
|
|
|
func RunResetUpdateFieldInfo(arr []string, name string, s_name string) {
|
|
|
//log.Debug("开始重置更新...", len(arr))
|