Jelajahi Sumber

renamed: KGAPI.py -> KG_Search_API.py
new file: KG_Update_API.py
renamed: "KG\346\220\234\347\264\242.py" -> "KG_\346\220\234\347\264\242_test.py"

sprivacy 3 tahun lalu
induk
melakukan
fc1d507325
3 mengubah file dengan 194 tambahan dan 0 penghapusan
  1. 0 0
      KG_Search_API.py
  2. 194 0
      KG_Update_API.py
  3. 0 0
      KG_搜索_test.py

KGAPI.py → KG_Search_API.py


+ 194 - 0
KG_Update_API.py

@@ -0,0 +1,194 @@
+import uvicorn
+from typing import Dict,List,Any
+from fastapi import FastAPI
+from pydantic import BaseModel
+from hashlib import md5
+
+app =FastAPI()
+
+# 各种知识集构建
+global cookie, base_url, willpush, pushed, pushlen
+willpush = True
+cookie = "JSESSIONID=40225388-b817-471b-8fc0-7afb72389712"
+base_url = 'http://180.76.188.39:8284/'
+
+pushed = []
+pushlen = 0
+
+def post_json(json_obj, token="1654940290763"):
+	""" 
+	将json数据提交到push接口
+	:param json_obj: 
+	:return: 
+	""" 
+	global willpush, pushed, pushlen
+	# 是否已推送
+	if json_obj['@id'] in pushed:
+		print(len(pushed))
+		return ''
+	# 推送
+	pushed.append(json_obj['@id'])
+
+	url = base_url + "data/api/access/push"
+	headers = {
+		"token": token,
+		"Cookie": cookie
+	}
+	# print(url)
+	if pushlen < 300:
+		return ""
+	else:
+		response = requests.post(url, json=json_obj, headers=headers) 
+		result = response.text
+		print(result)
+		pass
+	if json_obj["@type"] == "相关机构":
+		print(json_obj)
+	time.sleep(0.1)
+
+	return ""
+
+eduback_dict = {
+	26:'博士后', 
+	24:'博士', 
+	22:'MBA/EMBA', 
+	20:'硕士', 
+	18:'本科', 
+	16:'大专', 
+	14:'中专/中技', 
+	12: '高中', 
+	10:'初中及以下'
+}
+
+@app.post("/API/TEST")
+async def trans_push(xdpost: dict):
+	xdpost = xdpost['data']
+	high_edu = {"schoolName": None,"major": None,"degree": None}
+	org_list = []
+	job_list = []
+	for job in xdpost["hisJob"]:
+		org_list.append(job['companyName'])
+		job_list.append(job['companyName'] + job['industry'] + job['jobName'] + job['jobDesc'])
+		post_json({
+			"@id": md5(job['companyName'].encode(encoding="UTF-8")).hexdigest(),
+			"id": md5(job['companyName'].encode(encoding="UTF-8")).hexdigest(),
+			"@type": "相关机构",
+			"@contentType": "struct",
+			"@markdel": "0",
+			"name": [{"@value": job['companyName']}]
+		})
+		post_json({
+			"@id": md5(job['id'].encode(encoding="UTF-8")).hexdigest(),
+			"id": job['id'],
+			"@type": "工作经历demo",
+			"name": job['companyName'] + job['industry'] + job['jobName'] + job['jobDesc'],
+			"@markdel": "0",
+			"@contentType": "struct",
+			"时间": [{"@value": job['startTime']+job['endTime']}],
+			"公司": [{"@value": job['companyName']}],
+			"行业": [{"@value": job['industry']}],
+			"职位": [{"@value": job['jobName']}],
+			"工作内容": [{"@value": job['jobDesc']}]
+		})
+	edu_list = []
+	for edu in xdpost["hisEdu"]:
+		if (not high_edu.get("schoolName")) or (high_edu['degree'] < edu['degree']):
+			high_edu['schoolName'] = edu['schoolName']
+			high_edu['major'] = edu['major']
+			high_edu['degree'] = edu['degree']
+		org_list.append(edu['schoolName'])
+		edu_list.append(edu['startTime'] + edu['schoolName'] + edu['major'] + eduback_dict[edu['degree']])
+		post_json({
+			"@id": md5(edu['schoolName'].encode(encoding="UTF-8")).hexdigest(),
+			"id": md5(edu['schoolName'].encode(encoding="UTF-8")).hexdigest(),
+			"@type": "相关机构",
+			"@contentType": "struct",
+			"@markdel": "0",
+			"name": [{"@value": edu['schoolName']}]
+		})
+		post_json({
+			"@id": md5(edu['id'].encode(encoding="UTF-8")).hexdigest(),
+			"id": edu['id'],
+			"@type": "教育经历demo",
+			"name": edu['startTime'] + edu['schoolName'] + edu['major'] + eduback_dict[edu['degree']],
+			"@markdel": "0",
+			"@contentType": "struct",
+			"时间": [{"@value": edu['startTime']+edu['endTime']}],
+			"学校": [{"@value": edu['schoolName']}],
+			"专业": [{"@value": edu['major']}],
+			"学历": [{"@value": edu['degree']}]
+		})
+	pro_list = []
+	for pro in xdpost["hisProject"]:
+		pro_list.append(pro['companyName'] + pro['projectName'] + pro['projectDesc'] + pro['projectDuty'])
+		post_json({
+			"@id": md5(pro['id'].encode(encoding="UTF-8")).hexdigest(),
+			"id": pro['id'],
+			"@type": "项目经历demo",
+			"name": pro['companyName'] + pro['projectName'] + pro['projectDesc'] + pro['projectDuty'],
+			"@markdel": "0",
+			"@contentType": "struct",
+			"时间": [{"@value": pro['startTime']+pro['endTime']}],
+			"公司": [{"@value": pro['companyName']}],
+			"项目": [{"@value": pro['projectName']}],
+			"职位": [{"@value": pro['projectDuty']}],
+			"成果": [{"@value": pro['projectDesc']}]
+		})
+	tra_list = []
+	json_obj = {
+		"@id": md5(xdpost['tId'].encode(encoding='UTF-8')).hexdigest(),
+		"id": xdpost['tId'],
+		"@type": "人才特征demo",
+		"name": xdpost['name'],
+		"@markdel": '0',
+		"@contentType": "struct",
+		"姓名": [{"@value": xdpost['name']}],
+		"年龄": [{"@value": xdpost['age']}],
+		"性别": [{"@value": '男' if xdpost['gender'] == "0" else '女'}],
+		"出生年月": [{"@value": xdpost['birthTime']}],
+		"手机号码": [{"@value": xdpost['mobile']}],
+		"电子邮箱": [{"@value": xdpost['email']}],
+		"政治面貌": [{"@value": xdpost['politics']}],
+		"参加工作时间": [{"@value": xdpost['workBeginTime']}],
+		"当前职位": [{"@value": xdpost['currentJob']}],
+		"意向职位": [{"@value": xdpost['intentJob']}],
+		"当前年薪": [{"@value": xdpost['currentSalaryYearly']}],
+		"当前所在城市": [{"@value": xdpost['livingCityName']}],
+		"意向城市": [{"@value": xdpost['intentCityName']}],
+		"意向年薪": [{"@value": xdpost['intentSalaryYearlyMax']}],
+
+		"相关机构": org_list,
+		"教育经历": edu_list,
+		"工作经历": job_list,
+		"项目经历": pro_list,
+		"培训和海外经历": tra_list,
+		"当前最高学历": [{"@value": eduback_dict[high_edu['degree']]}],
+		"最高学历学校": [{"@value": high_edu['schoolName']}],
+		"当前最高学历专业": [{"@value": high_edu['major']}],
+		"语言能力": [{"@value": val['lanName']} for val in xdpost['language']],
+		"技术职称": [{"@value": val['name']} for val in xdpost['skills']],
+		"研究领域": [{"@value": val['researchName']} for val in xdpost['researchList']],
+		"研究领域分类": [{"@value": val['researchName']} for val in xdpost['researchList']],
+
+		"婚姻状况": [{"@value": None}],
+		"特长爱好": [{"@value": None}],
+		"人才标签": [{"@value": None}],
+		"人才特点": [{"@value": None}],
+		"当前行业": [{"@value": None}],
+		"专业证书": [{"@value": None}],
+		"入选人才": [{"@value": None}],
+		"知识产权": [{"@value": None}],
+		"获得荣誉及证明": [{"@value": None}],
+		"备注信息": [{"@value": None}],
+		"对报名岗位认识及工作设想": [{"@value": None}],
+		"自我评价及主要工作业绩": [{"@value": None}],
+		"当前公司": [{"@value": None}],
+		"毕业院校分类": [{"@value": None}],
+		"工作年限": [{"@value": None}],
+		"专业方向大类": [{"@value": None}],
+		"报名岗位": [{"@value": None}],
+	}
+	return {"errno": 0, "msg": "Success"}
+
+if __name__ == '__main__':
+	uvicorn.run(app=app, host="0.0.0.0", port=8400)

KG搜索.py → KG_搜索_test.py