查询知识库应用
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.

149 lines
5.5 KiB

  1. #coding:utf8
  2. import re
  3. import json
  4. from jsonpath_ng import jsonpath, parse
  5. def parse_data(raw_data,field):
  6. parm = field.split("#")
  7. all_result = raw_data['data']
  8. if "json" in field:
  9. param_split = str(parm[0]).split(":")
  10. datasourcestr = all_result[param_split[0]]
  11. datasource = json.loads(datasourcestr)
  12. # 创建 JsonPath 表达式对象
  13. expr = parse(param_split[1])
  14. # 使用表达式来选择 JSON 元素
  15. match = [match.value for match in expr.find(datasource)]
  16. data1_json = json.loads(match[0])
  17. expr = parse(parm[2])
  18. match = [match.value for match in expr.find(data1_json)]
  19. result = match[0]
  20. else:
  21. all_result = raw_data['data']
  22. param_split = str(parm[0]).split(":")
  23. datasourcestr = all_result[param_split[0]]
  24. datasource = json.loads(datasourcestr)
  25. # 创建 JsonPath 表达式对象
  26. expr = parse(param_split[1])
  27. # 使用表达式来选择 JSON 元素
  28. match = [match.value for match in expr.find(datasource)]
  29. result = match[0]
  30. return result
  31. def promptPro(prompt,allPromptSim):
  32. p=""
  33. for promptSim in allPromptSim["documents"][0]:
  34. p+=promptSim
  35. p+="\n"
  36. if len(prompt)+len(p)>50000:
  37. p=p[0:50000-len(prompt)]
  38. res = "已知信息:\n{}\n参考上述已知信息回答问题:\n{}".format(p, prompt)
  39. return res
  40. # def parse_data(raw_data,url):
  41. # all_result = raw_data['data']
  42. # param_split = str(url).split(":")
  43. # datasourcestr = all_result[param_split[0]]
  44. # datasource = json.loads(datasourcestr)
  45. # # 创建 JsonPath 表达式对象
  46. # expr = parse(param_split[1])
  47. # # 使用表达式来选择 JSON 元素
  48. # match = [match.value for match in expr.find(datasource)]
  49. # val = match[0]
  50. # return val
  51. def get_content(inputdata,logging):
  52. """
  53. :param inputdata:json数据
  54. :return: prompt及其他参数
  55. """
  56. res={}
  57. admin=inputdata["metadata"]["admin"]
  58. data=inputdata["data"]
  59. prompt=admin["prompt"]
  60. if_user=re.findall("{{(.*)}}",prompt)
  61. if_data=re.findall("@@(.*)@@",prompt)
  62. if if_user != []:
  63. user_data=inputdata["metadata"]["user"]
  64. if if_user[0] in user_data.keys():
  65. tmp=user_data[if_user[0]]
  66. prompt=re.sub("{{(.*)}}",tmp,prompt)
  67. if if_data!=[] and if_data[0] in data.keys():
  68. tmp1=data[if_data[0]]
  69. prompt=re.sub("@@(.*)@@",tmp1,prompt)
  70. res["prompt"]=prompt
  71. res["authorization"]=admin["authorization"]
  72. res["model"]=admin["model"]
  73. res["temperature"]=admin["temperature"]
  74. res["authorization"]=admin["authorization"]
  75. res["top_p"]=admin["top_p"]
  76. res["n"]=admin["n"]
  77. return res
  78. if __name__=="__main__":
  79. inputdata={
  80. "output":{
  81. "id":"id",
  82. "content":"content"
  83. },
  84. "input":{
  85. "chunkSize":"1_Youtube采集:$['file']#json#$['chunkSize']",
  86. "content":"1_Youtube采集:$['file']#json#$['content']",
  87. "fieldName":"1_Youtube采集:$['file']#json#$['fieldName']"
  88. },
  89. "data":{
  90. "1_Youtube采集":"{\"file\": \"{\\\"chunkSize\\\": \\\"500\\\", \\\"content\\\": \\\"广东省人民政府关于公布广东省行政许可事项清单(2023年版)的通知,广东省人民政府关于公布广东省行政许可事项 清单(2023年版)的通知 粤府〔2023〕101号 各地级以上市人民政府,各县(市、区)人民政府,省政府各部门、各直属机构,中直驻粤有关单位:   为深入贯彻习近平新时代中国特色社会主义思想,全面贯彻党的二十大精神,认真落实党中央、国务院决策部署,按照《国务院办公厅关于公布〈法律、行政法规、国务院决定设定的行政许可事项清单(2023年版)〉的通知》(国办发〔2023〕5号)要求,结合我省行政审批制度改革情况,省政府办公厅会同有关部门对行政许可事项调整情况进行汇总,修订形成《广东省行政许可事项清单(2023年版)》,现予公布。   各地各部门要认真对照《广东省行政许可事项清单(2023年版)》及时调整完善本地本系统行政许可事项清单和实施规范,严格依照清单实施行政许可,不断强化实施情况动态评估和全程监督,扎实有效做好全面实行行政许可事项清单管理工作。 广东省人民政府 2023年12月19日   附件:广东省行政许可事项清单(2023年版)\\\", \\\"fieldName\\\": \\\"field_test\\\", \\\"fileType\\\": \\\"mp4\\\", \\\"fileUrl\\\": \\\"http://172.18.1.130:9985/group33/default/20230828/15/48/1/lKTZNen6aak.mp4\\\", \\\"ossPath\\\": \\\"/group33/default/20230828/15/48/1/lKTZNen6aak.mp4\\\"}\"}"
  91. },
  92. "created":1691004265000,
  93. "module":"ASR",
  94. "start_tag":"false",
  95. "multi_branch":0,
  96. "last_edit":1693417201000,
  97. "next_app_id":[
  98. {
  99. "start_id":154,
  100. "edge_id":75,
  101. "end_id":155
  102. }
  103. ],
  104. "transfer_id":3,
  105. "version":1,
  106. "blueprint_id":4,
  107. "scenes_id":5,
  108. "scenario":{
  109. "dataloss":1,
  110. "autoCommitTriggerLast":1,
  111. "maxErrors":3,
  112. "autoCommit":1,
  113. "freshVariables":1
  114. },
  115. "wait_condition":[
  116. ],
  117. "scheduling":{
  118. "interval":-1,
  119. "type":"single"
  120. },
  121. "name":"ASR",
  122. "businessKey":"19615b029da477fb",
  123. "id":154,
  124. "position":[
  125. 100,
  126. 200
  127. ],
  128. "describe":"ASR识别"
  129. }
  130. a=parse_data(inputdata,inputdata["input"]["fieldName"])
  131. print(a)