使用dify搭建hr简历助手-上传简历-对接飞书ai表格

一、需求背景

hr在招聘平台获取简历后,想整理到简历库,在线管理和维护,及其不方便,所以用dify搭建一个简历上传助手,并且能保存到线上表格,方便维护和查看。
先看下最终的效果
在这里插入图片描述
在这里插入图片描述
我们的工作流即可自动获取文件中的信息,手机号,姓名,学历,工作经验,自动分析数据,然后上传到飞书多维表格中,Dify工作流总览图如下:
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/0ee431610de74340aae803b9cc51037e.png
下面我们来梳理下这个工作流是怎么编排的。
在这里插入图片描述

二、创建工作流编排

首先创建一个空白的工作流,编写这个工作流的用途。
在这里插入图片描述

创建完成时这样的
图片

默认会有开始节点,llm大模型 ,回复节点 。
点击开始节点,需要使用上传功能,
在这里插入图片描述
在这里插入图片描述

在管理中打开文件上传 具体步骤如下,多个文件,需要设置数量。
在这里插入图片描述

然后添加一个文档提取器的节点
图片

选择对应的输入文件字段,会自动识别文件内容。
然后判断是否提前到文档信息,需要一个条件判断节点,判断是否识别到文档信息。
图片

如果获取到信息需要使用llm处理文档信息。
图片

这里主要是提示词编写,dify中大模型处理的数据格式不是很优雅,需要自己单独处理。具体提示词如下 :

