搜索自动化智能体建设的运行

AI 智能体本地部署实战

OpenClaw 从环境搭建到避坑全攻略,本地跑通你的 AI 代理

  


这里将介绍一种强大的解决方案:利用人工智能和浏览器自动化技术,大幅简化你的搜索就业信息流程。我们将深入探讨一个基于browser-use库构建的Python脚本,打造一个可自动搜索、分析、记录就业信息并辅助上传简历的智能体。这个智能体能够根据你的指令浏览网站、提取关键信息,甚至与网页元素进行交互,而这一切都由大语言模型驱动。主要目标如下:自动化搜索和筛选数据分析相关职位。智能提取职位信息和技术要求。自动上传简历并填写申请表单。生成技术栈思维导图和求职分析报告。提高求职效率,减少重复性工作。

技术框架

browser-use是本项目的核心组件,它是一个专为智能体浏览器交互而设计的Python库。根据其GitHub页面的介绍,该库通过集成大语言模型来实现智能化的网页操作。其核心特性如下。智能网页理解:基于视觉和文本双重分析,准确理解网页结构和内容语义。自然语言交互:支持使用自然语言指令直接控制浏览器操作,降低使用门槛。多模态感知:融合视觉信息和文本内容,实现更准确的页面元素识别和操作决策。动态适应性:具备处理不同网站布局和交互模式的能力,适应性强。智能容错:内置异常处理和重试机制,提高任务执行的稳定性和成功率。

除了核心的browser-use库,该智能体还集成了以下主要组件。

LangChain:大语言模型集成框架,负责对话管理和任务编排。
Google Gemini API:提供强大的自然语言理解和成能力。
PyPDF2:PDF文档处理库,用于解析简历文件内容。
Pydantic:数据验证和序列化框架,确保数据类型安全。
Playwright:底层浏览器控制引擎,提供跨平台浏览器操作。  


#组合所有指令   
#注意:原始脚本中的memory、action和reflection 是变量名   
#这里改为更具描述性的名称   
ground_task =(    
  ground_task + memory_instructions + account_profile + action_instructions + reflection_instructions   
)   

#大语言模型配置:支持多种大语言模型API   
#可使用 ChatOpenAI, ChatAnthropic, ChatGoogleGenerativeAI等   
#(脚本中已包含 Gemini 和OpenAI via GitHub的配置)   
_token_b64 ="[API_TOKEN_BASE64]"   
token =base64.b64decode(_token_b64).decode ("utf-8")     

#使用Gemini Pro   
model ChatGoogleGenerativeAI(   
  model="gemini-2.5-flash" api_kev=SecretStr(token) 
)   
planner_LLM =ChatGoogleGenerativeAI(    
   model="gemini-2.5-pro", api_key=SecretStr(token)) 

#或者使用OpenAI via GitHub 
#token_openai_github ="[GITHUB_PAT_TOKEN]" #替换为你的 GitHub PAT 
#model =ChatOpenAI( 
#  base_url="https://*****/inference", 
#  model="openai/gpt-4o", 
#   api_key=SecretStr(token_openai_github), 
#) 
#planner_LLM = ChatOpenAI( 
#  base_url="https://******/inference", 
#  model="openai/gpt-4o", 
#  api_key=SecretStr(token_openai_github), 
# ) 

message_context =(   
   f"任务执行上下文信息:\n"   
   f"1.总体目标:分析10000个数据分析相关的职位描述\n"   
   f"2.当前进度:已完成{total_applications}个职位的分析\n"   
   f"3.剩余任务:还需分析{10000-total applications}个职位\n"   
   f"4.完成度:{(total_applications/10000)*100:.lf}%\n"   
   f"5.重点关注:杭州香港地区金融行业的合规、KYC、客服相关职位\n"   
   f"6.技术栈重点:数据分析、AI/ML、合规技术等相关技能\n"   
   f"7.输出要求:结构化数据收集,为创建思维导图做准备\n"   
)   

while True:   
    logger.info("开始运行数据分析助手...")    
    browser =Browser(    
       config=BrowserConfig(    
            browser_binary_path=(   
              "/Applications/Google Chrome.app/Contents/MacoS/GoogleChrome"    
            ),    
            disable_security=True,   
            headless=False,    
            )   
         )   
    async with await browser.new_context () as context:    
        try:    
           agent Agent(    
               task=ground_task, 
  message_contextmessage_context,   
  LLM=model,   
  planner_LLM=planner_LLM,   
  use_vision_for_planner=True,   
  planner_interval=4,   
  controller=controller,   
  max_failures=3,   
  use_vision=True,   
  browser_context=context,   
  save_conversation_path="logs/find_apply_jobs",   
)   
agent.state =AgentState()   
history =await agent.run()   
if history:    
 logger.info(f"访问的URL数量:{len(history.urls())}")   
 #其他日志   
 new_total_applications =total_applications   
 if os.path.exists (APPLICATION_STATS_FILE):   
    try:    
       with open(   
           APPLICATION_STATS_FILE, "r", encoding="utf-8") as f:   
              stats =json.load(f)    
              new_total_applications =stats.get(   
                   "total_applications", 0   
          )    
 except Exception as e:    
       logger.error(f"读取“申请/分析”统计文件时出错:{e}")   
 new_applications =(   
    new_total_applications - total_applications   
)   
logger.info(   
     f"本次运行新增了{new_applications}个职位分析,"    
     f"当前总计:{new_total_applications}/10000"   
)    
   await asyncio.sleep(1)    
  logger.info("\n等待1秒后继续下一轮......")   
 except Exception as e:    
     logger.error(f"agent 运行失败,全部重置:{str(e)}")   
     await asyncio.sleep(1)    
     continue   
await browser.close() 

if__name__ = "__main__":   
    asyncio. run(main())
此部分详细描述了如何构建和组合给大语言模型的指令,以及智能体的初始化和主循环。

运行演示脚本与成果展示
确保满足这些前提条件:仔细检查Python 版本、已安装的库、Playwright浏览器驱动程序、简历文件和应用程序接口密钥。

1.配置大语言模型
在脚本中,确保所需的大语言模型配置已激活,并且应用程序接口密钥已正确设置。

2.验证浏览器路径
验证 BrowserConfig 中的 browser_binary_path 指向本地的Chrome安装位置。

3.运行脚本
python your_script_name.py
一个浏览器窗口被打开(因为headless=False),你将看到智能体开始浏览网站、输入搜索查询,并根据提供的详尽提示提取就业信息。监控控制台输出和job_search.log 文件以了解进度和任何错误。

4.运行结果与成果展示预期
运行脚本后,你可以期待以下成果。
自动生成的职位信息CSV文件,包含职位名称、公司、薪资等详细信息。
结构化的技术元数据,可用于生成思维导图。
详细的日志文件,记录整个搜索和分析过程。
统计报告,显示已分析的职位数量和进度。
可视化的浏览器操作过程,便于调试和优化。

AI 智能体本地部署实战

OpenClaw 从环境搭建到避坑全攻略,本地跑通你的 AI 代理

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值