8000 GitHub - gongfan1213/kefu: 求职团|CrewAI 优化求职申请和面试准备|多智能体协作系统
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

gongfan1213/kefu

Repository files navigation

Job Hunting Crew System 求职团队系统

这个求职系统结合了多种现代技术栈,特别是通过集成 Milvus 向量数据库增强了语义搜索能力。以下是完整的技术栈说明:


1. 核心基础技术栈

技术 用途 特点
Python 主要编程语言 简洁高效,适合数据处理和AI应用
Pandas 数据处理 用于结构化数据操作和分析
Whoosh 全文搜索引擎 纯Python实现,轻量级,支持关键词搜索
Sentence-Transformers 文本嵌入模型 将文本转换为语义向量(如paraphrase-MiniLM-L12-v2

2. Milvus 相关技术栈

Milvus 作为核心的向量数据库,支撑了系统的语义搜索能力:

技术 用途 特点
Milvus 向量数据库 存储和检索简历文本的嵌入向量(384维)
PyMilvus Milvus的Python SDK 实现Python与Milvus的交互
Faiss(底层) 向量索引引擎 Milvus默认使用的ANNS(近似最近邻搜索)库,加速搜索

Milvus 的关键技术特性

  • 向量相似度计算:通过余弦相似度或欧氏距离匹配简历与职位描述的语义相关性。
  • 动态Schema:支持灵活定义字段(如文本、ID、向量)。
  • 分布式架构:可扩展至大规模数据(需部署集群版)。

3. 自然语言处理(NLP)技术栈

技术 用途
Sentence-Transformers 生成文本嵌入向量(多语言支持)
分词与语义编码 将简历文本转换为向量表示
相似度计算 通过向量距离实现语义匹配

4. 文件处理与存储

技术 用途
docx2txt 从Word文档中提取纯文本
Whoosh索引 存储分块后的简历文本,支持关键词检索
本地文件系统 缓存简历文件和搜索结果

5. 系统架构图(简化)

graph LR
    A[简历.docx] --> B[文本提取]
    B --> C{处理管道}
    C -->|文本| D[Whoosh: 关键词搜索]
    C -->|向量化| E[Milvus: 语义搜索]
    D --> F[搜索结果合并]
    E --> F
    F --> G[返回匹配结果]
Loading

6. 工作流程

  1. 文本提取:用docx2txt解析Word简历。
  2. 双路索引
    • Whoosh:索引原始文本(分块),支持关键词搜索(如"Python")。
    • Milvus:存储文本嵌入向量,支持语义搜索(如"机器学习"匹配"TensorFlow经验")。
  3. 混合检索:结合关键词和语义结果,提升召回率。

7. 为何选择这些技术?

  • 轻量级:全部组件可在Colab中运行(Whoosh替代Elasticsearch)。
  • 语义+关键词互补:Whoosh解决精确匹配,Milvus解决语义模糊匹配。
  • 可扩展性:Milvus支持未来扩展至千万级简历库。

如果需要部署生产环境,建议将Milvus替换为云服务版(如Zilliz Cloud),并增加分布式任务队列(如Celery)。

image

image

替换方案

在中,以下是一些需要替换为中国可用替代品的组件:

  1. Serper API

    • 替代方案:可以使用百度搜索API或搜狗搜索API
  2. Amazon Bedrock

    • 替代方案:可以使用百度文心大模型(ERNIE)或阿里云的通义千问
  3. OpenAI

    • 替代方案:可以使用百度文心一言或智谱AI
  4. 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) 多智能体系统,该系统旨在优化简历,帮助求职者准备面试。该系统利用人工智能智能体分析招聘信息,提取相关技能,评估求职者资质,并生成定制化的求职材料。有关财务分析系统的信息,请参阅财务分析系统。

1. System Overview

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.

求职团队系统是一个专业的多智能体人工智能解决方案,可以自动化和优化求职流程。它接收招聘信息、求职者简历和在线个人资料等输入,并生成两个关键输出:针对特定职位优化的定制简历和面试准备材料。

image

2.系统架构

求职团队系统采用多智能体架构模式,其中各专门的AI智能体协同工作,处理输入并生成优化的输出。该系统基于CrewAI框架构建,并与Amazon Bedrock集成,提供AI模型功能。

image

image

工作流畅图

image

3.代理组件

该系统由四个专门的人工智能代理组成,每个代理在求职优化过程中承担着不同的职责:

3.1 工作研究员代理JobSearcj

职位研究员代理分析招聘信息以提取关键要求、资格和公司信息。

image

职责:

从提供的 URL 中抓取招聘信息

提取所需的技能和资格

确定公司价值观和工作背景

在需要时研究其他公司信息

从发布的内容中提取明确和隐含的职位要求

确定技术技能、软技能和经验水平

