前言    NeuralAgent 是一个基于大语言模型(LLM)的自主 AI 智能体(Autonomous Agent),专为在真实桌面环境中执行复杂任务而设计。它能够像人类一样操作浏览器、理解界面、规划步骤并实时决策,实现从“指令”到“完成”的端到端自动化。‌ 2 搭建过程(1)下载neuralagent下载NeuralAgent相关项目文件git clone 点击下载
cd neuralagent/backend  (2)创建并激活python虚拟环境为了不和本地的相关环境冲突,可以新建一个虚拟的环境
激活虚拟环境 (macOS/Linux)执行source venv/bin/activate# 激活虚拟环境 (Windows)执行venv\Scripts\activate   (3)安装相关依赖使用如下命令进行安装:
pip install -r requirements.txt 复制文件夹下的.env.example文件到.env,并填上实际的内容主要是填上postgresql的相关信息和ollama相关信息我这里是用到本地的ollama环境,所以我填的地址是ollama的连接地址   (4)运行数据库迁移执行如下命令
【瓜分奖池】NeuralAgent本地化部署实现AI智能应用 第5张插图
alembic upgrade head可以进行数据库迁移操作,注意要确保你本地的postgresql是可以访问的状态   (5)启动后端服务器通过如下命令就能运行后端的脚本
uvicorn main:app --reload --host 0.0.0.0 --port 8000
  (6)前端桌面应用配置通过如下命令安装Electron和React相关依赖 
cd neuralagent/desktopnpm install然后进入neuralagent-app目录下再次执行
cd neuralagent-appnpm install复制neuralagent-app目录下的.env.example文件为.env修改内容如下: (7)设置守护进程和安装相关依赖按照如下命令执行:
进入aiagent目录cd aiagentlinux系统的话执行:source venv/bin/activate  安装依赖pip install -r requirements.txt# 退出虚拟环境deactivate
  (8)启动桌面应用按照如下命令执行:
【瓜分奖池】NeuralAgent本地化部署实现AI智能应用 第6张插图
cd ../npm start
 执行之后,可能会报错,根据实际的情况,调整以下代码,例如:
动态初始化 LLM,根据 .env 中 COMPUTER_USE_AGENT_MODEL_TYPE 决定model_type = os.getenv("COMPUTER_USE_AGENT_MODEL_TYPE", "openai").lower()model_id = os.getenv("COMPUTER_USE_AGENT_MODEL_ID", "gpt-4o") if model_type == "azure_openai":    llm= AzureChatOpenAI(        azure_deployment=model_id,        api_version=os.getenv("OPENAI_API_VERSION", "2024-12-01-preview"),        temperature=0.3,        max_tokens=None,        timeout=None,        max_retries=2,    )elif model_type == "openai":    llm= ChatOpenAI(        model=model_id,        api_key=os.getenv("OPENAI_API_KEY"),        base_url=os.getenv("OPENAI_BASE_URL"),        temperature=0.3,        max_tokens=None,        timeout=None,        max_retries=2,    )else:    raise ValueError(f"Unsupported COMPUTER_USE_AGENT_MODEL_TYPE: {model_type}")
(9)授权注册运行好之后,会出来一个框,要求注册用户的相关信息 点击注册,并填写相关信息 但是这里注册之后,会遇到一些问题(例如提示密码超过72字节错误,实际没超过),又要修改一下backend\utils\security.py代码

                 自动截断到 72 字节(bcrypt 原生限制)    password_bytes = password.encode('utf-8')    if len(password_bytes) > 72:        password_bytes = password_bytes[:72]    # bcrypt.gensalt() 默认 cost=12    salt = bcrypt.gensalt()    hashed = bcrypt.hashpw(password_bytes, salt)    return hashed.decode('utf-8')def verify_password(plain_password: str, hashed_password: str) -> bool:    """Verify a plain-text password against a hashed password."""    plain_bytes = plain_password.encode('utf-8')    if len(plain_bytes) > 72:        plain_bytes = plain_bytes[:72]    hashed_bytes = hashed_password.encode('utf-8')    return bcrypt.checkpw(plain_bytes, hashed_bytes)
 (10)开始使用可以使用提示内容,访问本地的ollamaAI进行协助操作应用 我目前是研究到这里,还需要继续修改源码,才能打通全部逻辑,感兴趣的可以自行修改代码,并研究下