PostgreSQL MCP Server:让 AI 直接读懂你的数据库

news2026/3/18 2:47:37
PostgreSQL MCP Server让 AI 直接读懂你的数据库当 AI 能够用自然语言直接查询数据库传统开发模式将迎来革命性改变引言数据访问的最后一公里在软件开发的世界里数据库访问一直是技术门槛较高的环节。开发者需要掌握 SQL 语法、理解表结构、编写数据访问层代码还要考虑安全性、性能优化等问题。而对于产品经理、运营人员等非技术人员想从数据库中获取数据更是困难重重。PostgreSQL MCP Server的出现正在打破这一局面。它让 AI 模型能够通过自然语言直接与数据库交互实现所见即所得的数据访问体验。一、什么是 PostgreSQL MCP Server1.1 MCP 协议简介MCPModel Context Protocol模型上下文协议是由 Anthropic 在 2024 年底推出的开放标准协议。它的目标是标准化大型语言模型LLM与外部数据源、工具之间的通信方式。打个形象的比喻MCP 就像是 AI 应用的 USB-C 接口。正如 USB-C 为各种外设提供了统一的连接标准MCP 也为 AI 模型连接数据库、API、文件系统等外部资源提供了统一的规范。1.2 PostgreSQL MCP Server 的定位PostgreSQL MCP Server 是基于 MCP 协议实现的服务端程序专门用于连接 PostgreSQL 数据库。它的核心职责包括桥接 AI 与数据库充当 LLM 和 PostgreSQL 之间的翻译官提供标准化接口暴露统一的工具Tools供 AI 调用保障数据安全通过权限控制、查询限制等机制保护数据┌─────────────┐ MCP 协议 ┌──────────────────┐ │ AI 模型 │ ───────────────── │ PostgreSQL MCP │ │ (Claude等) │ Tools/Resources │ Server │ └─────────────┘ └──────────────────┘ │ ▼ ┌──────────────────┐ │ PostgreSQL │ │ Database │ └──────────────────┘二、核心能力AI 能做什么PostgreSQL MCP Server 通常提供以下核心工具不同实现可能略有差异2.1 查询工具工具名称功能描述典型用例query执行 SQL 查询语句“查询过去 7 天的订单总额”list_tables列出数据库中的所有表“数据库里有哪些表”describe_table查看表结构信息“users 表有哪些字段”get_schema获取完整的数据库架构“帮我理解这个数据库的设计”2.2 实际对话示例用户帮我查一下上个月销售额最高的 5 个产品AI 自动执行SELECTproduct_name,SUM(amount)astotal_salesFROMordersWHEREorder_dateDATE_TRUNC(month,CURRENT_DATE-INTERVAL1 month)ANDorder_dateDATE_TRUNC(month,CURRENT_DATE)GROUPBYproduct_nameORDERBYtotal_salesDESCLIMIT5;AI 返回结果上个月销售额排名前 5 的产品是智能手表 Pro - ¥856,000无线耳机 Max - ¥720,000机械键盘 X1 - ¥654,000便携显示器 - ¥598,000充电宝 Ultra - ¥521,000全程无需用户编写一行 SQL三、使用场景谁在用用来做什么3.1 数据分析师的利器传统流程提需求给开发团队等待开发排期接收导出的 Excel发现数据不对重新来过使用 MCP Server 后直接对 AI 说“帮我分析一下 Q4 用户留存率的变化趋势”AI 自动查询、分析、生成图表。3.2 开发者的效率工具场景快速原型验证无需编写 DAO 层代码直接通过 AI 测试查询逻辑数据库迁移时快速对比新旧数据一致性调试时快速检查数据状态3.3 产品经理的自助查询场景日常数据需求查看昨日新增用户数统计某功能的日活跃用户对比不同时间段的业务指标价值减少对开发团队的依赖提升决策效率3.4 企业级应用数据治理通过权限控制不同角色看到不同的数据范围审计日志所有查询都有记录便于追溯快速接入新业务系统无需重新开发数据访问层四、硬编码无法替代的优势4.1 灵活性动态查询 vs 固定接口硬编码方式的局限// 传统方式预先定义好的查询接口router.get(/api/users/active,async(req,res){constresultawaitdb.query(SELECT * FROM users WHERE last_login NOW() - INTERVAL 30 days);res.json(result);});问题在于新需求来了重新开发接口查询条件变化修改代码、重新部署非标准查询无法支持MCP Server 方式的优势用户帮我找出过去 30 天内登录超过 5 次但从未购买的用户 AI自动生成 SQL立即返回结果无需修改任何代码4.2 智能性上下文理解硬编码的接口是死的而 MCP Server 配合 LLM 具备语义理解理解最近、“活跃”、重要客户等模糊概念上下文记忆基于对话历史优化查询自动纠错发现 SQL 错误并自动修正解释能力能够解释查询逻辑和结果含义实际案例用户查询北京的用户 AI执行 WHERE city 北京 用户上海的也要 AI理解是追加条件执行 WHERE city IN (北京, 上海) 用户只要注册时间在今年的 AI继续追加条件 WHERE ... AND created_at 2025-01-014.3 降低技术门槛维度硬编码方式MCP Server 方式学习成本需掌握 SQL、编程语言会说话就行开发周期数天到数周即时可用维护成本需持续维护代码协议自动升级适用人群开发者全员可用4.4 安全性保障有人担心让 AI 直接访问数据库安全吗PostgreSQL MCP Server 提供多重保障只读模式默认只允许 SELECT 查询防止数据被篡改权限控制基于数据库用户权限最小化暴露范围SQL 注入防护参数化查询避免恶意注入查询审计所有操作可追溯// MCP Server 配置示例{postgres:{command:docker,args:[run,-i,--rm,mcp/postgres,postgresql://readonly_user:passwordhost:5432/mydb]}}4.5 可扩展性一个 MCP Server 可以被多个 AI 客户端复用Claude、ChatGPT、Cursor 等通过标准协议接入不同平台无需为每个平台单独开发集成五、PostgreSQL 版本支持与兼容性5.1 支持的 PostgreSQL 版本PostgreSQL MCP Server 对 PostgreSQL 数据库版本的要求非常宽松得益于 MCP 协议的抽象层设计PostgreSQL 版本支持状态说明PostgreSQL 17.x✅ 完全支持最新稳定版推荐使用PostgreSQL 16.x✅ 完全支持长期支持版本生产环境推荐PostgreSQL 15.x✅ 完全支持主流版本广泛使用PostgreSQL 14.x✅ 完全支持企业常用版本PostgreSQL 13.x✅ 完全支持依然维护中PostgreSQL 12.x⚠️ 基本支持部分新特性不可用PostgreSQL 11 及以下⚠️ 有限支持建议升级核心原因MCP Server 通过标准的 PostgreSQL 驱动如psycopg2、pg连接数据库使用标准的 SQL 查询语法不依赖特定版本的专有特性主要是查询操作对版本特性的依赖较低5.2 版本选择建议新项目推荐使用 PostgreSQL 16获得最佳性能和新特性现有项目无需为了 MCP 而升级数据库版本现有版本即可正常使用特殊需求如果需要使用特定版本特性如 JSON 路径查询、分区表增强等确保数据库版本支持即可六、详细配置与使用教程6.1 环境准备必需条件✅ Docker推荐或 Node.js 环境✅ PostgreSQL 数据库本地或远程✅ 支持 MCP 协议的 LLM 客户端可选条件Python 环境如需自定义 MCP ServerGit用于克隆项目6.2 方案一Claude Desktop 配置最简单Claude Desktop 是 Anthropic 官方客户端对 MCP 支持最完善。步骤 1准备 PostgreSQL 数据库如果已有数据库跳过此步骤。如果没有使用 Docker 快速启动# 启动 PostgreSQL 容器dockerrun-d\--namepostgres-mcp\-ePOSTGRES_USERmcp_user\-ePOSTGRES_PASSWORDmcp_password\-ePOSTGRES_DBmydb\-p5432:5432\postgres:16# 验证运行状态dockerps|greppostgres-mcp创建只读用户安全最佳实践-- 连接到数据库dockerexec-it postgres-mcp psql-U postgres-- 创建只读用户CREATEUSERreadonly_userWITHPASSWORDsecure_password;GRANTCONNECTONDATABASEmydbTOreadonly_user;GRANTUSAGEONSCHEMApublicTOreadonly_user;GRANTSELECTONALLTABLESINSCHEMApublicTOreadonly_user;-- 自动授权未来创建的表ALTERDEFAULTPRIVILEGESINSCHEMApublicGRANTSELECTONTABLESTOreadonly_user;步骤 2拉取 PostgreSQL MCP Server 镜像# 拉取官方镜像dockerpull mcp/postgres# 验证镜像dockerimages|grepmcp/postgres步骤 3配置 Claude Desktop打开 Claude Desktop进入Settings → Developer → Edit Config编辑claude_desktop_config.json文件配置示例Docker 方式{mcpServers:{postgres:{command:docker,args:[run,-i,--rm,mcp/postgres,postgresql://readonly_user:secure_passwordhost.docker.internal:5432/mydb]}}}配置示例本地方式需先安装 Node.js{mcpServers:{postgres:{command:npx,args:[-y,modelcontextprotocol/server-postgres,postgresql://readonly_user:secure_passwordlocalhost:5432/mydb]}}}参数说明host.docker.internalDocker 容器访问宿主机的特殊地址Windows/MacLinux 系统使用172.17.0.1或宿主机的实际 IP连接字符串格式postgresql://用户名:密码主机:端口/数据库名步骤 4重启并验证完全关闭 Claude Desktop重新启动 Claude Desktop在对话框中输入测试命令请列出数据库中的所有表成功标志AI 返回表列表Claude 界面显示 MCP 工具已加载绿色指示灯常见问题排查问题解决方案无法连接数据库检查连接字符串、网络、防火墙权限不足确认数据库用户有 SELECT 权限MCP Server 未加载检查 JSON 格式、Docker 是否运行超时错误增加数据库连接超时时间6.3 方案二Cursor 配置开发者友好Cursor 是 AI 编程工具支持项目级 MCP 配置。步骤 1安装 Cursor下载地址https://cursor.sh步骤 2创建 MCP 配置文件项目级配置推荐在项目根目录创建.cursor/mcp.json{mcpServers:{postgres:{command:docker,args:[run,-i,--rm,mcp/postgres,postgresql://mcp_user:mcp_passwordhost.docker.internal:5432/mydb]}}}全局配置在用户主目录创建~/.cursor/mcp.json所有项目可用Windows:C:\Users\你的用户名\.cursor\mcp.jsonmacOS/Linux:~/.cursor/mcp.json步骤 3验证配置重启 Cursor打开 AI 对话窗口Ctrl/Cmd L查看是否有绿色指示灯亮起测试查询帮我查看 users 表的结构步骤 4开发实战示例用户帮我写一个查询统计每个用户的订单总额按金额降序排列 Cursor AI 我会先查看一下 orders 表的结构... [自动调用 MCP Server 查询表结构] 好的我看到 orders 表有 user_id 和 amount 字段。 这是查询语句 SELECT u.username, COUNT(o.id) as order_count, SUM(o.amount) as total_amount FROM users u LEFT JOIN orders o ON u.id o.user_id GROUP BY u.id, u.username ORDER BY total_amount DESC; 让我在数据库上运行一下这个查询... [执行查询并返回结果] ### 6.4 方案三Cline (VSCode) 配置 Cline 是 VSCode 的 AI 助手插件支持自定义 MCP Server。 #### 步骤 1安装 Cline 插件 1. 打开 VSCode 2. 按 CtrlShiftX 打开扩展面板 3. 搜索 Cline 4. 点击 Install #### 步骤 2配置 LLM 模型 打开 Cline 设置左侧 Cline 图标 → Settings **选项 A使用 OpenRouter免费**API Provider: OpenRouterModel: 选择带 “free” 字样的模型API Key: [点击 Get API Key 自动获取]**选项 B使用 DeepSeek推荐**API Provider: OpenAI CompatibleBase URL: https://api.deepseek.comAPI Key: [从 DeepSeek 官网获取]Model ID: deepseek-chat**选项 C使用阿里云百炼**API Provider: OpenAI CompatibleBase URL: https://dashscope.aliyuncs.com/compatible-mode/v1API Key: [从阿里云获取]Model ID: qwen-turbo#### 步骤 3配置 PostgreSQL MCP Server 在 Cline 界面下方找到 MCP Server 部分 **方式一通过界面添加推荐** 1. 点击 Add MCP Server 2. 填写配置 - Name: postgres - Command: docker - Args: run,-i,--rm,mcp/postgres,postgresql://user:passhost:5432/db **方式二手动编辑配置文件** 找到 Cline 配置文件 - Windows: %APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json - macOS: ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json - Linux: ~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json 添加以下内容 json { mcpServers: { postgres: { command: docker, args: [ run, -i, --rm, mcp/postgres, postgresql://readonly_user:secure_passwordhost.docker.internal:5432/mydb ] } } }步骤 4使用示例在 VSCode 中打开 Cline输入帮我分析一下最近 7 天的用户注册趋势Cline 会理解需求自动调用 MCP Server 查询数据库生成分析报告可选创建可视化图表6.5 方案四ChatGPT 配置需 MCP 网关ChatGPT 原生暂不支持 MCP需通过第三方网关实现。使用 Dify 作为 MCP 网关Dify 是开源的 LLM 应用开发平台支持 MCP 协议。步骤 1部署 DifyDocker 方式gitclone https://github.com/langgenius/dify.gitcddify/dockerdockercompose up-d步骤 2配置 MCP Server访问 Dify 控制台默认 http://localhost进入 工作空间 → 工具 → MCP点击 “添加 MCP 服务器”填写服务器 URL需部署 MCP HTTP 网关步骤 3创建应用并关联 MCP创建新应用选择已配置的 MCP 工具使用 OpenAI API Key 作为后端步骤 4使用用户通过 Dify 应用界面与 AI 对话AI 会自动调用 MCP Server 访问数据库。七、完整使用流程示例7.1 场景电商数据分析前提已完成 Claude Desktop PostgreSQL MCP Server 配置第一步理解数据库结构用户请帮我了解一下这个数据库的结构AI正在查询数据库架构…[调用 MCP Server 的 get_schema 工具]数据库包含以下表users用户表id, username, email, created_at, last_loginproducts商品表id, name, category, price, stockorders订单表id, user_id, product_id, quantity, amount, status, created_atreviews评价表id, user_id, product_id, rating, comment, created_at表关系users.id → orders.user_idproducts.id → orders.product_idusers.id → reviews.user_idproducts.id → reviews.product_id#### 第二步业务分析查询 **用户**分析一下上个月销售表现最好的前 10 个商品包括销量、销售额和评价情况 **AI**我将编写一个联合查询来获取这些信息... [AI 自动生成 SQL] SELECT p.id, p.name, p.category, COUNT(o.id) as order_count, SUM(o.quantity) as total_quantity, SUM(o.amount) as total_revenue, AVG(r.rating) as avg_rating, COUNT(r.id) as review_count FROM products p LEFT JOIN orders o ON p.id o.product_id AND o.created_at DATE_TRUNC(month, CURRENT_DATE - INTERVAL 1 month) AND o.created_at DATE_TRUNC(month, CURRENT_DATE) LEFT JOIN reviews r ON p.id r.product_id WHERE o.status completed GROUP BY p.id, p.name, p.category ORDER BY total_revenue DESC LIMIT 10; [执行查询] 上个月销售 TOP 10 商品 | 排名 | 商品名称 | 类别 | 销量 | 销售额 | 平均评分 | |-----|---------|------|------|--------|---------| | 1 | 智能手表 Pro | 电子产品 | 523 | ¥261,500 | 4.8 | | 2 | 无线耳机 Max | 电子产品 | 892 | ¥178,400 | 4.6 | | 3 | 机械键盘 X1 | 电脑配件 | 345 | ¥103,500 | 4.9 | ... 分析洞察 - 电子产品占据 TOP 3是主要收入来源 - 智能手表 Pro 虽然销量不是最高但客单价高销售额领先 - 机械键盘 X1 评分最高4.9用户满意度极佳 #### 第三步深度挖掘 **用户**智能手表 Pro 的用户主要是哪些群体 **AI**让我分析购买智能手表 Pro 的用户特征... [执行查询] SELECT CASE WHEN age 25 THEN 18-24岁 WHEN age 35 THEN 25-34岁 WHEN age 45 THEN 35-44岁 ELSE 45岁以上 END as age_group, gender, COUNT(*) as purchase_count, AVG(o.amount) as avg_spending FROM orders o JOIN users u ON o.user_id u.id WHERE o.product_id (SELECT id FROM products WHERE name 智能手表 Pro) GROUP BY age_group, gender ORDER BY purchase_count DESC; [结果分析] 智能手表 Pro 用户画像 主要购买群体 - 25-34岁男性占比 42%平均消费 ¥520 - 35-44岁男性占比 28%平均消费 ¥580 - 25-34岁女性占比 18%平均消费 ¥490 建议 1. 针对年轻职场人士25-34岁加大推广力度 2. 考虑开发女性专属款式拓展市场 3. 针对高消费群体推出高级版本 ### 7.2 场景数据库监控与优化 **用户**帮我检查一下数据库的性能问题 **AI**我将通过几个查询来分析数据库性能... [调用 MCP Server] sql -- 检查表大小 SELECT schemaname, tablename, pg_size_pretty(pg_total_relation_size(schemaname||.||tablename)) as size, pg_total_relation_size(schemaname||.||tablename) as bytes FROM pg_tables WHERE schemaname public ORDER BY bytes DESC; -- 检查索引使用情况 SELECT schemaname, tablename, indexname, idx_scan, idx_tup_read, idx_tup_fetch FROM pg_stat_user_indexes ORDER BY idx_scan ASC; -- 检查慢查询需要开启 pg_stat_statements性能分析报告表大小分析orders 表2.3 GB最大users 表156 MBproducts 表12 MB⚠️发现问题orders 表缺少 created_at 字段的索引可能导致时间范围查询慢idx_users_email 索引从未被使用idx_scan 0建议删除reviews 表的 product_id 字段缺少索引优化建议-- 添加缺失的索引CREATEINDEXidx_orders_created_atONorders(created_at);CREATEINDEXidx_reviews_product_idONreviews(product_id);-- 删除无用索引DROPINDEXidx_users_email;预估性能提升时间范围查询速度提升 80%八、高级配置与定制8.1 多数据库配置可以配置多个 MCP Server 连接不同的数据库{mcpServers:{postgres-prod:{command:docker,args:[run,-i,--rm,mcp/postgres,postgresql://readonlyprod-server:5432/app_db]},postgres-staging:{command:docker,args:[run,-i,--rm,mcp/postgres,postgresql://readonlystaging-server:5432/app_db]},postgres-analytics:{command:docker,args:[run,-i,--rm,mcp/postgres,postgresql://analystanalytics-server:5432/warehouse]}}}使用时指定数据源用户在生产数据库中查询昨天的订单量AI 会自动选择 postgres-prod MCP Server 进行查询8.2 自定义 MCP Server如果官方 MCP Server 不满足需求可以自定义开发Python 示例# custom_postgres_mcp.pyfrommcp.serverimportServerfrommcp.server.stdioimportstdio_serverimportpsycopg2 serverServer(custom-postgres)server.list_tools()asyncdeflist_tools():return[Tool(nameexecute_query,description执行 SQL 查询,inputSchema{type:object,properties:{sql:{type:string}}}),Tool(nameanalyze_table,description分析表统计信息,inputSchema{type:object,properties:{table_name:{type:string}}})]server.call_tool()asyncdefcall_tool(name:str,arguments:dict):ifnameexecute_query:# 执行查询逻辑passelifnameanalyze_table:# 分析表逻辑passasyncdefmain():asyncwithstdio_server()as(read_stream,write_stream):awaitserver.run(read_stream,write_stream)if__name____main__:importasyncio asyncio.run(main())配置使用{mcpServers:{custom-postgres:{command:python,args:[/path/to/custom_postgres_mcp.py],env:{DATABASE_URL:postgresql://...}}}}8.3 安全加固配置只读模式强制-- 创建超级只读用户CREATEROLE readonly_login LOGIN PASSWORDsecure_password;-- 只授予连接权限GRANTCONNECTONDATABASEmydbTOreadonly_login;-- 授予 schema 使用权限GRANTUSAGEONSCHEMApublicTOreadonly_login;-- 授予所有现有表的只读权限GRANTSELECTONALLTABLESINSCHEMApublicTOreadonly_login;-- 授予所有未来表的只读权限ALTERDEFAULTPRIVILEGESINSCHEMApublicGRANTSELECTONTABLESTOreadonly_login;-- 禁止修改任何数据REVOKEINSERT,UPDATE,DELETEONALLTABLESINSCHEMApublicFROMreadonly_login;网络隔离# 仅允许特定 IP 访问# pg_hba.confhostmydb readonly_login192.168.1.0/24 md5# 禁止远程连接hostall all0.0.0.0/0 reject查询超时限制-- 设置用户级别的查询超时ALTERUSERreadonly_loginSETstatement_timeout30s;ALTERUSERreadonly_loginSETlock_timeout10s;九、生态现状与未来展望9.1 主流实现目前已有多个 PostgreSQL MCP Server 实现项目特点适用场景mcp/postgres(官方)Docker 镜像开箱即用快速体验Azure PostgreSQL MCP云原生企业级Azure 云环境开源社区实现高度可定制特殊需求9.2 兼容的 AI 平台✅ Claude Desktop最佳体验✅ Cursor开发者友好✅ Cline for VSCode✅ ChatGPT通过 Dify 网关✅ GitHub Copilot部分支持✅ 其他支持 MCP 协议的客户端9.3 未来发展方向写入能力支持 INSERT、UPDATE、DELETE 操作需要更强的安全控制智能优化AI 自动优化查询性能多数据库支持一个 MCP Server 连接多个数据库可视化集成直接生成图表、仪表盘团队协作共享查询模板、知识库十、最佳实践与注意事项10.1 安全建议使用只读账号创建专门的数据库用户只授予 SELECT 权限网络隔离MCP Server 与数据库尽量在同一内网敏感字段脱敏提前处理身份证、手机号等敏感信息定期审计检查查询日志发现异常行为10.2 性能优化添加查询超时限制避免长时间运行的查询结果集大小限制防止返回过多数据建立合适的索引AI 生成的 SQL 也需要索引支持监控资源使用关注数据库负载使用连接池提高并发查询性能10.3 使用技巧明确表达需求越具体的问题AI 的回答越准确提供上下文告诉 AI 数据库的业务背景分步查询复杂问题拆分成多个小问题验证结果重要决策前人工复核关键数据结语数据访问的民主化时代PostgreSQL MCP Server 代表了一种新的技术趋势让技术不再只是技术人员的专利。当产品经理可以用自然语言查数据当运营人员可以自助生成报表当开发者不再被重复的数据接口需求打扰——整个团队的效率将得到质的提升。这不是要取代开发者的工作而是让开发者专注于更有价值的创造。同时它也让更多人能够从数据中获取洞察做出更好的决策。MCP 协议才刚刚起步PostgreSQL MCP Server 也还在快速发展中。但可以预见的是这种AI 即接口的模式将成为未来数据访问的重要方式。参考资料MCP 官方文档PostgreSQL MCP Server (Docker)Anthropic MCP GitHubClaude Desktop 下载欢迎关注我的专栏获取更多技术深度文章

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2421483.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…