attr.go 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. package ul
  2. import "regexp"
  3. var (
  4. SourceMgo, QyxyMgo *MongodbSim
  5. BidMgo, PyMgo *MongodbSim
  6. SysConfig map[string]interface{}
  7. ToolConfig map[string]interface{}
  8. Bid_Name, Ext_Name string
  9. TimeLayout = "2006-01-02 15:04:05"
  10. Url = "https://www.jianyu360.cn/article/content/%s.html"
  11. CleanResultReg = regexp.MustCompile("((\\s|\n| |\\[|\\]|\\`|json)+)")
  12. SaveResultReg = regexp.MustCompile("([{].*[}])")
  13. RulesPname = []*ExtReg{}
  14. IsTool, IsFull, IsLocal, IsService, IsFlash bool
  15. FlashModel string
  16. SpecialTextReg = regexp.MustCompile("(原网页|见附件|下载附件|(查看|访问)(源网|原网)|详情请下载附件!|详情请访问原网页!)")
  17. Escape = regexp.MustCompile("(json|`|\n|\\\\)")
  18. Reading, MaxLen, MaxByte, MaxUdp int
  19. ModelType string
  20. //补充规则全···
  21. ReplensihRules []map[string]interface{}
  22. )
  23. type ExtReg struct {
  24. Reg *regexp.Regexp
  25. Replace string
  26. }
  27. var (
  28. //标准化地域信息
  29. S_ProvinceDict map[string][]S_Province //标准省份-map
  30. S_CityDict map[string][]S_City //标准城市-map
  31. S_DistrictDict map[string][]S_District //标准区县-map
  32. )
  33. // 标准化地域结构体
  34. type S_Province struct {
  35. P_Name string
  36. }
  37. type S_City struct {
  38. P_Name string
  39. C_Name string
  40. }
  41. type S_District struct {
  42. P_Name string
  43. C_Name string
  44. D_Name string
  45. }
  46. type S_Town struct {
  47. P_Name string
  48. C_Name string
  49. D_Name string
  50. T_Name string
  51. }
  52. // 以下分类
  53. type TypeInfo struct {
  54. Topetype string //一级分类
  55. Subtype string //对应一级分类的二级分类
  56. SubtypeDict map[string]string //对应一级分类的二级分类集合
  57. SubtypeAiText string //对应一级分类的二级分类提示语
  58. SubtypeRegs map[string]*regexp.Regexp //二级分类结果校正正则
  59. }
  60. var (
  61. //招标类二级分类提示语
  62. ZBAiText = `
  63. 你是一个文本处理模型,根据下述信息做"招投标信息分类":
  64. 一、信息分类选项:[单一来源公告;询价公告;竞价公告;邀标公告;竞争谈判公告;变更公告;招标公告]
  65. 二、信息分类权重(权重由高到低排序):[单一来源公告;询价公告;竞价公告;邀标公告;竞争谈判公告;变更公告;招标公告]
  66. 三、信息分类参考资料:
  67. 1、单一来源公告:在特定情况下,直接与单一供应商签订合同。请结合列举的“关键词”进行推导,关键词:[单一来源,单一采购];
  68. 2、询价公告:了解市场价格水平,对市场价格信息进行调研、询价,公告内容一般提供报价信息、报价规则、报价方式。请结合列举的“关键词”进行推导,关键词:[议价,定点议价,询价公告,采购询价,公开询价,网上报价公告,询价通知书,询价公示,询比价采购,询价邀请,询价单,公开询比价,调研公告,议价采购公告];
  69. 3、竞价公告:投标人提交报价以竞争合同的过程。排除词:[成交金额、成交人];请结合列举的“关键词”进行推导,关键词:[竞价,竞买,反拍,竞价采购,公开竞价,网上竞价,竞价招标,竞价公告,竞采公告,竞价开始(结束)];
  70. 4、邀标公告:发邀请特定投标人参与投标,而不是通过公开招标。请结合列举的“关键词”进行推导,关键词:[邀请,邀请招标,投标邀请,采购邀请,邀标公告,邀请书,公开邀请,报价邀请];
  71. 5、竞争谈判公告:一般包含项目和申请人的资格要求、获取采购文件和提交的时间、方式和地点等。请结合列举的“关键词”进行推导,关键词:[磋商,竞争性谈判,竞争性磋商,竞争性发包,磋商公告,谈判邀请公告,磋商公告];
  72. 6、变更公告:在招标过程中对招标文件或公告的修改或补充。请结合列举的“关键词”进行推导,关键词:[变更公告,更正公告,公告变更,更改公告,暂停公告,变更公示];
  73. 7、招标公告:投标人提交投标文件,是招标过程中的核心公告。如果正文中包含中标供应商、中标金额等公告结果类信息,不要划分到招标公告。请结合列举的“关键词”进行推导,关键词:[招标公告,招标通知,招标预告,二次招标,竞标公告,招标报名公告,招标公示,招商公告];
  74. 我希望你根据正文内容,仅从"信息分类选项"中选取一个合适的分类。在识别过程中出现多个结果时,按照"信息分类权重"优先选举一个权重大的,并将分类识别结果严格按照下述JSON格式输出。
  75. JSON格式:
  76. {
  77. "信息分类":"招投标信息分类结果",
  78. "理由":"请给出信息分类结果的理由",
  79. }
  80. 按照以上要求输出,不要联想,不要无中生有,不要生成解释,对于尚未确定或未明确的信息请在JSON对应的值填写:无
  81. 正文内容:%s` + "\n" + `%s
  82. 结果JSON:
  83. `
  84. //结果类二级分类提示语
  85. JGAiText = `
  86. 你是一个文本处理模型,根据下述信息做"招投标信息分类":
  87. 一、信息分类选项:[变更公告;废标公告;流标公告;成交公告;候选公告;结果其它公告]
  88. 二、信息分类权重(权重由高到低排序):[变更公告;废标公告;流标公告;成交公告;候选公告;结果其它公告]
  89. 三、信息分类参考资料:
  90. 1、变更公告:表明对已发布的中标结果,采购结果进行了调整或更正。请结合列举的“关键词”进行推导,关键词:[结果更改,结果变更,中标结果变更,废标结果变更,变更中标人,重新公示,结果变更,重新确认中标结果,重新确定中标人,重新确定成交人,重新确认中标的中标公告,结果顺延];
  91. 2、废标公告:宣布取消招标活动,不与任何投标人签订合同。请结合列举的“关键词”进行推导,关键词:[废标,作废,终止,废止公告,异常公告,项目终止,招标公告作废,未成交公告,未成交公示,取消成交候选供应商,取消中标候选供应商];
  92. 3、流标公告:招标未能成功完成,没有投标人符合要求。请结合列举的“关键词”进行推导,关键词:[流标,取消公告,取消采购,二次流标,比选失败,招标结束公告,采购程序终止];
  93. 4、成交公告:成交公告是指在招投标过程中,经过评标、定标等程序后,公布中标人、中标金额等信息的公告,但公告中不会有多个候选人的中标信息。请结合列举的“关键词”进行推导,关键词:[直接选取,成交,成交金额,成交公告,成交通知,成交结果,采购结果,成交通知书,中标通知书,中选公告,中选结果,中选金额];
  94. 5、候选公告:候选公告是对评标过程的公开,通常会列出多个候选人名单、得分、报价等信息。请结合列举的“关键词”进行推导,关键词:[第一,第二,第三,名单,评标,得分,综合评分,中标候选人,成交候选人公示,成交候选单位,候选代理机构入围公示,候选供应商,成交候选人];
  95. 6、结果其它公告:公布多个投标人信息。关键词:[工期,项目负责人,开标记录];
  96. 我希望你根据正文内容,仅从"信息分类选项"中选取一个合适的分类。在识别过程中出现多个结果时,按照"信息分类权重"优先选举一个权重大的,并将分类识别结果严格按照下述JSON格式输出。
  97. JSON格式:
  98. {
  99. "信息分类":"招投标信息分类结果",
  100. "理由":"请给出信息分类结果的理由",
  101. }
  102. 按照以上要求输出,不要联想,不要无中生有,不要生成解释,对于尚未确定或未明确的信息请在JSON对应的值填写:无
  103. 正文内容:%s` + "\n" + `%s
  104. 结果JSON:
  105. `
  106. //预告类二级分类提示语
  107. YGAiText = `
  108. 你是一个文本处理模型,根据下述信息做"招投标信息分类":
  109. 一、信息分类选项:[预告公告;预审公告;预审结果公告;论证意见公告;需求公示公告]
  110. 二、信息分类权重(权重由高到低排序):[预告公告;预审公告;预审结果公告;论证意见公告;需求公示公告]
  111. 三、信息分类参考资料:
  112. 1、预告公告:通常在招标正式开始前发布,目的是通知潜在投标人即将开始的招标项目的基本信息。请结合列举的“关键词”进行推导,关键词:[预公示,预告,预公告,邀请招标项目公告,采购计划,审前公示];
  113. 2、预审公告:发布在资格预审阶段,包括资格预审文件的出售、接受申请以及资格预审的流程。请结合列举的“关键词”进行推导,关键词:[预审公告,资格预审,预审公告,招标预审,预审];
  114. 3、预审结果公告:发布预审评审结果,告知哪些供应商通过了预审。请结合列举的“关键词”进行推导,关键词:[预审结果,资格预审公示,资审结果,审查结果];
  115. 4、论证意见公告:发布对招标文件、投标文件或评标过程中出现的问题进行专业分析和评估意见。请结合列举的“关键词”进行推导,关键词:[论证意见,方案征集公告,进口产品审核前公示,专家组论证意见,需求论证公示,进口产品公示];
  116. 5、需求公示公告:公布招标项目的具体需求、技术要求、商务条件等,通常在招标前进行。请结合列举的“关键词”进行推导,关键词:[征求意见公示,采购需求,项目需求公示,论证公示,需求评审公告,需求公示,论证意见公示,征求意见,征集意见,需求调研,调研公告];
  117. 我希望你根据正文内容,仅从"信息分类选项"中选取一个合适的分类。在识别过程中出现多个结果时,按照"信息分类权重"优先选举一个权重大的,并将分类识别结果严格按照下述JSON格式输出。
  118. JSON格式:
  119. {
  120. "信息分类":"招投标信息分类结果",
  121. "理由":"请给出信息分类结果的理由",
  122. }
  123. 按照以上要求输出,不要联想,不要无中生有,不要生成解释,对于尚未确定或未明确的信息请在JSON对应的值填写:无
  124. 正文内容:%s` + "\n" + `%s
  125. 结果JSON:
  126. `
  127. )
  128. var (
  129. //一级分类结果校正正则
  130. Top_ZB_Reg = regexp.MustCompile(`(招标(变更)?|(询|竞|议)价|单一|邀(标|请)|竞[争性]{0,2}谈(判)?|磋商)`)
  131. Top_JG_Reg = regexp.MustCompile(`((中标|成交|中选|废标)(结果|候选)?|结果(变更)?|开标记录|(候|侯)选|采购结果|流标|废标|作废|终止|废止|异常|未成交|变更中标人)`)
  132. Top_YG_Reg = regexp.MustCompile(`(预审|评审|资审|预告|(预|论证)(公告|公示)|调研公告|审前公示|审查|需求论证|征求意见|(采购|项目)需求|需求公示)`)
  133. Top_YS_Reg = regexp.MustCompile(`验收`)
  134. Top_HT_Reg = regexp.MustCompile(`合同`)
  135. Top_WG_Reg = regexp.MustCompile(`违规`)
  136. Top_CGYX_Reg = regexp.MustCompile(`采购意向`)
  137. ToptypeRegs = map[string]*regexp.Regexp{
  138. "招标公告": Top_ZB_Reg,
  139. "结果公告": Top_JG_Reg,
  140. "预告公告": Top_YG_Reg,
  141. "采购意向公告": Top_CGYX_Reg,
  142. "合同公告": Top_HT_Reg,
  143. "验收公告": Top_YS_Reg,
  144. "违规公告": Top_WG_Reg,
  145. }
  146. //subtype正则
  147. Sub_JGQT_Reg = regexp.MustCompile(`(开标记录)`)
  148. //
  149. ToptypeDict = map[string]*TypeInfo{
  150. "招标公告": &TypeInfo{
  151. Topetype: "招标",
  152. SubtypeDict: ZBSubtypeDict,
  153. SubtypeAiText: ZBAiText,
  154. },
  155. "结果公告": &TypeInfo{
  156. Topetype: "结果",
  157. SubtypeDict: JGSubtypeDict,
  158. SubtypeAiText: JGAiText,
  159. SubtypeRegs: map[string]*regexp.Regexp{
  160. "其它": Sub_JGQT_Reg,
  161. },
  162. },
  163. "预告公告": &TypeInfo{
  164. Topetype: "预告",
  165. SubtypeDict: YGSubtype,
  166. SubtypeAiText: YGAiText,
  167. },
  168. "采购意向公告": &TypeInfo{
  169. Topetype: "采购意向",
  170. Subtype: "采购意向",
  171. SubtypeAiText: "",
  172. },
  173. "合同公告": &TypeInfo{
  174. Topetype: "其它",
  175. Subtype: "合同",
  176. SubtypeAiText: "",
  177. },
  178. "验收公告": &TypeInfo{
  179. Topetype: "其它",
  180. Subtype: "验收",
  181. SubtypeAiText: "",
  182. },
  183. "违规公告": &TypeInfo{
  184. Topetype: "其它",
  185. Subtype: "违规",
  186. SubtypeAiText: "",
  187. },
  188. "无": &TypeInfo{
  189. Topetype: "招标",
  190. //Subtype: "招标",
  191. SubtypeDict: ZBSubtypeDict,
  192. SubtypeAiText: ZBAiText,
  193. },
  194. "": &TypeInfo{
  195. Topetype: "招标",
  196. //Subtype: "招标",
  197. SubtypeDict: ZBSubtypeDict,
  198. SubtypeAiText: ZBAiText,
  199. },
  200. }
  201. //SubtypeDict = map[string]map[string]string{
  202. // "招标": ZBSubtypeDict,
  203. // "结果": JGSubtypeDict,
  204. // "预告": YGSubtype,
  205. //}
  206. //subtype招标类
  207. ZBSubtypeDict = map[string]string{
  208. "单一来源公告": "单一",
  209. "询价公告": "询价",
  210. "竞价公告": "竞价",
  211. "邀标公告": "邀标",
  212. "竞争谈判公告": "竞谈",
  213. "变更公告": "变更",
  214. "招标公告": "招标",
  215. }
  216. //subtype结果类
  217. JGSubtypeDict = map[string]string{
  218. "候选公告": "中标",
  219. "成交公告": "成交",
  220. "变更公告": "结果变更",
  221. "结果其它公告": "其它",
  222. "废标公告": "废标",
  223. "流标公告": "流标",
  224. }
  225. //subtype预告类
  226. YGSubtype = map[string]string{
  227. "预告公告": "预告",
  228. "预审公告": "预审",
  229. "预审结果公告": "预审结果",
  230. "论证意见公告": "论证意见",
  231. "需求公示公告": "需求公示", //662330348c5f5f15c79b3eee
  232. }
  233. //subtype特殊类
  234. //TSSubtypeDict = map[string]string{
  235. // "采购意向公告": "采购意向",
  236. // "合同公告": "合同",
  237. // "验收公告": "验收",
  238. // "违规公告": "违规",
  239. //}
  240. )