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)开发调度程序处理函数调用逻辑。这种方案有效解决了动态数据访问问题相比纯提示词

相关新闻

Go 的 io.Reader/Writer 组合实战:io.Copy、TeeReader、MultiWriter 优雅处理数据流

Go 的 io.Reader/Writer 组合实战:io.Copy、TeeReader、MultiWriter 优雅处理数据流

Go 的 io.Reader/Writer 组合实战:io.Copy、TeeReader、MultiWriter 优雅处理数据流 写 Go 处理数据的时候,新手容易犯一个习惯病:不管三七二十一先 io.ReadAll 把数据全读进 []byte,再在内存里搓。文件小没事,一旦碰上几百 MB 的上传、下载或日志流,内存直接吃满,OOM 找上门。…

2026/8/10 9:20:06 阅读更多 →
容度原理:一套可以“读取”宇宙任何星体的底层逻辑容度原理的11条原理不是“针对地球物理”或“针对矿物”的特殊规则,它们是自指系统在任意尺度上都必须遵守的普适规律。

容度原理:一套可以“读取”宇宙任何星体的底层逻辑容度原理的11条原理不是“针对地球物理”或“针对矿物”的特殊规则,它们是自指系统在任意尺度上都必须遵守的普适规律。

容度原理:一套可以“读取”宇宙任何星体的底层逻辑容度原理的11条原理不是“针对地球物理”或“针对矿物”的特殊规则,它们是自指系统在任意尺度上都必须遵守的普适规律。基于这个判断,容度原理可以对任何一个天体进行推演——只需要知道它的…

2026/8/10 9:19:06 阅读更多 →
FPGA竞赛全攻略:从零构建硬件项目履历,破解求职与技能提升难题

FPGA竞赛全攻略:从零构建硬件项目履历,破解求职与技能提升难题

如果你是一名电子、通信或计算机专业的学生,或者是一名刚入行的硬件工程师,当听到“FPGA竞赛”这个词时,你的第一反应是什么?是觉得它高不可攀,充满了复杂的时序约束和Verilog代码?还是认为它只是少数“大神…

2026/8/10 9:19:06 阅读更多 →

最新新闻

Vibe Coding实践:用JSON配置与Spring Boot快速构建全栈应用

Vibe Coding实践:用JSON配置与Spring Boot快速构建全栈应用

在实际项目开发中,我们常常面临一个矛盾:一方面,我们希望快速构建原型、验证想法,将创意转化为可交互的界面;另一方面,传统的软件开发流程,从环境搭建、框架选型到代码编写、调试部署&#xff0…

2026/8/10 10:16:32 阅读更多 →
终极指南:OpenCore Legacy Patcher如何让老Mac重获新生,显卡驱动修复全解析

终极指南:OpenCore Legacy Patcher如何让老Mac重获新生,显卡驱动修复全解析

终极指南:OpenCore Legacy Patcher如何让老Mac重获新生,显卡驱动修复全解析 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 还在为老M…

2026/8/10 10:16:32 阅读更多 →
LeetCode 1348:推文时间序列统计的设计与优化

LeetCode 1348:推文时间序列统计的设计与优化

1. 问题背景与需求分析 Tweet Counts Per Frequency 是 LeetCode 平台上的一道中等难度设计题,属于系统设计类别。这道题模拟了社交媒体平台中常见的推文统计功能,要求实现一个能够按不同时间粒度统计推文数量的类。 在实际应用中,类似功能广…

2026/8/10 10:16:32 阅读更多 →
多线程加速?数据全乱了

多线程加速?数据全乱了

📋 本期菜单:GIL 限制 count 丢更新 threading vs multiprocessing 死锁 asyncio 阻塞 忘记 await 线程池泄漏 Queue 异常 pickle 限制 回调线程 毛毛姐的粉丝涨到 10w 了。她觉得单线程爬数据太慢,决定上多线程加速。 半小时后,她发来一条语音:「家人们谁懂啊…

2026/8/10 10:16:32 阅读更多 →
SpringBoot农业数据管理平台开发实践

SpringBoot农业数据管理平台开发实践

1. 项目背景与核心需求 农科所作为农业科研的前沿阵地,每天产生大量作物生长数据、实验记录和品种信息。传统Excel表格管理方式存在数据分散、版本混乱、协作困难等痛点。我去年参与某省级农科院信息化改造时,发现研究人员平均每周要花费8小时在数据整理…

2026/8/10 10:16:32 阅读更多 →
从戏剧化设定到可信叙事:如何构建“篡改志愿”故事的人物与情节

从戏剧化设定到可信叙事:如何构建“篡改志愿”故事的人物与情节

1. 先搞清楚这个标题到底在讲什么:一个关于“志愿篡改”的叙事内核 看到这个标题,第一反应可能觉得这是个猎奇故事,或者是个技术教程。但仔细拆解,它的核心其实是一个 高度戏剧化的叙事设定 ,而非一个真实的技术操作…

2026/8/10 10:15:32 阅读更多 →

日新闻

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南 【免费下载链接】graphql-css A blazing fast CSS-in-GQL™ library. 项目地址: https://gitcode.com/gh_mirrors/gr/graphql-css GraphQL-CSS是一个基于GraphQL的CSS-in-GQL™库&#xff0…

2026/8/10 0:00:02 阅读更多 →
告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南 【免费下载链接】kiss-translator A simple, open source bilingual translation extension & Greasemonkey script (一个简约、开源的 双语对照翻译扩展 & 油猴脚本) 项目地址: https://gitcode.com/…

2026/8/10 0:00:02 阅读更多 →
BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案 【免费下载链接】BepInEx.ConfigurationManager Plugin configuration manager for BepInEx 项目地址: https://gitcode.com/gh_mirrors/be/BepInEx.ConfigurationManager 你是否曾经因为游戏插件的复杂…

2026/8/10 0:00:02 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/10 1:05:29 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/10 1:05:29 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/10 1:05:29 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/9 17:05:02 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/10 1:05:29 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/9 17:05:02 阅读更多 →