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.
155 lines
8.6 KiB
155 lines
8.6 KiB
#coding:utf8
|
|
import re
|
|
import json
|
|
from jsonpath_ng import jsonpath, parse
|
|
import traceback
|
|
from log_util.set_logger import set_logger
|
|
def parse_data(raw_data,url):
|
|
val = None
|
|
try:
|
|
if "#json#" in url:
|
|
parm = url.split("#")
|
|
data1 = parse_data(raw_data, parm[0])
|
|
data1_json = json.loads(data1)
|
|
expr = parse(parm[2])
|
|
match = [match.value for match in expr.find(data1_json)]
|
|
val = match[0]
|
|
else:
|
|
all_result = raw_data['data']
|
|
param_split = str(url).split(":")
|
|
datasourcestr = all_result[param_split[0]]
|
|
datasource = json.loads(datasourcestr)
|
|
# 创建 JsonPath 表达式对象
|
|
expr = parse(param_split[1])
|
|
# 使用表达式来选择 JSON 元素
|
|
match = [match.value for match in expr.find(datasource)]
|
|
val = match[0]
|
|
except Exception as e:
|
|
traceback.print_exc()
|
|
val = ''
|
|
return val
|
|
|
|
|
|
|
|
|
|
def get_content(inputdata,logging):
|
|
"""
|
|
重新组装参数
|
|
:param inputdata:原json数据
|
|
:return: 组装的prompt及其他参数
|
|
"""
|
|
res={}
|
|
admin=inputdata["metadata"]["admin"]
|
|
data=inputdata["data"]
|
|
prompt=admin["prompt"]
|
|
if_user=re.findall("{{(.*)}}",prompt)
|
|
if_data=re.findall("@@(.*)@@",prompt)
|
|
if if_user != []:
|
|
user_data=inputdata["metadata"]["user"]
|
|
if if_user[0] in user_data.keys():
|
|
tmp=user_data[if_user[0]]
|
|
prompt=re.sub("{{(.*)}}",tmp,prompt)
|
|
if if_data!=[] and if_data[0] in data.keys():
|
|
tmp1=data[if_data[0]]
|
|
prompt=re.sub("@@(.*)@@",tmp1,prompt)
|
|
res["prompt"]=prompt
|
|
res["authorization"]=admin["authorization"]
|
|
res["model"]=admin["model"]
|
|
res["temperature"]=admin["temperature"]
|
|
res["authorization"]=admin["authorization"]
|
|
res["top_p"]=admin["top_p"]
|
|
res["n"]=admin["n"]
|
|
return res
|
|
|
|
|
|
|
|
if __name__=="__main__":
|
|
datasourcestr = '{"author": "Pelham@Resist_05", "authorId": "1430497892314218502", "authornickname": "", "commentsCount": 2518, "content": "Israeli Army Commander admits they handcuffed 2 couples inside a house then used tanks to destroy the building.15 civilians were burned to death including 8 babies… https://t.co/1V4iUsA3RM", "crawlTimeStr": "2024-01-03 17:39:25", "fansCount": "", "friendsCount": "", "otherInfoJson": "", "pageType": "storyDetailPage", "postCount": "", "postId": "1733008513163784237", "pubTimeStr": "2023-12-08 14:20:01", "subjectId": "304904", "taskId": "1111881", "userType": ""}'
|
|
datasource = json.loads(datasourcestr)
|
|
# logging.info("数据源:{}".format(datasource))
|
|
# 创建 JsonPath 表达式对象
|
|
expr = parse("$.crawlTimeStr")
|
|
# 使用表达式来选择 JSON 元素
|
|
match = [match.value for match in expr.find(datasource)]
|
|
val = match[0]
|
|
print(val)
|
|
# inputdata={
|
|
# "metadata":{
|
|
# "output":{
|
|
# "output_type":"table",
|
|
# "label_col":[
|
|
# "软件著作抽取结果"
|
|
# ]
|
|
# },
|
|
# "input":{
|
|
# "input_type":"text",
|
|
# "label":[
|
|
# "7_软件著作过滤器"
|
|
# ]
|
|
# },
|
|
# "address":"http://172.18.1.181:9011/chatGpt/",
|
|
# "admin":{
|
|
# "authorization":"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",
|
|
# "top_p":"1",
|
|
# "user_input":[
|
|
# {
|
|
# "keyname":"tag",
|
|
# "keydesc":""
|
|
# }
|
|
# ],
|
|
# "temperature":"0.2",
|
|
# "model":"gpt-3.5-turbo-16k",
|
|
# "prompt":"请在下面这句话中提取出:证书号、软件名称、著作权人,以json格式输出,找不到的字段赋值为空字符串,不要有多余的文字输出,只输出json结构。@@7_软件著作过滤器@@",
|
|
# "n":"1"
|
|
# },
|
|
# "index":1
|
|
# },
|
|
# "data":{
|
|
# "1_项目文件上传":"[{ \"fileUrl\":\"http://172.18.1.130:9985/group33/default/20230816/16/05/1/1-基于时间序列遥感 影像洪涝检测系统.jpg\",\"fileType\":\"jpg\", \"filePath\":\"/软件著作/1-基于时间序列遥感 影像洪涝检测系统.jpg\",\"fileId\":\"cd6592f0389bb1da25afbb44901f9cde\",\"fileName\":\"1-基于时间序列遥感 影像洪涝检测系统.jpg\" },{ \"fileUrl\":\"http://172.18.1.130:9985/group33/default/20230816/16/06/1/2-基于遥感影像的快速变化检测系统.jpg\",\"fileType\":\"jpg\", \"filePath\":\"/软件著作/2-基于遥感影像的快速变化检测系统.jpg\",\"fileId\":\"338847e34904fa96e8834cb220667db8\",\"fileName\":\"2-基于遥感影像的快速变化检测系统.jpg\" },{ \"fileUrl\":\"http://172.18.1.130:9985/group33/default/20230816/16/08/1/3-基于时空模型的遥感时间序列森林火灾检测系统.jpg\",\"fileType\":\"jpg\", \"filePath\":\"/软件著作/1/3-基于时空模型的遥感时间序列森林火灾检测系统.jpg\",\"fileId\":\"944eec1cf98f216ea953459dac4dd505\",\"fileName\":\"3-基于时空模型的遥感时间序列森林火灾检测系统.jpg\" },{ \"fileUrl\":\"http://172.18.1.130:9985/group33/default/20230816/16/09/1/4-基于隐马尔可夫模型的遥感时间序列分类系统.jpg\",\"fileType\":\"jpg\", \"filePath\":\"/软件著作/4-基于隐马尔可夫模型的遥感时间序列分类系统.jpg\",\"fileId\":\"eb378cb9ee914323f601500378dfad76\",\"fileName\":\"4-基于隐马尔可夫模型的遥感时间序列分类系统.jpg\" }]",
|
|
# "2_文件分类信息":"{\"软件著作\":4}",
|
|
# "3_OCR识别内容":"{\"content\":\" 22222222222222222222222222222222222222222222222222\\n中华人民共和国国家版权局\\n计算机软件著作权登记证书\\n证书号:软著登字第1623261号\\n软件名称:\\n基于遥感影像的快速变化检测系统\\nV1.0\\n著作权人:中国科学院遥感与数字地球研究所\\n开发完成日期:2016年08月01日\\n首次发表日期:未发表\\n权利取得方式:原始取得\\n权利范围:全部权利\\n登记号:2017SR037977\\n根据《计算机软件保护条例》和《计算机软件著作权登记办法》的\\n规定,经中国版权保护中心审核,对以上事项予以登记\\n计算机软件著作权\\n登记专用章\\n2017年02月10日\\nNo.01433672\",\"fileId\":\"338847e34904fa96e8834cb220667db8\",\"fileName\":\"2-基于遥感影像的快速变化检测系统.jpg\",\"filePath\":\"/软件著作/2-基于遥感影像的快速变化检测系统.jpg\",\"fileType\":\"jpg\",\"fileUrl\":\"http://172.18.1.130:9985/group33/default/20230816/16/06/1/2-基于遥感影像的快速变化检测系统.jpg\",\"pageNum\":1}",
|
|
# "businessKey":"185aef3b1c810799a6be8314abf6512c",
|
|
# "7_软件著作过滤器":"{\"content\":\" 22222222222222222222222222222222222222222222222222\\n中华人民共和国国家版权局\\n计算机软件著作权登记证书\\n证书号:软著登字第1623261号\\n软件名称:\\n基于遥感影像的快速变化检测系统\\nV1.0\\n著作权人:中国科学院遥感与数字地球研究所\\n开发完成日期:2016年08月01日\\n首次发表日期:未发表\\n权利取得方式:原始取得\\n权利范围:全部权利\\n登记号:2017SR037977\\n根据《计算机软件保护条例》和《计算机软件著作权登记办法》的\\n规定,经中国版权保护中心审核,对以上事项予以登记\\n计算机软件著作权\\n登记专用章\\n2017年02月10日\\nNo.01433672\",\"fileId\":\"338847e34904fa96e8834cb220667db8\",\"fileName\":\"2-基于遥感影像的快速变化检测系统.jpg\",\"filePath\":\"/软件著作/2-基于遥感影像的快速变化检测系统.jpg\",\"fileType\":\"jpg\",\"fileUrl\":\"http://172.18.1.130:9985/group33/default/20230816/16/06/1/2-基于遥感影像的快速变化检测系统.jpg\",\"pageNum\":1}"
|
|
# },
|
|
# "created":1691004265000,
|
|
# "module":"OCR",
|
|
# "start_tag":"false",
|
|
# "last_edit":1692464331000,
|
|
# "next_app_id":[
|
|
# {
|
|
# "start_id":86,
|
|
# "edge_id":49,
|
|
# "end_id":90
|
|
# }
|
|
# ],
|
|
# "transfer_id":11,
|
|
# "blueprint_id":3,
|
|
# "scenes_id":3,
|
|
# "scenario":{
|
|
# "dataloss":1,
|
|
# "autoCommitTriggerLast":1,
|
|
# "maxErrors":3,
|
|
# "autoCommit":1,
|
|
# "freshVariables":1
|
|
# },
|
|
# "wait_condition":[
|
|
#
|
|
# ],
|
|
# "scheduling":{
|
|
# "interval":-1,
|
|
# "type":"single"
|
|
# },
|
|
# "name":"软件著作抽取",
|
|
# "businessKey":"185aef3b1c810799a6be8314abf6512c",
|
|
# "id":86,
|
|
# "describe":"软件著作抽取"
|
|
# }
|
|
# a=get_content(inputdata,"")
|
|
# print(a)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|