这个求职系统结合了多种现代技术栈,特别是通过集成 Milvus 向量数据库增强了语义搜索能力。以下是完整的技术栈说明:
技术 | 用途 | 特点 |
---|---|---|
Python | 主要编程语言 | 简洁高效,适合数据处理和AI应用 |
Pandas | 数据处理 | 用于结构化数据操作和分析 |
Whoosh | 全文搜索引擎 | 纯Python实现,轻量级,支持关键词搜索 |
Sentence-Transformers | 文本嵌入模型 | 将文本转换为语义向量(如paraphrase-MiniLM-L12-v2 ) |
Milvus 作为核心的向量数据库,支撑了系统的语义搜索能力:
技术 | 用途 | 特点 |
---|---|---|
Milvus | 向量数据库 | 存储和检索简历文本的嵌入向量(384维) |
PyMilvus | Milvus的Python SDK | 实现Python与Milvus的交互 |
Faiss(底层) | 向量索引引擎 | Milvus默认使用的ANNS(近似最近邻搜索)库,加速搜索 |
- 向量相似度计算:通过余弦相似度或欧氏距离匹配简历与职位描述的语义相关性。
- 动态Schema:支持灵活定义字段(如文本、ID、向量)。
- 分布式架构:可扩展至大规模数据(需部署集群版)。
技术 | 用途 |
---|---|
Sentence-Transformers | 生成文本嵌入向量(多语言支持) |
分词与语义编码 | 将简历文本转换为向量表示 |
相似度计算 | 通过向量距离实现语义匹配 |
技术 | 用途 |
---|---|
docx2txt | 从Word文档中提取纯文本 |
Whoosh索引 | 存储分块后的简历文本,支持关键词检索 |
本地文件系统 | 缓存简历文件和搜索结果 |
graph LR
A[简历.docx] --> B[文本提取]
B --> C{处理管道}
C -->|文本| D[Whoosh: 关键词搜索]
C -->|向量化| E[Milvus: 语义搜索]
D --> F[搜索结果合并]
E --> F
F --> G[返回匹配结果]
- 文本提取:用
docx2txt
解析Word简历。 - 双路索引:
- Whoosh:索引原始文本(分块),支持关键词搜索(如"Python")。
- Milvus:存储文本嵌入向量,支持语义搜索(如"机器学习"匹配"TensorFlow经验")。
- 混合检索:结合关键词和语义结果,提升召回率。
- 轻量级:全部组件可在Colab中运行(Whoosh替代Elasticsearch)。
- 语义+关键词互补:Whoosh解决精确匹配,Milvus解决语义模糊匹配。
- 可扩展性:Milvus支持未来扩展至千万级简历库。
如果需要部署生产环境,建议将Milvus替换为云服务版(如Zilliz Cloud),并增加分布式任务队列(如Celery)。
在中,以下是一些需要替换为中国可用替代品的组件:
-
Serper API:
- 替代方案:可以使用百度搜索API或搜狗搜索API
-
Amazon Bedrock:
- 替代方案:可以使用百度文心大模型(ERNIE)或阿里云的通义千问
-
OpenAI:
- 替代方案:可以使用百度文心一言或智谱AI
-
Anthropic:
- 替代方案:可以使用深度求索(DeepSeek)或MiniMax
以下是具体的替换建议:
# 替换Serper API
# 原代码:
from crewai_tools import SerperDevTool
search_tool = SerperDevTool()
# 替换为百度搜索API:
from baidu_search import BaiduSearchTool
search_tool = BaiduSearchTool(api_key="your_baidu_api_key")
# 替换Amazon Bedrock
# 原代码:
from langchain_community.llms import Bedrock
llm = LLM(model="bedrock/anthropic.claude-3-5-haiku-20241022-v1:0", temperature=0.7)
# 替换为百度文心大模型:
from erniebot import ErnieBot
llm = ErnieBot(model="ernie-bot-4", temperature=0.7)
# 替换OpenAI
# 原代码:
%pip install openai
# 替换为:
%pip install erniebot
# 替换Anthropic
# 原代码:
%pip install anthropic
# 替换为:
%pip install deepseek
这些替换方案都是在中国境内可用的服务,并且提供了类似的功能。请注意,使用这些服务时,您需要注册相应的开发者账号并获取API密钥。
另外,建议在代码中添加环境检测,根据运行环境自动选择合适的服务:
import os
def get_llm():
if os.getenv("REGION") == "CN":
from erniebot import ErnieBot
return ErnieBot(model="ernie-bot-4", temperature=0.7)
else:
from langchain_community.llms import Bedrock
return LLM(model="bedrock/anthropic.claude-3-5-haiku-20241022-v1:0", temperature=0.7)
llm = get_llm()
这样可以确保代码在不同地区都能正常运行。
This document provides a comprehensive overview of the Job Hunting Crew multi-agent system, designed to optimize resumes and prepare candidates for job interviews. The system leverages artificial intelligence agents to analyze job postings, extract relevant skills, evaluate candidate qualifications, and generate tailored application materials. For information about the Financial Analysis System, see Financial Analysis System.
本文档全面概述了求职团队 (Job Hunting Crew) 多智能体系统,该系统旨在优化简历,帮助求职者准备面试。该系统利用人工智能智能体分析招聘信息,提取相关技能,评估求职者资质,并生成定制化的求职材料。有关财务分析系统的信息,请参阅财务分析系统。
The Job Hunting Crew System is a specialized multi-agent AI solution that automates and optimizes the job application process. It takes inputs such as job postings, candidate resumes, and online profiles to produce two key outputs: a tailored resume optimized for a specific job and interview preparation materials.
求职团队系统是一个专业的多智能体人工智能解决方案,可以自动化和优化求职流程。它接收招聘信息、求职者简历和在线个人资料等输入,并生成两个关键输出:针对特定职位优化的定制简历和面试准备材料。
求职团队系统采用多智能体架构模式,其中各专门的AI智能体协同工作,处理输入并生成优化的输出。该系统基于CrewAI框架构建,并与Amazon Bedrock集成,提供AI模型功能。
该系统由四个专门的人工智能代理组成,每个代理在求职优化过程中承担着不同的职责:
职位研究员代理分析招聘信息以提取关键要求、资格和公司信息。
职责:
从提供的 URL 中抓取招聘信息
提取所需的技能和资格
确定公司价值观和工作背景
在需要时研究其他公司信息
从发布的内容中提取明确和隐含的职位要求
确定技术技能、软技能和经验水平
按重要性对需求进行分类(必需与首选)
认识行业特定的术语和期望
个人分析代理通过分析简历、GitHub 个人资料和个人网站等输入材料来评估候选人的背景、技能和经验。
职责:
分析候选人的简历
从 GitHub 存储库中提取技能和经验
审查个人网站内容是否具备相关资格
创建全面的候选人档案
从 GitHub 存储库中提取信息以识别技术技能
分析个人网站以获取更多专业知识和演示风格
审查现有的简历结构和内容
确定候选人的独特价值主张
简历策略代理结合工作研究员和个人分析员的见解来创建定制的简历,突出候选人与特定工作最相关的资格。
职责:
将候选人的技能与职位要求相匹配
优先考虑相关经验
重新格式化和优化简历结构
创建强调特定工作资格的定制内容
使简历内容与职位要求相一致
重组简历部分以获得最大效果
提高成就和可量化的结果
优化申请人跟踪系统 (ATS) 的术语
创建定制的摘要声明
与 Amazon Bedrock 集成
代理使用 Amazon Bedrock 实现其语言模型功能:
代理法学硕士:用途bedrock/anthropic.claude-3-5-haiku-20241022-v1:0
经理法学硕士:用途us.amazon.nova-pro-v1:0
DOCXSearchTool 嵌入:用途amazon.titan-embed-text-v1
这些模型提供了理解工作要求、分析候选人资料和生成定制内容所需的人工智能功能。
面试辅导员会根据职位要求和应聘者的个人资料,帮助应聘者准备可能的面试问题。
职责:
生成常见和技术面试问题
创建突出优势的谈话要点
准备回答难题
制定讨论经验差距的策略
为候选人制定向面试官提出的问题
根据职位描述生成潜在的面试问题
根据候选人的背景创建示例答案
提供一般面试准备指导
确定候选人需要更深入准备的领域
使用 CrewAI 框架将代理组织成一个团队。团队配置定义:
代理包括
要执行的任务
用于船员管理的法学硕士
详细程度和调试设置
job_application_crew = Crew(
agents=[researcher, profiler, resume_strategist, interview_preparer],
tasks=[research_task, profile_task, resume_strategy_task, interview_preparation_task],
llm=manager_llm,
verbose=True,
debug=True
)
···js job_application_inputs = { 'job_posting_url': 'https://example.com/job-posting', 'github_url': 'https://github.com/username', 'personal_website': 'https://personal-website.com' }
## 4.系统工作流程
求职团队系统遵循顺序工作流程,其中代理协作处理输入并生成优化输出:


