chroma新增、删除、知识库应用
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.
 
 

139 lines
5.2 KiB

#coding:utf8
import re
import json
from jsonpath_ng import jsonpath, parse
def parse_data(raw_data,field):
parm = field.split("#")
all_result = raw_data['data']
if "json" in field:
param_split = str(parm[0]).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)]
data1_json = json.loads(match[0])
expr = parse(parm[2])
match = [match.value for match in expr.find(data1_json)]
result = match[0]
else:
all_result = raw_data['data']
param_split = str(parm[0]).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)]
result = match[0]
return result
# def parse_data(raw_data,url):
# 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]
# 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__":
inputdata={
"output":{
"id":"id",
"content":"content"
},
"input":{
"chunkSize":"1_Youtube采集:$['file']#json#$['chunkSize']",
"content":"1_Youtube采集:$['file']#json#$['content']",
"fieldName":"1_Youtube采集:$['file']#json#$['fieldName']"
},
"data":{
"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\\\"}\"}"
},
"created":1691004265000,
"module":"ASR",
"start_tag":"false",
"multi_branch":0,
"last_edit":1693417201000,
"next_app_id":[
{
"start_id":154,
"edge_id":75,
"end_id":155
}
],
"transfer_id":3,
"version":1,
"blueprint_id":4,
"scenes_id":5,
"scenario":{
"dataloss":1,
"autoCommitTriggerLast":1,
"maxErrors":3,
"autoCommit":1,
"freshVariables":1
},
"wait_condition":[
],
"scheduling":{
"interval":-1,
"type":"single"
},
"name":"ASR",
"businessKey":"19615b029da477fb",
"id":154,
"position":[
100,
200
],
"describe":"ASR识别"
}
a=parse_data(inputdata,inputdata["input"]["fieldName"])
print(a)