按重要性对需求进行分类(必需与首选)

认识行业特定的术语和期望

image

3.2 个人分析代理Personal Profiler

个人分析代理通过分析简历、GitHub 个人资料和个人网站等输入材料来评估候选人的背景、技能和经验。

image

职责:

分析候选人的简历

从 GitHub 存储库中提取技能和经验

审查个人网站内容是否具备相关资格

创建全面的候选人档案

从 GitHub 存储库中提取信息以识别技术技能

分析个人网站以获取更多专业知识和演示风格

审查现有的简历结构和内容

确定候选人的独特价值主张

image

3.3 简历策略代理Resume Strategist

简历策略代理结合工作研究员和个人分析员的见解来创建定制的简历,突出候选人与特定工作最相关的资格。

职责:

image

将候选人的技能与职位要求相匹配

优先考虑相关经验

重新格式化和优化简历结构

创建强调特定工作资格的定制内容

使简历内容与职位要求相一致

重组简历部分以获得最大效果

提高成就和可量化的结果

优化申请人跟踪系统 (ATS) 的术语

创建定制的摘要声明

image

image

image

与 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

这些模型提供了理解工作要求、分析候选人资料和生成定制内容所需的人工智能功能。

3.4 面试教练代理Interiew Coach

面试辅导员会根据职位要求和应聘者的个人资料,帮助应聘者准备可能的面试问题。

职责:

image

生成常见和技术面试问题

创建突出优势的谈话要点

准备回答难题

制定讨论经验差距的策略

为候选人制定向面试官提出的问题

根据职位描述生成潜在的面试问题

根据候选人的背景创建示例答案

提供一般面试准备指导

确定候选人需要更深入准备的领域

image

机组人员配置

使用 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
)

输入要求:

image

···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.系统工作流程

求职团队系统遵循顺序工作流程,其中代理协作处理输入并生成优化输出:

