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

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

本文内容仅供校术原理讲解,严禁用于未经投权的商业抓取。 手动筛选海量就业信息、反复修改自己的就业搜索要求、追踪进度等烦琐任务让大家应接不暇,同时还容易遗漏优质机会。如果我们能够构建一个智能体来自动化这个过程,将会怎样?本文将从需求分析到系统实现,从功能验证到效果评估,探索智能体应用开发的完整过程。 这里将介绍一种强大的解决方案:利用人工智能和浏览器自动化技术,大幅简化你的搜索就业信息流程。我们将深入探讨一个基于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文件,包含职位名称、公司、薪资等详细信息。 结构化的技术元数据,可用于生成思维导图。 详细的日志文件,记录整个搜索和分析过程。 统计报告,显示已分析的职位数量和进度。 可视化的浏览器操作过程,便于调试和优化。