添加简历识别模块
This commit is contained in:
@@ -225,6 +225,7 @@ ocr:
|
||||
# ocr_mutipart: http://10.98.80.141:9000/ocr
|
||||
ocr_llm_url: http://39.98.44.136:6016/inner-ai/aicoapi/gateway/v2/chatbot/api_run/1763386387_d4c07131-a047-4c0d-9623-7e3c3a45bd7e
|
||||
ocr_llm_apiKey: NfzPnFRtogHlYCAh2hHIB7ra5EsrSQEM
|
||||
ocr_llm_chatUrl: http://39.98.44.136:6016/v1/chat/completions
|
||||
|
||||
cipher-security:
|
||||
socket: 39.102.146.78:11028
|
||||
|
||||
@@ -219,10 +219,11 @@ file:
|
||||
|
||||
ocr:
|
||||
ocr_url: http://127.0.0.1:9001/ocr
|
||||
ocr_mutipart: https://qd.zhaopinzao8dian.com/ocr-api/ocr
|
||||
# ocr_mutipart: http://10.98.80.141:9000/ocr
|
||||
# ocr_mutipart: https://qd.zhaopinzao8dian.com/ocr-api/ocr
|
||||
ocr_mutipart: http://10.98.80.141:9000/ocr
|
||||
ocr_llm_url: http://39.98.44.136:6016/inner-ai/aicoapi/gateway/v2/chatbot/api_run/1763386387_d4c07131-a047-4c0d-9623-7e3c3a45bd7e
|
||||
ocr_llm_apiKey: NfzPnFRtogHlYCAh2hHIB7ra5EsrSQEM
|
||||
ocr_llm_chatUrl: http://10.98.76.104:1025/v1/chat/completions
|
||||
|
||||
cipher-security:
|
||||
# socket: 39.102.146.78:11028
|
||||
|
||||
@@ -154,6 +154,95 @@ public class StringUtil {
|
||||
REGION_CODE_CODE_MAP = Collections.unmodifiableMap(tempMap);
|
||||
}
|
||||
|
||||
/**
|
||||
* 解析简历
|
||||
*/
|
||||
public static final String RESUME_SYSTEM_PROMPT = "你是简历OCR信息提取工具,仅输出标准JSON,严格遵守全部规则:\n" +
|
||||
"1. 禁止输出任何解释、步骤、Markdown、前言、后语,只返回纯JSON字符串;\n" +
|
||||
"2. 完全按照下方模板字段生成,字段名称一字不能修改,所有字段必须保留;\n" +
|
||||
"3. 识别不到的内容:普通字符串填\"\",数字填0,数组/子集合填[],不允许删除key;\n" +
|
||||
"4. 时间统一输出文本格式yyyy-MM-dd,文本标点原样保留;\n" +
|
||||
"5. 数组类字段拆分多条信息存入数组,不要逗号拼接字符串;\n" +
|
||||
"\n" +
|
||||
"【强制输出JSON模板,完全匹配UserInfoDetail实体】\n" +
|
||||
"{\n" +
|
||||
" \"name\": \"\",\n" +
|
||||
" \"age\": \"\",\n" +
|
||||
" \"sex\": \"\",\n" +
|
||||
" \"education\": \"\",\n" +
|
||||
" \"birthDate\": \"\",\n" +
|
||||
" \"politicalAffiliation\": \"\",\n" +
|
||||
" \"phone\": \"\",\n" +
|
||||
" \"avatar\": \"\",\n" +
|
||||
" \"salaryMin\": \"\",\n" +
|
||||
" \"salaryMax\": \"\",\n" +
|
||||
" \"area\": \"\",\n" +
|
||||
" \"jobTitleId\": \"\",\n" +
|
||||
" \"experience\": \"\",\n" +
|
||||
" \"jobTitle\": [],\n" +
|
||||
" \"idNumber\": \"\",\n" +
|
||||
" \"introduction\": \"\",\n" +
|
||||
" \"selfEvaluation\": \"\",\n" +
|
||||
" \"contactEmail\": \"\",\n" +
|
||||
" \"jobIntention\": \"\",\n" +
|
||||
" \"graduationSchool\": \"\",\n" +
|
||||
" \"workYears\": 0,\n" +
|
||||
" \"residenceAddress\": \"\",\n" +
|
||||
" \"major\": \"\",\n" +
|
||||
" \"educationExp\": [\n" +
|
||||
" {\n" +
|
||||
" \"schoolName\": \"\",\n" +
|
||||
" \"major\": \"\",\n" +
|
||||
" \"education\": \"\",\n" +
|
||||
" \"startTime\": \"\",\n" +
|
||||
" \"endTime\": \"\"\n" +
|
||||
" }\n" +
|
||||
" ],\n" +
|
||||
" \"workExp\": [\n" +
|
||||
" {\n" +
|
||||
" \"companyName\": \"\",\n" +
|
||||
" \"position\": \"\",\n" +
|
||||
" \"startTime\": \"\",\n" +
|
||||
" \"endTime\": \"\",\n" +
|
||||
" \"workContent\": \"\"\n" +
|
||||
" }\n" +
|
||||
" ],\n" +
|
||||
" \"projectExp\": [\n" +
|
||||
" {\n" +
|
||||
" \"projectName\": \"\",\n" +
|
||||
" \"position\": \"\",\n" +
|
||||
" \"startTime\": \"\",\n" +
|
||||
" \"endTime\": \"\",\n" +
|
||||
" \"projectDesc\": \"\"\n" +
|
||||
" }\n" +
|
||||
" ],\n" +
|
||||
" \"certificateList\": [\n" +
|
||||
" {\n" +
|
||||
" \"certName\": \"\",\n" +
|
||||
" \"getDate\": \"\"\n" +
|
||||
" }\n" +
|
||||
" ],\n" +
|
||||
" \"skillList\": [\n" +
|
||||
" {\n" +
|
||||
" \"skillName\": \"\",\n" +
|
||||
" \"skillLevel\": \"\"\n" +
|
||||
" }\n" +
|
||||
" ],\n" +
|
||||
" \"professionalTechnicalPostList\": [\n" +
|
||||
" {\n" +
|
||||
" \"postName\": \"\",\n" +
|
||||
" \"level\": \"\"\n" +
|
||||
" }\n" +
|
||||
" ],\n" +
|
||||
" \"resumeOcrStatus\": \"\",\n" +
|
||||
" \"resumeList\": [],\n" +
|
||||
" \"indices\": [],\n" +
|
||||
" \"isCert\": \"\",\n" +
|
||||
" \"remark\": \"\",\n" +
|
||||
" \"isRecommend\": 0\n" +
|
||||
"}\n" +
|
||||
"要求:只返回上面这份JSON,无任何额外文字!";
|
||||
|
||||
/**
|
||||
* areaToRegion
|
||||
* @param area
|
||||
|
||||
@@ -69,6 +69,14 @@ public class EncryptConstants {
|
||||
"/app/appskill/list",
|
||||
"/cms/appskill/list",
|
||||
"/cms/employeeConfirm/list",
|
||||
"/app/user/createResume"
|
||||
"/app/user/createResume",
|
||||
"/app/user/resume/recognition"
|
||||
);
|
||||
|
||||
/**
|
||||
* 请求需要排除的接口
|
||||
*/
|
||||
public static final List<String> EXCLUDE_PATTERNS = Arrays.asList(
|
||||
"/app/user/resume/recognition"
|
||||
);
|
||||
}
|
||||
@@ -144,6 +144,12 @@ public class RequestWrapperFilter implements Filter {
|
||||
}
|
||||
|
||||
String requestURI = request.getRequestURI();
|
||||
// 排除指定接口
|
||||
for (String exclude : EncryptConstants.EXCLUDE_PATTERNS) {
|
||||
if (pathMatcher.match(exclude, requestURI)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 检查URL是否匹配需要加解密的模式
|
||||
for (String pattern : EncryptConstants.URL_PATTERNS) {
|
||||
|
||||
Reference in New Issue
Block a user