丽水查重代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

181 lines
9.6KB

  1. import requests
  2. import json
  3. import re
  4. def CallResult(prompt):
  5. headers = {
  6. 'Content-Type': 'application/json',
  7. 'Cookie': 'MODEL_USER_AUTH=4879b93405ebb89cad144590f0a4873f#3',
  8. }
  9. data = json.dumps({
  10. 'reqSource': "private",
  11. 'reqParams': {
  12. 'busCode': "fpExtract",
  13. 'degree': "low",
  14. 'fpRequire': prompt,
  15. },
  16. })
  17. # print("ChatGLM prompt:",prompt)
  18. # 调用api
  19. response = requests.post("http://81.70.174.229:9000/api/serveChannel",headers=headers,data=data)
  20. if response.status_code != 200:
  21. return "查询结果错误"
  22. resp = response.json()
  23. return resp['data']
  24. # 调用glm
  25. def CallResultNew(prompt):
  26. headers = {
  27. 'Content-Type': 'application/json',
  28. 'Cookie': 'MODEL_USER_AUTH=92962ed4181f5221b20faaad1c42b3b8#3',
  29. }
  30. # 调用api
  31. if prompt != "":
  32. url = f'http://81.70.174.229:8090/smarty/fpNameExtract?fpRequire={prompt}&modelType=llm'
  33. response = requests.get(url, headers=headers)
  34. if response.status_code != 200:
  35. return "查询结果错误"
  36. resp = response.json()
  37. return resp['data']
  38. def CallContentResult(prompt):
  39. content = ""
  40. seqs = re.split("。", prompt)
  41. for seq_ele in seqs:
  42. if seq_ele != '':
  43. headers = {
  44. 'Content-Type': 'application/json',
  45. 'Cookie': 'MODEL_USER_AUTH=4879b93405ebb89cad144590f0a4873f#3',
  46. }
  47. data = json.dumps({
  48. 'reqSource': "private",
  49. 'reqParams': {
  50. 'busCode': "fpExtract",
  51. 'degree': "low",
  52. 'fpRequire': seq_ele.replace("\n", "").replace(" ", ""),
  53. },
  54. })
  55. # 调用api
  56. response = requests.post("http://81.70.174.229:9000/api/serveChannel", headers=headers, data=data)
  57. if response.status_code != 200:
  58. return "查询结果错误"
  59. resp = response.json()
  60. glm_data =resp['data']
  61. print(f'glm_data = {glm_data}')
  62. act_list_str = ",".join(glm_data["actList"])
  63. obj_list_str = ",".join(glm_data["objList"])
  64. content = content + act_list_str + "|" + obj_list_str + " -> "
  65. print(content)
  66. return content
  67. def CallContentResultNew(prompt):
  68. content = ""
  69. seqs = re.split("。", prompt)
  70. for seq_ele in seqs:
  71. if seq_ele != '':
  72. headers = {
  73. 'Content-Type': 'application/json',
  74. 'Cookie': 'MODEL_USER_AUTH=92962ed4181f5221b20faaad1c42b3b8#3',
  75. }
  76. url = f'http://81.70.174.229:8090/smarty/fpNameExtract?fpRequire={prompt}&modelType=llm'
  77. response = requests.post(url, headers=headers)
  78. if response.status_code != 200:
  79. return "查询结果错误"
  80. resp = response.json()
  81. glm_datas = resp['data']
  82. for glm_data in glm_datas:
  83. name = glm_data["name"]
  84. content += name
  85. content = content.replace("<br/>", ",")
  86. return content
  87. def AutoDLResult(prompt):
  88. # prompt = prompt.replace("\n", " ")
  89. # print(f"prompt: {prompt}")
  90. # url = f"http://10.100.148.24:8000"
  91. # payload = json.dumps({
  92. # # 'top_p': 0.8,
  93. # # 'temperature': 0.1,
  94. # 'prompt': prompt,
  95. # })
  96. # headers = {
  97. # 'Content-Type': 'application/json',
  98. # 'Accept': 'application/json'
  99. # }
  100. # response = requests.request("POST", url, headers=headers, data=payload)
  101. # desc = response.json().get("response")
  102. # print(f"desc : {desc}")
  103. # pattern = r"\d+\.?\d*"
  104. # nums = re.findall(pattern, desc)
  105. # if len(nums) > 0:
  106. # print("提取到的数字:", nums[0])
  107. # n = float(nums[0])
  108. # if n is None:
  109. # return 0, ""
  110. # return n, filter_emoji(desc)
  111. return 0, ""
  112. def AutoDLResultNoNum(prompt):
  113. # prompt = prompt.replace("\n", " ")
  114. # print(f"prompt: {prompt}")
  115. # url = f"http://10.100.148.24:8000"
  116. # payload = json.dumps({
  117. # # 'top_p': 0.8,
  118. # # 'temperature': 0.1,
  119. # 'prompt': prompt,
  120. # })
  121. # headers = {
  122. # 'Content-Type': 'application/json',
  123. # 'Accept': 'application/json'
  124. # }
  125. # response = requests.request("POST", url, headers=headers, data=payload)
  126. # desc = response.json().get("response")
  127. # print(f"desc : {desc}")
  128. # return desc
  129. return ""
  130. def qwenResult(sentence1, sentence2):
  131. url = f"http://127.0.0.1:5010/api/v1/compare"
  132. payload = json.dumps({
  133. 'sentence1': sentence1,
  134. 'sentence2': sentence2,
  135. })
  136. headers = {
  137. 'Content-Type': 'application/json',
  138. 'Accept': 'application/json'
  139. }
  140. response = requests.request("POST", url, headers=headers, data=payload)
  141. desc = response.json().get("data")
  142. print(f"desc : {desc}")
  143. return desc
  144. # 去除文本中的特殊表情
  145. def filter_emoji(desstr, restr=''):
  146. # 过滤表情
  147. try:
  148. co = re.compile(u'[\U00010000-\U0010ffff]')
  149. except re.error:
  150. co = re.compile(u'[\uD800-\uDBFF][\uDC00-\uDFFF]')
  151. return co.sub(restr, desstr)
  152. if __name__ == '__main__':
  153. # text = "这是一个带有表情符号😊的字符"
  154. # text = filter_emoji(text)
  155. # content_x = '''会议管理,支持相关人员建立评审会议,评审会议和项目关联,并支持后续的专家抽取、结果确认等。会议建立完成后,相关人员可选择专家抽取模式,手动抽取是从专家库中手动筛选及选取专家参加评审。会议建立完成后,相关人员可选择专家抽取模式,自动抽取实现专家按标签自动抽取,抽取成功后生成会议通知、会议签到单。'''
  156. # content_y = '''1、专家库管理概述:实现和省级专家库对接,获取专家信息,并实现用户自行录入专家信息。同时要实现专家自定义抽取、抽取规则模板设置、在线短信与智能语音通知,专家赴会反馈等功能,继而实现专家线上管理。同时需要建立信创专家和信息化专家两个大类别,两个类别可重合。2、专家库基础信息:(1)统一的专家基础信息:构建统一的专家信息,同时与现有专家库进行数据同步,实现信息化项目专家信息的统一共享。支持多维度的专家查询通道。(2)标签管理:实现专家标签管理,为不同的专家贴上擅长领域标签,让专家擅长领域更加直观,让单位建设信息化项目有一个对应标签的专家支撑,为项目单位信息化项目保驾护航,减少单位信息化项目建设的风险。(3)专家卡片:专家卡片涵盖专家基本信息、专业标签信息以及参与信息化项目履职情况,形成一个动态的专家档案信息。(4)自定义设计:专家登录系统后可自行修改完善自身专家信息。信息需数管中心审核后方可生效。3、专家抽取管理:实现已有专家中,可根据不同类型筛选,并随机抽取对应专家,系统通过对接短信平台和智能语音平台来自动发送评审会议通知,专家实施反馈。(1)需在抽取管理中预设抽取规则模板:模板一:1000万预算以下项目,抽取5名评审专家,先抽取1名信创专家,待信创专家确认参会后再抽取4名信息化专家。模板二:1000万预算(含)以上项目抽取7名评审专家,先抽取1名信创专家,待信创专家确认参会后再抽取6名信息化专家。支持多轮抽取,已确保专家随机抽取的有效性。(2)专家评审通知规则:抽中的专家立即通过智能语音电话进行通知,专家选择参会后以短信形式再次发送项目评审会的时间、地址、项目名称信息给参会专家。如抽中专家接了电话未反馈是否参会或拒绝参会,系统自动进行下一轮抽取。如抽中的专家未接电话,10分钟后再拨打一次,如还未接,判断为不参会,系统自动进行下一轮抽取。直至抽满足够人数为止。(3)抽取规避原则:1)信创专家会和信息化专家有重叠,在信创专家中抽中的专家在后续信息化专家抽取中要规避。2)如有专家是在此申报单位中任职的,系统要自动规避抽取。(4)评审会信息修改与取消:需要实现评审会评审时间或地点修改,可以语音电话通知和短信通知相应专家的功能。需要实现评审会取消与通知,可以语音电话通知和短信通知相应专家的功能。(5)自动抽取失败处理:如专家自动抽取中发生反馈参会专家数量少于所需专家数量时,需要提实现手动指定专家参会的功能。(6)专家请假:提供专家评审会请假功能,已抽中并参加评审会的专家,如后续需要请假,可由两种方式进行申请:(1)专家电话联系评审会邀请人进行请假,评审会邀请人在系统中录入并确认该专家请假,邀请人可再次发起专家抽取进行补充专家。(2)专家登录系统进行申请请假,请假申请后系统自动再抽取一轮专家进行补充,并将变更信息通知评审会邀请人。4、专家履职: 可在系统中,查看专家参与评审的所有项目记录信息,并履行相关的项目审查工作。'''
  157. # str_con = AutoDLResultNoNum(f"告诉我下面两段话的重复率百分比是多少: \n第一段话是:'{content_x}', \n ----------------- \n 第二段话是:'{content_y}'")
  158. # print(str_con)
  159. # qwenResult("你好啊", "你真好")
  160. string = "相似度等级:高 原因:这两段话都涉及到信息"
  161. print(string[6:7])