## 系统并行分析
工作流程的第一阶段涉及两个代理并行工作:
职位研究员分析
职位研究员代理分析招聘信息以提取关键要求:
使用以下方式抓取招聘信息 URL:ScrapeWebsiteTool
分析内容以确定所需的技能、资格和经验
对工作要求进行分类和结构化
返回一份全面的工作要求列表
个人剖析
同时,个人分析代理会分析候选人的个人资料:
FileReadTool使用和阅读简历文档DOCXSearchTool
抓取 GitHub 个人资料和个人网站
综合信息以确定候选人的优势和经验
创建候选人的全面个人资料
async_execution=True这两个任务都是异步执行的,正如其任务定义中的参数所示。
## 简历优化阶段
3. 简历优化阶段
简历策略代理接收来自职位研究员和个人分析器的输出作为上下文,然后:
分析职位要求与候选人简介之间的一致性
确定符合工作要求的关键优势
重组并重写简历以突出相关经验
创建针对职位发布的优化简历
将结果输出到tailored_resume.md文件
此任务使用context=[research_task, profile_task]参数来访问先前任务的输出。
4. 面试准备阶段
最后阶段涉及面试教练代理:
接收所有先前任务的背景信息(工作要求、候选人简介和定制简历)
根据工作要求分析潜在的面试问题
创建利用候选人优势的战略谈话要点
制定与定制简历相符的回复
将面试准备材料输出到interview_materials.md文件
此任务使用context=[research_task, profile_task, resume_strategy_task]参数来访问所有先前的任务输出。
## 任务流程图

