基于Browser_Use与LangChain的AI浏览器自动化应用

基于Browser_Use与LangChain的AI浏览器自动化应用

技术背景与价值主张

Browser_Use与LangChain框架构建了一套自然语言驱动的浏览器自动化应用

技术架构解析

一、环境配置与初始化

python 复制代码
from browser_use import Agent, Browser, BrowserConfig
# 浏览器引擎配置(支持Chromium/WebKit/Firefox)
browser_config = BrowserConfig(
    headless=False,  # 可视化模式便于调试
    disable_security=True,  # 绕过CSP限制
    user_agent="Mozilla/5.0 (辅助操作模式)"  # 反爬伪装
)

二、核心功能模块

使用以下代码调用Api接口操作浏览器,需注册硅基流动,该Api提供方会赠送10元免费额度,学习够用。 点击注册硅基流动

1. 任务调度引擎
python 复制代码
async def task_processor(context, llm):
    while True:
        # 支持自然语言指令输入
        task = await asyncio.to_thread(input, "指令输入:")
        agent = Agent(
            task=task, 
            llm=llm,
            browser_context=context,
            vision_threshold=0.85  # 视觉识别置信度
        )
        # 自动重试机制(最大3次)
        result = await agent.run(max_retries=3)
2. 多模态感知系统

​DOM解析​:通过XPath/CSS选择器定位元素 ​视觉识别​:基于ResNet-50的控件特征提取 ​语义理解​:LLM驱动的意图识别框架

3. 异常处理机制
python 复制代码
try:
    await agent.execute_action()
except ElementNotFound:
    await agent.vision_recovery()  # 启动视觉补偿
except TimeoutError:
    await context.reload()  # 页面刷新恢复

三、典型应用场景

1. 网购助手
python 复制代码
agent = Agent(
    task="在京东搜索血糖仪,按销量排序选前三名加入购物车",
    llm=DeepSeek_V3(),
    use_vision=True  # 启用图像识别
)
2. 学习助手
python 复制代码
agent = Agent(
    task="微积分常用公式有哪些",
    llm=DeepSeek_V3(),
    use_vision=True  # 启用图像识别
)

四、持久化命令操作

Agent打开的浏览器,往往在AI Api调用后自动关闭,所以需生成Browser

python 复制代码
# 配置浏览器参数
browser_config = BrowserConfig(
    headless=False,  # 显示浏览器界面
    disable_security=True,  # 允许跨域操作
    # extra_browser_args=["--disable-blink-features=AutomationControlled"]  # 反反爬参数
)
browser = Browser(config=browser_config)

五、完整代码

上代码环节

python 复制代码
# 导入必要的库
from langchain_openai import ChatOpenAI  # OpenAI语言模型交互模块
from browser_use import Agent, Browser, BrowserConfig  # 浏览器自动化框架
from dotenv import load_dotenv  # 环境变量加载工具
import os  # 操作系统接口
import asyncio  # 异步IO框架

# 加载.env文件中的环境变量(需包含API密钥等信息)
load_dotenv()

# 定义异步交互代理函数
async def interactive_agent():
    # 配置浏览器参数
    browser_config = BrowserConfig(
        headless=False,  # 可视化模式运行浏览器(调试时建议开启)
        disable_security=True,  # 禁用安全策略允许跨域操作
        # extra_browser_args=["--disable-blink-features=AutomationControlled"]  # 反自动化检测参数
    )
    # 初始化浏览器实例
    browser = Browser(config=browser_config)
    
    # 创建大语言模型实例
    llm = ChatOpenAI(
        model=os.getenv('Silicon_Cloud_Model'),  # 从环境变量获取模型名称
        api_key=os.getenv('Silicon_Cloud_API_KEY'),  # 从环境变量获取API密钥
        base_url=os.getenv('Silicon_Cloud_Base_URL')  # 从环境变量获取API基础地址
    )
    
    try:
        # 创建浏览器上下文(支持多标签页隔离)
        async with await browser.new_context() as context:
            # 持续接收用户输入
            while True:
                # 异步获取用户输入的任务描述
                task = await asyncio.to_thread(input, "请输入任务描述(输入quit退出):")
                print(f'"{task}"')  # 回显输入内容
                if task.lower() == "quit":  # 退出条件判断
                    break
                
                # 创建AI代理实例
                agent = Agent(
                    task=f'"{task}"',  # 用户指定的自然语言任务
                    llm=llm,  # 绑定语言模型
                    use_vision=False,  # 禁用视觉识别模块
                    browser_context=context  # 绑定浏览器上下文
                )
                
                try:
                    # 执行自动化任务
                    result = await agent.run()
                    # 输出最终执行结果
                    print(f"执行结果:\n{result.final_result()}")
                except Exception as e:
                    # 异常处理模块)
                    print(f"任务失败: {str(e)}")
                    await context.clear_cache()  # 清理浏览器缓存

    finally:
        # 确保浏览器实例正确关闭
        await browser.close()
        print("浏览器已安全关闭")

# 主程序入口
if __name__ == "__main__":
    # 启动异步事件循环
    asyncio.run(interactive_agent())

引用说明
1: Browser_Useg官方文档 2: Browser_Useg Github库 3: ChatOpenAI功能及配置

Api提供方 硅基流动注册

相关推荐
工藤学编程20 小时前
零基础学AI大模型之LangChain聊天模型多案例实战
人工智能·langchain
西柚四季春1 天前
踩坑全记录:LangChain4j + Qdrant 从「id 为空」到「text 为 null」一次踩个够
langchain
Stream_Silver2 天前
《LangChain入门指南》学习笔记1:第1章 LangChain:开启大语言模型时代的钥匙
笔记·学习·langchain
工藤学编程3 天前
零基础学AI大模型之LangChain-PromptTemplate
人工智能·langchain
脚踏实地的大梦想家3 天前
【LangChain】P2 LangChain宏观架构深度解析:构建企业级大模型应用的首选框架
架构·langchain
工藤学编程4 天前
零基础学AI大模型之LangChain六大核心模块与大模型IO交互链路
人工智能·langchain·交互
lihuayong4 天前
从“链”到“图”:LangGraph如何终结LangChain的线性智能体
人工智能·langchain·langgraph
大模型铲屎官4 天前
【LangChain 核心组件指南 | Agent篇】从零到精通:深度解析 create_agent 与 ReAct 智能体构建
人工智能·python·深度学习·langchain·大模型·agent·react智能体
玲小珑4 天前
LangChain.js 完全开发手册(十二)高性能 AI 应用优化技术
前端·langchain·ai编程
ObjectX前端实验室5 天前
LLM的生态与能力边界&一个基本对话的实现
前端·langchain·llm