ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

AI赋能招聘:FunctionCalling精准匹配岗位简历

AI赋能招聘:FunctionCalling精准匹配岗位简历 13-1 利用提示词工程计算岗位匹配度13-2 Function Calling 业务背景13-3 Function Calling 的工作原理13-4 Function Calling 入门案例13-5 Function Calling 集成简历学历外部接口一、知识点梳理1.什么是Function Calling大模型不能直接操作数据库、调用后端接口。我们预先定义好可供模型调用的函数描述函数名、作用、入参格式大模型根据用户问题自主判断是否需要调用函数、生成函数入参后端收到模型指令后执行接口/函数拿到结果再传给模型整理成自然语言回复用户。我们定好我们需要的物品然后进行表述给大模型 大模型根据我们的询问 判断我们当前问题是否需要我们自己定义的函数 生成需要的函数体 后端接受到模型的指定然后发送请求 大模型将结果返回给用户2. 业务场景招聘平台简历-岗位匹配基础方案纯提示词把岗位要求、候选人简历全部丢进prompt让模型计算匹配分数缺点是数据量大、无法动态读取数据库最新简历。进阶方案Function Calling用户询问「这份简历适合哪些岗位」→ 模型自动调用后端简历查询接口 → 获取学历、工作经历 → 再调用岗位检索接口 → 综合数据输出匹配结果。1. 模拟业务接口简历学历信息接口def get_resume_edu_info(resume_id: str): 根据简历ID获取候选人学历信息 :param resume_id: 简历唯一编号 # 模拟请求梦远学历接口真实环境替换http请求 mock_data { resume_id: resume_id, education: 本科, major: 计算机科学与技术, work_year: 3 } return mock_data def get_match_job_list(education: str, work_year: int): 根据学历、工作年限查询适配岗位 job_list [ {job_name: 后端开发工程师, match_score: 86}, {job_name: AI应用开发, match_score: 92} ] return job_list # 工具清单提供给大模型识别 tool_list [ { type: function, function: { name: get_resume_edu_info, description: 通过简历编号获取候选人学历、专业、工作年限, parameters: { type: object, required: [resume_id], properties: { resume_id: {type: string, description: 简历id} } } } }, { type: function, function: { name: get_match_job_list, description: 根据学历、工作年限查询匹配岗位, parameters: { type: object, required: [education, work_year], properties: { education: {type: string}, work_year: {type: integer} } } } } ]通过调用外部的接口来实现 我们真实的学历信息返回2. 主程序工具调用调度核心逻辑import json from fastapi import FastAPI from openai import OpenAI from tools import tool_list, get_resume_edu_info, get_match_job_list app FastAPI() client OpenAI( base_url你的模型接口地址, api_key你的key ) # 函数映射字符串名称 对应 真实方法 func_map { get_resume_edu_info: get_resume_edu_info, get_match_job_list: get_match_job_list } app.post(/chat/job_match) def chat_with_tools(user_query: str, resume_id: str): messages [{role: user, content: f{user_query}简历编号{resume_id}}] # 第一轮大模型判断是否调用工具 response client.chat.completions.create( modelqwen-turbo, messagesmessages, toolstool_list ) msg response.choices[0].message # 判断触发工具调用 if msg.tool_calls: for call in msg.tool_calls: func_name call.function.name args json.loads(call.function.arguments) # 本地执行函数 result func_map[func_name](**args) # 将工具返回结果追加到对话 messages.append(msg.model_dump()) messages.append({ role: tool, tool_call_id: call.id, content: json.dumps(result, ensure_asciiFalse) }) # 第二轮把工具结果交给模型整理成自然语言 final_resp client.chat.completions.create( modelqwen-turbo, messagesmessages ) return { code: 200, answer: final_resp.choices[0].message.content } # 不需要调用工具直接返回回答 return {code: 200, answer: msg.content}判断我们当前的对话 是否需要调用我们定义的函数如果是我们则调用我们提前编写好的函数 提取用户对话中的关键词入参然后返回给大模型 让大模型用更自然的语言输出即可3.提示词prompt_template 你是招聘HR根据下面【岗位要求】和【候选人简历】输出0~100之间的岗位匹配分数并给出理由。【简历信息】{resume_text}【岗位要求】{job_require}只输出json格式{{score:分数,reason:匹配理由}}可以按照自己的需求 将之际需要什么人去干这个失去的提示词输入给ai ai就会按照这个人物去执行任务———————————————————————————————————————————本文介绍了基于Function Calling技术实现简历与岗位智能匹配的方法。传统纯提示词方案存在数据量大、无法动态更新的缺点而Function Calling通过预定义函数接口使大模型能够自主调用外部数据服务。文章详细展示了业务场景实现当用户查询简历匹配度时模型自动调用简历查询接口获取学历、工作经历再检索匹配岗位最终生成自然语言回复。技术实现包括1)模拟简历学历和岗位检索接口2)定义工具函数清单供模型识别3)开发调度程序处理函数调用逻辑。这种方案有效解决了动态数据访问问题相比纯提示词
返回列表