```js
# Resume strategy task depends on research and profile tasks
resume_strategy_task = Task(
# ... other parameters ...
context=[research_task, profile_task],
agent=resume_strategist
)
# Interview preparation task depends on all previous tasks
interview_preparation_task = Task(
# ... other parameters ...
context=[research_task, profile_task, resume_strategy_task],
agent=interview_preparer
)
求职团队系统采用 CrewAI 框架实现,该框架促进代理协作,并使用 Amazon Bedrock 实现 AI 功能。
主要实现包含在AIAgents_Resume.ipynbJupyter 笔记本中,它协调代理交互并处理输入和输出。
该系统使用 Amazon Bedrock 实现 AI 模型功能,需要特定的配置:
可以访问 Amazon Bedrock 的 AW 9E81 S 账户
正确的 AWS 凭证配置
访问 Amazon Bedrock 中的特定基础模型
该系统还集成了 Serper API 以进行网络搜索:
Serper API 密钥存储在环境变量中
通过实用函数管理 API 调用
在使用求职团队系统之前,请确保您已:
已安装 Python 3.8+
所需软件包:crewai,,,,crewai_toolsanthropiclitellmlangchain_community
用于网络搜索的 Serper API 密钥
可访问 Amazon Bedrock 模型的 AWS 账户
使用适当的凭证配置的 AWS CLI
克隆存储库
git clone https://github.com/viktoriasemaan/multi-agent.git
cd multi-agent/jobhunting-crew
安装所需的软件包:
pip install crewai crewai_tools anthropic litellm langchain_community
配置 API 密钥:
重命名sample.env为.env
将您的 Serper API 密钥添加为SERPER_API_KEY
配置AWS:
运行aws configure以设置 AWS 凭证
从 AWS 控制台请求访问 Amazon Bedrock 模型
AIAgents_Resume.ipynb使用 Jupyter Notebook、VS Code、Google Colab 或 Amazon SageMaker打开笔记本。
按顺序执行笔记本单元。
提供所需的输入:
招聘信息网址或文字
您的简历(文件或文本)
GitHub 个人资料 URL(可选)
个人网站网址(可选)
系统将处理输入并生成:
针对特定工作进行优化的定制简历
面试准备问答材料
求职团队系统是存储库中的两个多智能体系统之一,另一个是财务分析系统。这两个系统都采用类似的架构模式和框架,但服务于不同的目的。
求职团队系统展示了多智能体人工智能系统在自动化和优化求职流程方面的实际应用。通过利用专门的人工智能代理来处理求职流程的不同环节,该系统可以创建高度定制的简历和面试准备材料,从而最大限度地提高求职者的成功率。
在中国,Serper API(提供Google搜索结果的API服务)的替代方案主要包括以下几类:
由于Google在中国访问受限,Serper API在国内可能无法稳定使用。以下是国内可用的替代方案:
- 百度搜索API:百度开放平台提供搜索API,适用于中文搜索场景。
- 360搜索API:360搜索也提供类似的搜索数据接口。
- 搜狗搜索API:适用于网页、新闻等内容抓取。
一些国际SERP API服务商可能在中国可用(需确认网络稳定性):
- DataForSEO:支持Google、Bing等搜索引擎的SERP数据,但可能需要代理访问。
- SerpApi:提供Google搜索结构化数据,但同样可能受网络限制。
- Aves API:类似Serper的轻量级SERP抓取工具。
如果目标是爬取搜索引擎数据,可考虑以下工具:
- Octoparse(八爪鱼):无代码爬虫工具,支持模拟搜索行为。
- Apify:提供网页抓取和自动化功能,可用于搜索引擎数据采集。
- 浏览AI:支持自动化抓取Google、百度等搜索结果。
部分国产大模型厂商提供搜索增强API,如:
- 阿里云通义千问:结合搜索能力,提供类似“Google答案框”的功能。
- 百度文心一言:支持联网搜索,可获取实时信息。
- 如果目标是替代Serper API的Google搜索功能,国内可用的直接替代较少,可能需要结合代理或使用百度/360等本土搜索引擎API。
- 如果目标是数据抓取,可考虑Apify、Octoparse等工具。
- 如果目标是AI增强搜索,可尝试阿里云、百度等大模型提供的搜索API。
如需稳定访问Google SERP数据,可能需要通过海外服务器或VPN配合国际API服务(如SerpApi、DataForSEO)使用。
在中国,Amazon Bedrock 的主要替代品包括阿里云、百度智能云、腾讯云和华为云等厂商提供的类似大模型平台服务。这些平台不仅支持企业使用自研或第三方大模型,还提供定制化训练和部署能力,类似于 Amazon Bedrock 的功能。以下是具体对比:
- 功能:提供类似 Bedrock 的大模型 API 服务,支持企业微调(fine-tuning)和私有化部署。
- 特点:
- 通义千问 Plus 的价格仅为 GPT-4 的 1/50,极具性价比。
- 支持多模态能力,适用于文本、图像等生成任务。
- 提供 2200 万免费 Tokens 以吸引 OpenAI 迁移用户。
- 功能:类似于 Bedrock,支持企业级大模型 API 调用,并提供定制化训练。
- 特点:
- 百度推出“大模型普惠计划”,新注册企业可免费使用文心旗舰模型。
- 提供与 OpenAI 使用规模对等的 Tokens 包,方便企业无缝迁移。
- 支持私有化部署,确保数据安全。
- 功能:提供类似 Bedrock 的模型托管和 API 服务,支持企业微调。
- 特点:
- 新迁移企业可免费获得 1 亿 Tokens。
- 提供多个版本(Pro、Standard、Lite),适应不同需求。
- 与腾讯生态(如微信、QQ)深度集成,适合社交和商业应用。
- 功能:类似 Bedrock,但更强调行业定制化(如金融、政务、制造)。
- 特点:
- “5+N+X”架构,5 个基础大模型 + N 个行业大模型 + X 个场景模型。
- 提供端到端 AI 开发工具链,适合企业深度定制。
- 适配国产信创环境(如昇腾芯片、鲲鹏服务器)。
- 功能:提供 GLM 大模型 API,支持企业定制。
- 特点:
- 推出“搬家计划”,为 OpenAI 迁移用户提供 1.5 亿 Tokens。
- 适用于科研、金融等专业领域。
厂商 | 核心产品 | 主要优势 | 适用场景 |
---|---|---|---|
阿里云 | 通义千问 | 高性价比、多模态 | 电商、内容生成 |
百度 | 文心一言 | 免费迁移支持、中文优化 | 搜索、企业服务 |
腾讯 | 混元大模型 | 社交生态整合 | 社交、游戏、广告 |
华为 | 盘古大模型 | 行业定制、信创适配 | 政务、金融、制造 |
智谱 AI | GLM | 科研支持、高精度 | 学术、金融分析 |
中国的云服务厂商(阿里、百度、腾讯、华为等)均提供了类似 Amazon Bedrock 的大模型平台服务,支持企业级 AI 应用开发和定制。相较于 Bedrock,国产方案在价格、本地化支持、数据合规性方面更具优势,尤其适合国内企业使用。