![image](https://github.com/user-attachments/assets/21ef2957-31d9-4062-a9dd-2be0ab636300)


![image](https://github.com/user-attachments/assets/1dfb964f-fa11-4275-93e3-b2e646e9bf00)

## 系统并行分析

工作流程的第一阶段涉及两个代理并行工作:

职位研究员分析

职位研究员代理分析招聘信息以提取关键要求:


使用以下方式抓取招聘信息 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]参数来访问所有先前的任务输出。


## 任务流程图

![image](https://github.com/user-attachments/assets/6604f5f2-96c1-446d-bf7f-45d1eb75ffb5)

```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
)

image

5.实施细节

求职团队系统采用 CrewAI 框架实现,该框架促进代理协作,并使用 Amazon Bedrock 实现 AI 功能。

5.1 代码结构

主要实现包含在AIAgents_Resume.ipynbJupyter 笔记本中,它协调代理交互并处理输入和输出。

image

5.2 AWS Bedrock 集成

该系统使用 Amazon Bedrock 实现 AI 模型功能,需要特定的配置:

可以访问 Amazon Bedrock 的 AW 9E81 S 账户

正确的 AWS 凭证配置

访问 Amazon Bedrock 中的特定基础模型

image

5.3 外部 API 集成

该系统还集成了 Serper API 以进行网络搜索:

Serper API 密钥存储在环境变量中

通过实用函数管理 API 调用

image

6.使用指南

6.1 先决条件

在使用求职团队系统之前,请确保您已:

已安装 Python 3.8+

所需软件包:crewai,,,,crewai_tools​anthropiclitellmlangchain_community

用于网络搜索的 Serper API 密钥

可访问 Amazon Bedrock 模型的 AWS 账户

使用适当的凭证配置的 AWS CLI

6.2 设置过程

克隆存储库

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 模型

6.3 运行系统

AIAgents_Resume.ipynb使用 Jupyter Notebook、VS Code、Google Colab 或 Amazon SageMaker打开笔记本。

按顺序执行笔记本单元。

提供所需的输入:

招聘信息网址或文字

您的简历(文件或文本)

GitHub 个人资料 URL(可选)

个人网站网址(可选)

系统将处理输入并生成:

针对特定工作进行优化的定制简历

面试准备问答材料

与整体系统的集成

求职团队系统是存储库中的两个多智能体系统之一,另一个是财务分析系统。这两个系统都采用类似的架构模式和框架,但服务于不同的目的。

image

8. 结论

求职团队系统展示了多智能体人工智能系统在自动化和优化求职流程方面的实际应用。通过利用专门的人工智能代理来处理求职流程的不同环节,该系统可以创建高度定制的简历和面试准备材料,从而最大限度地提高求职者的成功率。

在中国,Serper API(提供Google搜索结果的API服务)的替代方案主要包括以下几类:

1. 国内搜索引擎API

由于Google在中国访问受限,Serper API在国内可能无法稳定使用。以下是国内可用的替代方案:

  • 百度搜索API:百度开放平台提供搜索API,适用于中文搜索场景。
  • 360搜索API:360搜索也提供类似的搜索数据接口。
  • 搜狗搜索API:适用于网页、新闻等内容抓取。

2. 第三方SERP(搜索引擎结果页)API提供商

一些国际SERP API服务商可能在中国可用(需确认网络稳定性):

  • DataForSEO:支持Google、Bing等搜索引擎的SERP数据,但可能需要代理访问。
  • SerpApi:提供Google搜索结构化数据,但同样可能受网络限制。
  • Aves API:类似Serper的轻量级SERP抓取工具。

3. 国内数据抓取与自动化工具

如果目标是爬取搜索引擎数据,可考虑以下工具:

  • Octoparse(八爪鱼):无代码爬虫工具,支持模拟搜索行为。
  • Apify:提供网页抓取和自动化功能,可用于搜索引擎数据采集。
  • 浏览AI:支持自动化抓取Google、百度等搜索结果。

4. 国产大模型搜索增强方案

部分国产大模型厂商提供搜索增强API,如:

  • 阿里云通义千问:结合搜索能力,提供类似“Google答案框”的功能。
  • 百度文心一言:支持联网搜索,可获取实时信息。

结论

  • 如果目标是替代Serper API的Google搜索功能,国内可用的直接替代较少,可能需要结合代理或使用百度/360等本土搜索引擎API。
  • 如果目标是数据抓取,可考虑Apify、Octoparse等工具。
  • 如果目标是AI增强搜索,可尝试阿里云、百度等大模型提供的搜索API。

如需稳定访问Google SERP数据,可能需要通过海外服务器或VPN配合国际API服务(如SerpApi、DataForSEO)使用。

在中国,Amazon Bedrock 的主要替代品包括阿里云、百度智能云、腾讯云和华为云等厂商提供的类似大模型平台服务。这些平台不仅支持企业使用自研或第三方大模型,还提供定制化训练和部署能力,类似于 Amazon Bedrock 的功能。以下是具体对比:

1. 阿里云 - 通义千问(Qwen)

  • 功能:提供类似 Bedrock 的大模型 API 服务,支持企业微调(fine-tuning)和私有化部署。
  • 特点
    • 通义千问 Plus 的价格仅为 GPT-4 的 1/50,极具性价比。
    • 支持多模态能力,适用于文本、图像等生成任务。
    • 提供 2200 万免费 Tokens 以吸引 OpenAI 迁移用户。

2. 百度智能云 - 文心一言(ERNIE)

  • 功能:类似于 Bedrock,支持企业级大模型 API 调用,并提供定制化训练。
  • 特点
    • 百度推出“大模型普惠计划”,新注册企业可免费使用文心旗舰模型。
    • 提供与 OpenAI 使用规模对等的 Tokens 包,方便企业无缝迁移。
    • 支持私有化部署,确保数据安全。

3. 腾讯云 - 混元大模型

  • 功能:提供类似 Bedrock 的模型托管和 API 服务,支持企业微调。
  • 特点
    • 新迁移企业可免费获得 1 亿 Tokens。
    • 提供多个版本(Pro、Standard、Lite),适应不同需求。
    • 与腾讯生态(如微信、QQ)深度集成,适合社交和商业应用。

4. 华为云 - 盘古大模型

  • 功能:类似 Bedrock,但更强调行业定制化(如金融、政务、制造)。
  • 特点
    • “5+N+X”架构,5 个基础大模型 + N 个行业大模型 + X 个场景模型。
    • 提供端到端 AI 开发工具链,适合企业深度定制。
    • 适配国产信创环境(如昇腾芯片、鲲鹏服务器)。

5. 智谱 AI(清华系)

  • 功能:提供 GLM 大模型 API,支持企业定制。
  • 特点
    • 推出“搬家计划”,为 OpenAI 迁移用户提供 1.5 亿 Tokens。
    • 适用于科研、金融等专业领域。

对比总结

厂商 核心产品 主要优势 适用场景
阿里云 通义千问 高性价比、多模态 电商、内容生成
百度 文心一言 免费迁移支持、中文优化 搜索、企业服务
腾讯 混元大模型 社交生态整合 社交、游戏、广告
华为 盘古大模型 行业定制、信创适配 政务、金融、制造
智谱 AI GLM 科研支持、高精度 学术、金融分析

结论

中国的云服务厂商(阿里、百度、腾讯、华为等)均提供了类似 Amazon Bedrock 的大模型平台服务,支持企业级 AI 应用开发和定制。相较于 Bedrock,国产方案在价格、本地化支持、数据合规性方面更具优势,尤其适合国内企业使用。

About

求职团|CrewAI 优化求职申请和面试准备|多智能体协作系统

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0