你是一个高效的信息收集机器人,任务是帮助用户从以文本中提取所有求职者的以下信息:姓名、电话、性别、年龄、学历 简历信息。
在收集完所有信息后,请将信息整理为 JSON 格式输出,包含以下键值对:  
- `姓名`(姓名)  
- `手机`(电话)  
- `性别`(性别,允许“男”“女”“未提及”)  
- `年龄`(年龄)  
- `学历`(学历,字符串,格式:最高学历+毕业院校+专业,如“本科 北京大学 计算机科学与技术”)  
- `简历信息`(原始文本数据,不需要精简,保证原始数据)要求:
在收集完所有信息后,机器人需将信息整理为 JSON 格式并输出,确保键值对完整且准确,如果没有收集到某个信息,请以空字符串作为值。文本内容:[{{#1753949451106.text#}}]

模型我用的是 qwen2.5-7b
图片

可以看下大模型这块是怎么处理的,格式最好是json,方便后续的保存
在这里插入图片描述

然后就是代码直接,梳理需要的数据,保存到飞书或钉钉等ai表格,
图片

这个地方一定要注意,返回到格式,如果格式不是设置的,会报错 。这是我py处理数据格式的代码。

def main(text: str) -> dict:import re, jsonfrom json.decoder import JSONDecodeError# 匹配 ```json```包裹的内容pattern = r'```json\n(.*?)\n```'match = re.search(pattern, text, re.DOTALL)if match:json_str = match.group(1).strip()# 清理可能影响解析的特殊字符json_str = json_str.replace('\r', '')json_str = re.sub(r'[\x00-\x1F\x7F]', '', json_str)try:json_data = json.loads(json_str)# 确保数据是列表格式if not isinstance(json_data, list):json_data = [json_data]# 完整提取所有字段,完整保留原始内容formatted_data = []for item in json_data:if isinstance(item, dict):formatted_item = {"姓名": item.get("姓名", ""),"手机号": item.get("手机", ""),"性别": item.get("性别", ""),"年龄": item.get("年龄", ""),"学历": item.get("学历", ""),"简历信息": item.get("简历信息", "")  # 完整保留原始简历信息}formatted_data.append(formatted_item)return {"result": json.dumps(formatted_data, ensure_ascii=False)}except JSONDecodeError as e:print(f"JSON解析错误: 行 {e.lineno}, 列 {e.colno} - {e.msg}")return {"result": ""}except Exception as e:print(f"处理错误: {str(e)}")return {"result": ""}else:print("未找到有效的JSON数据")return {"result": ""}

后面就是对接飞书ai表格,飞书ai表格这个需要,创建飞书应用,找到对应的授权信息。
图片
这个添加的地方。有一些坑,我需要说下,这个记录列表是字符串类型,需要在py代码中提取转换好。不然会报错。

图片

导入成功以后,添加条件判断是否成功,成功在把数据转换下,输出导入我数据信息,

图片

代码转换如下:


import json
def main(data: list) -> dict:try:names = []# 遍历外层数据for outer_item in data:# 获取records列表(处理可能的非列表情况)records = outer_item.get("records", [])if not isinstance(records, list):continue# 遍历每条记录for record in records:# 解析fields中的JSONfields_str = record.get("fields", "{}")fields = json.loads(fields_str)# 提取姓名(去重)name = fields.get("姓名", "").strip()  # 去除可能的空格if name and name not in names:names.append(name)# 用逗号分隔所有姓名names_str = ",".join(names)return {"names": names_str}except Exception as e:return {"names": ""}

然后回复信息,结束工作流。
图片

图片

这样hr可以直接处理,记录数据,后续更新面试相关的工作流。
如果感觉不错,可以点赞收藏。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/93015.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/93015.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《算法导论》第 22 章 - 基本的图算法

大家好!今天我们来深入学习《算法导论》第 22 章的基本图算法。图论是计算机科学中的重要基础,这些基本算法是解决很多复杂问题的基石。本文将结合代码实现,帮助大家更好地理解和应用这些算法。思维导图22.1 图的表示在计算机中,图…

基于PROFINET的西门子PLC通讯:S7-200与S7-1200在自动化仓储中的协同应用

一.行业痛点与解决方案传统仓储物流系统中,采用西门子SMARTS7-200PLC(如CPUSR20、SR30等型号)的设备往往面临三大通讯难题:一是无法直接接入以太网网络,导致多PLC间的数据交互需要通过复杂的串口级联实现,响…

redis实现秒杀超卖问题的解决方案:(仅限于单体项目)

秒杀实现通过乐观锁控制超卖问题通过悲观锁控制每个用户只能下一单,避免用户多次点击,发送的多次下单请求(即多个线程)都成功,避免恶意攻击每个请求访问Tomcat时,就会分配一个线程处理请求业务逻辑:注*以下逻辑中报错也…

Go与Python爬虫实战对比:从开发效率到性能瓶颈的深度解析

目录 引言:两种语言,两种哲学 开发效率对比:从框架设计看易用性 Python的"开箱即用" Go的"手动组装" 性能对比:从并发模型看效率差异 理论性能对比 实际测试数据 错误处理对比:从编程范式…

初识c语言————排序方法

今天我们学习的是c语言中的排序方法目录:一.冒泡排序法二.选择排序法下面我们正式学习c语言中的排序方法一.冒泡排序法1.冒泡排序法的过程:将无序的数组通过数组之间的大小比较,排成有序的样子2.例如:5,3,4…

爬虫与数据分析结合案例:中国大学排名爬取与分析全流程

爬虫与数据分析结合案例:中国大学排名爬取与分析全流程 一、案例背景与目标 本案例以高三网中国大学排名(网址:2021中国的大学排名一览表_高三网)为数据源,完成从数据爬取到分析可视化的全流程实践。主要目标包括&am…

行业分享丨SimSolid 在汽车零部件开发中应用的可行性调研及实践

*本文源自汽车行业用户范会超投稿1、背景车型短周期开发背景下,高效的仿真技术显得尤为重要。Altair 推出了多款加速设计/仿真的软件,其中无网格软件 SimSolid 与业务有一定的契合度,有必要论证其在汽车零部件结构分析领域的可行性。2、目标评…

MacOS字体看起来比在 Windows 上更好?

字体控们注意啦!🎉你们有没有发现,同样一段文字,在Mac和Windows上看起来就是不一样?Mac上的字仿佛自带柔光滤镜,圆润又舒适;而Windows上的字则像是精心雕琢的刀锋,锐利且清晰。这背后…

Torch -- 卷积学习day1 -- 卷积层,池化层

目录 一、CNN概述 二、卷积层 1、卷积核 2、卷积计算 3、边缘填充 4、步长 5、多通道卷积计算 6、多卷积核卷积计算 7、特征图大小 8、卷积参数共享 9、局部特征提取 10、卷积层API 三、池化层 1、池化层概述 1.池化层的作用 2.池化层类型 2、池化层计算 3、步…

蓝桥杯---第六届省赛单片机组真题

先出手写的代码&#xff0c;代码分析还需要一段时间&#xff0c;不难&#xff0c;大家认真写。#include <STC15F2K60S2.H> #include "Seg.h" #include "LED.h" #include "Key.h" #include "DS1302.h" #include "DS18B20.h&…

GPT-5深度解析:精准、高效、务实的新一代AI引擎

&#x1f31f; GPT-5深度解析&#xff1a;精准、高效、务实的新一代AI引擎在万众瞩目中&#xff0c;OpenAI于2025年8月7日正式推出GPT-5——这一代模型没有华丽的创意革命&#xff0c;却以惊人的准确率提升、断崖式降价和强大的工程能力&#xff0c;悄然重塑了生成式AI的应用边…

oss(阿里云)前端直传

WEB端前端直传 参考文档&#xff1a;web前端直传并设置上传回调 封装oss-upload.ts // 图片上传 import { uploadToken } from /api/uploadFile.js // 获取oss token接口// 定义 OSS 信息类型 interface OssInfo {policy: string;signature: string;x_oss_credential: strin…

vscode uv 发布一个python包:编辑、调试与相对路径导包

背景 最近一直在使用uv做python包管理&#xff0c;用起来很方便。 尤其是在代码上传到github的时候&#xff0c;pyproject.toml 会显示出当前项目依赖的python包。这样在把代码下载到本地之后&#xff0c;直接uv sync就可以很方便地恢复出python环境。 uv 除了有上述优点&…

Secure 第四天作业

实验需求&#xff1a;需求一拓扑&#xff1a;按照以上拓扑所示&#xff0c;完成以下需求&#xff1a;参考以上拓扑&#xff0c;配置设备IP地址&#xff0c;使用UNL里Secure第四天拓扑即可。&#xff08;有兴趣的同学课后也可按照PPT原拓扑做做实验&#xff09;&#xff1b;配置…

利用开漏输出模式模拟IIC

/************************************************************利用IO口模拟IIC时序&#xff0c;需要使用2个IO口(SDA和SCL)SCL时钟线只能由主器件进行控制&#xff0c;所以SCL引脚必须为输出模式SDA数据线&#xff0c;在主器件发送数据时&#xff0c;SDA引脚为输出模式SDA数…

闸机控制系统从设计到实现全解析:第 5 篇:RabbitMQ 消息队列与闸机通信设计

第 5 篇&#xff1a;RabbitMQ 消息队列与闸机通信设计RabbitMQ 是一款开源的消息队列中间件&#xff08;Message Queue&#xff0c;MQ&#xff09;&#xff0c;基于 Erlang 语言开发&#xff0c;遵循 AMQP&#xff08;Advanced Message Queuing Protocol&#xff0c;高级消息队…

Linux 常用命令大全:覆盖日常 99% 操作需求

1、基本命令 pwd&#xff1a;显示当前工作目录的绝对路径&#xff0c;例如在复杂目录结构中快速确认位置&#xff0c;执行后会输出类似/home/user/documents的结果。 cd&#xff1a;切换目录&#xff0c;cd 目录路径可进入指定目录&#xff0c;cd ~回到当前用户的家目录&…

普通电脑与云电脑的区别有哪些?全面科普

近年来&#xff0c;越来越多的人不再购置升级自己的电脑&#xff0c;转而选择云电脑&#xff0c;云端产品正在变得越来越普及易用。那么它究竟跟我们的普通本地设备有什么区别呐&#xff1f;或许很多人并不知悉&#xff0c;对此&#xff0c;本篇内容小编就为大家简要科普一下普…

【Python】支持向量机SVM

示例代码&#xff1a;import numpy as np import matplotlib.pyplot as plt from sklearn import svm from sklearn.datasets import make_blobs from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score, classification_report# 设…

当AI学会“抄近路”:残差网络如何突破深度学习的极限

**——解读《Deep Residual Learning for Image Recognition》**今天我想带大家回到2015年&#xff0c;见证人工智能领域的一场“捷径革命”——由何恺明等人提出的**深度残差学习框架&#xff08;ResNet&#xff09;**。这篇论文解决了困扰AI界多年的“深度诅咒”&#xff0c;…