|
@@ -565,3 +565,95 @@ C、修正结果,输出最终答案
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+// ZpAI8 经过刘康佳优化
|
|
|
+func ZpAI8(apiKey, model string, data interface{}) (rest map[string][]map[string]interface{}, err error) {
|
|
|
+ expireAtTime := int64(1735660800) // token 过期时间
|
|
|
+ text := fmt.Sprintf(`
|
|
|
+"""
|
|
|
+你是一个全行业领域的专家,对招投标行业领域分类了如指掌
|
|
|
+
|
|
|
+任务如下:
|
|
|
+# 输入内容
|
|
|
+公告start
|
|
|
+%s
|
|
|
+
|
|
|
+公告end
|
|
|
+
|
|
|
+# 流程:
|
|
|
+流程1:你需要分析提取出对应title中采购的标的物信息(去掉机构、公告类型、地点、网上超市、合同等无意义内容)
|
|
|
+流程2: 根据流程1和流程2的结果,通过理解每个领域的定义将标的物映射到下面合理的领域名称。
|
|
|
+
|
|
|
+# 限制
|
|
|
+ - ‘其他领域’标签只能单独出现,不可以和出现在别的领域标签后面
|
|
|
+ - 如果没有标的物或者下面领域标签没有适合的结果,则领域标签只输出‘其他领域’
|
|
|
+ - 不可以随意捏造并使用不存在的领域名称
|
|
|
+# 领域名称定义:
|
|
|
+ - 其他领域:凡是不存在下面领域定义的标的物,包括但不限于农副产品、物资、实验设备、监理服务、采购意向等,直接输出"其他领域"
|
|
|
+ - 车辆领域:涉及所有与车辆相关的业务和服务,包括但不限于新车购买、二手车交易、车辆租赁、汽车维修保养、汽车配件销售、车辆保险、驾驶培训等;
|
|
|
+ - 安防领域:安防领域通常包括但不限于视频监控、入侵检测、安全警报、门禁系统、防盗报警、周界防护、智能安防解决方案、火灾报警与应急处理、人员识别与追踪、安全巡逻、数据分析与风险评估等,例如:安防监控、安防产品、周界防范、安防监控系统、信息安全、数据安全等;
|
|
|
+ - 印务领域:跟印刷或出版相关的行业和活动,包括印刷技术、印刷材料、印刷设备与维护、广告服务、出版服务、包装设计等,还包括打印机、印刷机、油墨、打印纸张等印刷相关材料和配件的内容,如印刷、打印复印、打印设备、云打印、印刷服务等。
|
|
|
+ - 环境领域:跟环境保护或环境治理相关的内容,如电子废物处理、垃圾处理、生态污水处理、生态修复、环境监管体系、废物管理与资源化等
|
|
|
+ - 家具领域:跟家具相关的内容,包括家用家具、办公家具、教学家具、医院家具、宿舍家具、定制家具、家具采购、家具设计与安装、家具维修与翻新等,如办公桌、电脑桌、文件柜、人体工学椅、欧式家具、木质家具、木地板、家具饰品等;
|
|
|
+ - 财务审计领域:涉及财务和审计相关的业务和服务,包括但不限于资产评估、财务报表审计、内部控制审计、税务审计、经济责任审计、财务咨询、会计服务、资产清查、纳税申报、破产清算等。
|
|
|
+ - 管理咨询领域:包括但不限于工程咨询管理、人力资源管理、市场营销策划、业务流程优化、企业管理咨询、管理培训、战略顾问、人力资源咨询、相关培训项目业务、咨询服务相关业务等,
|
|
|
+ - 保险领域:涉及保险产品的销售、服务及管理,包括但不限于人寿保险、财产保险、健康保险、意外伤害保险、责任保险、再保险、保险理赔、风险管理、保险产品设计与开发等,如保险代理、保险经纪、保险咨询服务、保险解决方案等。
|
|
|
+ - 工程设计咨询领域:注意:该领域只针对服务类型,指涉及工程设计、设计施工承包、工程造价咨询、工程技术可行性、环境影响研究、经济型评估等设计前的咨询服务以及勘测相关技术服务、建筑设计等
|
|
|
+ - 招标代理领域:仅限于标的物主干部分是招投标代理服务等,
|
|
|
+
|
|
|
+A、依次获取公告title中采购的标的物判断对应领域名称,严格按照下面JSON格式输出
|
|
|
+
|
|
|
+{
|
|
|
+ "result":[
|
|
|
+ {"title":"title(原title文本)","class":"领域名称"(如果是单领域则只输出一个领域,如果公告属于多个领域请用','分割)},
|
|
|
+ ]
|
|
|
+}
|
|
|
+
|
|
|
+B、审查结果
|
|
|
+(1)审查A的结果输出,判断输出领域与公告采购标的物是否强相关,否则输出"其他领域"
|
|
|
+
|
|
|
+
|
|
|
+C、修正结果,输出最终答案
|
|
|
+
|
|
|
+答(干净利落,不解释,只要C结果,严格按照JSON格式返回数据,不需要多余的解释说明)
|
|
|
+"""
|
|
|
+
|
|
|
+`, data)
|
|
|
+
|
|
|
+ originalValue := 0.01
|
|
|
+ originalValue2 := 0.7
|
|
|
+ mssage := zhipu.PostParams{
|
|
|
+ Model: model,
|
|
|
+ Messages: []zhipu.Message{
|
|
|
+ {
|
|
|
+ Role: "user", // 消息的角色信息 详见文档
|
|
|
+ Content: text,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ Temperature: &originalValue,
|
|
|
+ TopP: &originalValue2,
|
|
|
+ }
|
|
|
+
|
|
|
+ postResponse, err := zhipu.BeCommonModel(expireAtTime, mssage, apiKey, time.Minute*10)
|
|
|
+ if err != nil {
|
|
|
+ log.Println("请求智普失败", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if choices, ok := postResponse["choices"].([]interface{}); ok {
|
|
|
+ if choice, ok2 := choices[0].(map[string]interface{}); ok2 {
|
|
|
+ if message, ok3 := choice["message"].(map[string]interface{}); ok3 {
|
|
|
+ if content, ok4 := message["content"].(string); ok4 {
|
|
|
+ content = strings.ReplaceAll(content, "\n", "")
|
|
|
+ content = strings.ReplaceAll(content, "json", "")
|
|
|
+ content = strings.ReplaceAll(content, "`", "")
|
|
|
+ err = json.Unmarshal([]byte(content), &rest)
|
|
|
+ //if err != nil {
|
|
|
+ // log.Println("Unmarshal err", err, "content:", content)
|
|
|
+ //}
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|