添加简历识别模块

This commit is contained in:
sh
2026-07-22 19:04:10 +08:00
parent f331e4da8f
commit b0ea553370
5 changed files with 108 additions and 3 deletions

View File

@@ -225,6 +225,7 @@ ocr:
# ocr_mutipart: http://10.98.80.141:9000/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_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_apiKey: NfzPnFRtogHlYCAh2hHIB7ra5EsrSQEM
ocr_llm_chatUrl: http://39.98.44.136:6016/v1/chat/completions
cipher-security: cipher-security:
socket: 39.102.146.78:11028 socket: 39.102.146.78:11028

View File

@@ -219,10 +219,11 @@ file:
ocr: ocr:
ocr_url: http://127.0.0.1:9001/ocr ocr_url: http://127.0.0.1:9001/ocr
ocr_mutipart: https://qd.zhaopinzao8dian.com/ocr-api/ocr # ocr_mutipart: https://qd.zhaopinzao8dian.com/ocr-api/ocr
# ocr_mutipart: http://10.98.80.141:9000/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_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_apiKey: NfzPnFRtogHlYCAh2hHIB7ra5EsrSQEM
ocr_llm_chatUrl: http://10.98.76.104:1025/v1/chat/completions
cipher-security: cipher-security:
# socket: 39.102.146.78:11028 # socket: 39.102.146.78:11028

View File

@@ -154,6 +154,95 @@ public class StringUtil {
REGION_CODE_CODE_MAP = Collections.unmodifiableMap(tempMap); 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 * areaToRegion
* @param area * @param area

View File

@@ -69,6 +69,14 @@ public class EncryptConstants {
"/app/appskill/list", "/app/appskill/list",
"/cms/appskill/list", "/cms/appskill/list",
"/cms/employeeConfirm/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"
); );
} }

View File

@@ -144,6 +144,12 @@ public class RequestWrapperFilter implements Filter {
} }
String requestURI = request.getRequestURI(); String requestURI = request.getRequestURI();
// 排除指定接口
for (String exclude : EncryptConstants.EXCLUDE_PATTERNS) {
if (pathMatcher.match(exclude, requestURI)) {
return false;
}
}
// 检查URL是否匹配需要加解密的模式 // 检查URL是否匹配需要加解密的模式
for (String pattern : EncryptConstants.URL_PATTERNS) { for (String pattern : EncryptConstants.URL_PATTERNS) {