Python与影刀RPA深度集成:实现可编程、可调试、可复用的自动化流程
简介本资源是一套面向编程初学者与RPA实践者的Python与影刀RPA协同开发实战代码包聚焦解决“爬取数据→清洗处理→写入Excel”全流程自动化中的操作繁琐、逻辑复杂、入门门槛高等痛点。资源共5个文件1个核心Python脚本data_crawler.py实现数据请求与自定义清洗逻辑1个HTML文档提供流程说明与调用示例1个.xlsx文件为输出样例1个.txt含依赖清单requirements.txt另含1个.inscode配置文件支持影刀环境快速集成整体仅11KB轻量易部署。已有404人学习下载适合希望绕过底层库细节、借助可视化RPA搭建自动化流水线同时保留Python灵活处理能力的用户。读者可直接复用完整调用链路——从影刀中设置列表变量、调用Python函数处理接口响应到最终通过影刀指令写入结构化Excel获得开箱即用的低代码强逻辑混合开发范式。1. Python 与影刀 RPA 结合不是“胶水粘贴”而是让自动化流程真正可编程、可调试、可复用你有没有遇到过这样的场景在影刀里拖拽了 20 个组件搭出一个审批单自动归档流程运行一周后业务方突然说“要加个逻辑——如果附件是 PDF就先转成文字再提取合同编号”你翻遍影刀内置组件没找到 PDF 文字提取临时找插件不支持导出为 Excel 再处理字段错位最后只能手动补录——那个流程瞬间从“自动化”退化成“半自动人工兜底”。这正是纯低代码 RPA 的典型瓶颈图形化封装太深逻辑黑匣子太重一旦超出预设能力边界修改成本陡增。而 Python 与影刀 RPA 的结合不是简单地把 Python 脚本塞进“执行命令行”组件里跑一下完事而是通过影刀官方提供的Python SDKyingdao-sdk让 Python 成为影刀流程的“内嵌引擎”你可以在影刀节点中直接调用本地 Python 函数传入影刀变量接收结构化返回值也可以让 Python 主动拉取影刀任务状态、触发下游流程、写回数据库——双向打通流程不再割裂。它适合两类人一是熟悉 Python 数据处理/OCR/NLP 但被影刀组件限制住的业务开发者二是影刀流程已上线、急需快速增强逻辑能力而不愿重构整条链路的运维工程师。这不是炫技是解决真实交付中“最后一公里”逻辑卡点的务实路径。2. 用yingdao-sdk在本地跑通第一个双向调用从影刀调 Python再从 Python 触发影刀任务影刀官方 SDK 是整个结合方案的基石。它不是第三方非标封装而是影刀团队维护的、与平台 API 深度对齐的 Python 客户端。它的核心价值在于两点第一流程内嵌——你写的函数能被影刀节点直接调用参数和返回值自动序列化/反序列化第二反向控制——Python 脚本可以像一个“外部协作者”一样查询任务、提交数据、触发新流程实现跨系统调度。下面分两步实操先让影刀调用你的本地函数正向再让这个函数反过来调用影刀 API反向形成闭环。2.1 安装 SDK 并配置认证密钥别跳过这一步否则后续全报 401影刀 SDK 不在 PyPI 默认源需指定官方源安装。同时认证依赖「应用密钥」而非账号密码这是安全设计的关键pip install -i https://pypi.yingdao.com/simple/ yingdao-sdk提示-i参数必须显式指定影刀私有源否则 pip 会超时或安装失败版本。安装后验证python -c import yingdao; print(yingdao.__version__)正常应输出1.3.0或更高截至 2024 年中最新稳定版。认证密钥需在影刀工作台【设置 → 开发者中心 → 应用管理】中创建。注意选择「内部应用」类型并勾选「流程执行」和「数据读写」权限。生成后密钥仅显示一次务必立即保存。将密钥存为环境变量推荐避免硬编码export YINGDAO_APP_IDapp_xxx123 export YINGDAO_APP_SECRETsec_xxx456 export YINGDAO_BASE_URLhttps://api.yingdao.com # 生产环境地址勿用测试域名2.2 编写可被影刀直接调用的 Python 函数带类型注解、异常捕获、日志埋点影刀调用 Python 函数时会将 JSON 格式的输入自动解包为函数参数。因此函数签名必须清晰且需处理影刀传入的None、空字符串等边界值。以下是一个生产级示例PDF 文字提取函数它接收文件路径和 OCR 开关返回结构化结果# pdf_extractor.py import os import json from typing import Dict, List, Optional import logging from yingdao import YingDaoClient # 配置日志影刀会捕获 stdout/stderr但结构化日志更易排查 logging.basicConfig(levellogging.INFO, format%(asctime)s - %(levelname)s - %(message)s) logger logging.getLogger(__name__) def extract_pdf_text(file_path: str, use_ocr: bool False) - Dict: 从 PDF 文件中提取文本内容支持 OCR :param file_path: 影刀传入的绝对路径如 /data/task_abc123/contract.pdf :param use_ocr: 是否启用 OCR默认 False纯文本 PDF :return: 包含 status、text、page_count、error 的字典 logger.info(f开始处理 PDF: {file_path}, OCR{use_ocr}) # 1. 基础校验路径存在、是文件、后缀合法 if not isinstance(file_path, str) or not file_path.strip(): return {status: error, error: file_path 不能为空字符串} if not os.path.exists(file_path): return {status: error, error: f文件不存在: {file_path}} if not file_path.lower().endswith(.pdf): return {status: error, error: 仅支持 .pdf 文件} try: # 2. 纯文本提取使用 PyMuPDF轻量无依赖 import fitz # pip install PyMuPDF doc fitz.open(file_path) text_parts [] for page in doc: text_parts.append(page.get_text()) full_text \n\n.join(text_parts) doc.close() # 3. OCR 分支仅当 use_ocrTrue 且检测到图片页时才触发 if use_ocr and len(text_parts) 0: # 纯图 PDF logger.warning(检测到纯图 PDF启用 OCR...) # 此处调用你已部署的 OCR 服务如 PaddleOCR 本地模型 # 示例full_text call_local_ocr_service(file_path) full_text [OCR_RESULT_PLACEHOLDER] logger.info(fPDF 提取完成共 {len(text_parts)} 页文本长度 {len(full_text)} 字符) return { status: success, text: full_text[:5000], # 影刀变量有长度限制截断防溢出 page_count: len(text_parts), extracted_at: 2024-06-15T10:30:00Z # 可替换为 datetime.now().isoformat() } except Exception as e: logger.error(fPDF 提取失败: {str(e)}, exc_infoTrue) return {status: error, error: f处理异常: {str(e)}}逻辑说明函数名extract_pdf_text将作为影刀“Python 函数调用”节点的入口名参数file_path和use_ocr会由影刀自动映射影刀变量名需与参数名一致返回字典的 keystatus,text将成为影刀后续节点可直接引用的变量logging输出会被影刀任务日志完整捕获比print()更可靠截断text到 5000 字符是硬性避坑点影刀变量存储上限为 10KB超长文本需分段或存对象存储。2.3 在影刀流程中调用该函数配置路径、传参、解析返回值登录影刀工作台新建流程 → 添加「Python 函数调用」组件 → 点击「配置」Python 脚本路径填写服务器上pdf_extractor.py的绝对路径例如/opt/robot/scripts/pdf_extractor.py函数名填extract_pdf_text参数映射左侧影刀变量如input_file_path、need_ocr拖拽到右侧对应参数框返回值映射勾选「自动映射返回字典」影刀会将返回字典的每个 key 创建为同名变量如status,text注意影刀执行 Python 的环境是独立沙箱pdf_extractor.py及其依赖如fitz必须提前安装在影刀机器人所在服务器不能只在你本地装。常见翻车点影刀机器人用的是 CentOS 7而fitz需要libglib-2.0.so.0需yum install glib2补依赖。3. 让 Python 主动驱动影刀用 SDK 查询任务、提交数据、触发新流程上一节实现了“影刀调 Python”这一节升级为“Python 调影刀”让 Python 脚本成为流程的调度中枢。典型场景某业务系统每天 8:00 推送一批待审订单到 MySQL你需要一个定时脚本检查新订单对每条记录调用影刀的「合同审核」流程并将影刀返回的审核结果写回数据库。这要求 Python 具备三类能力查获取新数据、调触发影刀流程、写回传结果。yingdao-sdk全部支持。3.1 初始化客户端并验证连接用ping()快速确认密钥有效SDK 初始化必须传入app_id和app_secret且建议显式设置timeout防止网络波动阻塞# scheduler.py from yingdao import YingDaoClient import os # 从环境变量读取密钥与 2.1 节一致 client YingDaoClient( app_idos.getenv(YINGDAO_APP_ID), app_secretos.getenv(YINGDAO_APP_SECRET), base_urlos.getenv(YINGDAO_BASE_URL, https://api.yingdao.com), timeout30 # 单次请求超时 30 秒 ) # 第一步ping 测试连接 try: resp client.ping() print(f✅ 影刀 API 连接成功服务时间戳: {resp[server_time]}) except Exception as e: print(f❌ 连接失败: {e}) exit(1)参数说明base_url必须与影刀工作台 URL 一致如https://yourcompany.yingdao.com不可省略timeout设为 30 是经验值影刀 API 大部分接口响应在 1~5 秒但流程触发可能因队列等待达 10 秒以上ping()是最轻量的健康检查不消耗配额适合放入监控脚本。3.2 查询未处理订单并批量触发影刀流程用create_task()提交结构化数据假设 MySQL 中有一张orders表字段为id,customer_name,contract_pdf_url,created_at。我们需要找出statuspending的记录为每条生成一个影刀任务import pymysql from yingdao import YingDaoClient # 1. 连接 MySQL此处用 pymysql你可用 SQLAlchemy db pymysql.connect( host192.168.1.100, userrobot_user, passwordxxx, databasebiz_db ) cursor db.cursor(pymysql.cursors.DictCursor) # 2. 查询待处理订单 cursor.execute(SELECT id, customer_name, contract_pdf_url FROM orders WHERE status pending LIMIT 10) orders cursor.fetchall() # 3. 为每个订单触发影刀「合同审核」流程流程 ID 从影刀工作台复制 flow_id flow_contract_review_789 # 在影刀流程详情页 URL 中获取形如 .../flow/flow_contract_review_789 results [] for order in orders: try: # 构造影刀流程所需输入数据key 必须与流程定义的输入变量名完全一致 input_data { order_id: str(order[id]), customer: order[customer_name], pdf_url: order[contract_pdf_url] } # 调用 create_task 提交任务 task_resp client.create_task( flow_idflow_id, input_datainput_data, callback_urlhttps://your-webhook.com/yingdao-callback, # 可选任务完成时推送结果 timeout600 # 流程最长等待 10 分钟影刀默认超时 5 分钟此参数可覆盖 ) results.append({ order_id: order[id], task_id: task_resp[task_id], status: submitted, submit_time: task_resp[created_at] }) print(f✅ 已提交订单 {order[id]} 至影刀任务ID: {task_resp[task_id]}) except Exception as e: print(f❌ 订单 {order[id]} 提交失败: {e}) results.append({ order_id: order[id], status: failed, error: str(e) }) # 4. 批量更新数据库状态伪代码实际需事务 for r in results: if r[status] submitted: cursor.execute( UPDATE orders SET statusprocessing, yingdao_task_id%s WHERE id%s, (r[task_id], r[order_id]) ) db.commit()关键参数解析flow_id必须与影刀流程 ID 严格匹配大小写敏感input_data字典的 key 是影刀流程中定义的「输入变量」名称不是 Python 变量名callback_url若设置影刀会在任务完成无论成功/失败时向该地址 POST 结果避免轮询timeout此处设为 600 秒表示 Python 客户端最多等待 10 分钟获取结果若流程本身超时如卡在人工环节SDK 会抛出TaskTimeoutError异常。3.3 监控任务状态并写回结果用get_task_detail()获取结构化输出上一步提交任务后影刀会异步执行。你需要主动轮询或监听 webhook 获取结果。以下是轮询模式适合简单场景import time from yingdao.exceptions import TaskNotFoundError, TaskTimeoutError def wait_for_task_completion(client: YingDaoClient, task_id: str, max_wait: int 600) - dict: 轮询等待任务完成返回最终结果 start_time time.time() while time.time() - start_time max_wait: try: detail client.get_task_detail(task_idtask_id) if detail[status] in [success, failed, cancelled]: return detail # 返回完整任务详情含 output_data except TaskNotFoundError: print(f任务 {task_id} 未找到可能已被清理) break except Exception as e: print(f查询任务 {task_id} 状态异常: {e}) time.sleep(5) # 每 5 秒查一次避免高频请求 raise TaskTimeoutError(f任务 {task_id} 超时未完成已等待 {max_wait} 秒) # 使用示例 for r in results: if r[status] submitted: try: final wait_for_task_completion(client, r[task_id]) # final[output_data] 即影刀流程最后节点的输出字典 if final[status] success: output final[output_data] # 更新数据库审核结果、通过率、建议等 cursor.execute( UPDATE orders SET statusreviewed, review_result%s, score%s WHERE id%s, (output.get(result), output.get(score), r[order_id]) ) print(f✅ 订单 {r[order_id]} 审核完成: {output.get(result)}) except TaskTimeoutError as e: print(f⚠️ 订单 {r[order_id]} 审核超时需人工介入) cursor.execute( UPDATE orders SET statustimeout WHERE id%s, (r[order_id],) ) db.commit()为什么不用get_task_listget_task_list仅返回任务摘要ID、状态、时间不包含output_data。要获取流程执行结果必须调用get_task_detail(task_id)。这是新手最常踩的坑——以为列表接口能拿结果实际要二次查询。4. 避坑Python 与影刀结合的 4 个血泪经验第 3 条让 70% 的人重启服务器影刀与 Python 的结合看似平滑但底层涉及进程隔离、JSON 序列化、网络超时、权限校验四层耦合。以下是在多个模拟项目 X 中反复验证的 4 个高发问题按发生频率排序4.1 现象影刀节点报错 “ModuleNotFoundError: No module named xxx”但你在服务器上pip list明明装了原因影刀机器人运行在独立的 Python 环境通常是venv或容器与你 SSH 登录的用户环境完全隔离。pip install默认装到用户 site-packages而影刀机器人用的是自己的PYTHONPATH。解决方案 A推荐用影刀机器人账户执行安装sudo -u robot-user /opt/robot/python/bin/pip install PyMuPDF # 路径以你服务器实际为准方案 B在影刀「Python 函数调用」组件中勾选「使用系统 Python」需管理员开启但会失去环境隔离性。4.2 现象Python 函数返回中文影刀变量里显示乱码如\u5408\u540c或空值原因影刀 SDK 内部使用json.dumps()序列化返回值而默认ensure_asciiTrue会将中文转义为 Unicode。影刀前端解析时未正确还原。解决在函数返回前手动用json.dumps(..., ensure_asciiFalse)编码再返回字符串return json.dumps({ status: success, text: 合同编号HT2024001 }, ensure_asciiFalse)注意此时函数返回类型是str而非dict影刀会将其作为纯文本接收需在后续节点用「JSON 解析」组件处理。4.3 现象create_task()报错403 Forbidden但ping()正常密钥也确认无误原因影刀应用密钥的权限范围未覆盖目标流程。即使你创建了应用也必须在「应用管理 → 授权管理」中手动为该应用添加对「合同审核」流程的「执行」权限。这个操作不会自动继承且界面藏得深需点击流程卡片右上角「…」→「授权给应用」。解决进入影刀工作台 → 【开发者中心 → 应用管理】→ 找到你的应用 → 点击「授权管理」→ 搜索目标流程 → 勾选「执行」→ 保存。这是导致 70% 新手卡住的玄学问题务必检查。4.4 现象Python 脚本调用get_task_detail()返回output_data为空字典{}但影刀后台日志显示流程成功原因影刀流程的「输出变量」未正确定义。很多用户以为流程最后一个组件的输出就是全局输出其实必须在流程画布顶部的「流程设置 → 输出变量」中显式添加变量名如review_result、score并绑定到具体组件的输出字段。解决打开影刀流程编辑页 → 点击左上角「流程设置」→ 「输出变量」→ 「 添加输出变量」→ 输入变量名如final_result→ 在「来源」下拉框中选择对应组件如「JSON 解析」节点→ 在「字段」中选择result。只有这样output_data才会有值。5. 进阶技巧用装饰器统一处理影刀调用的重试、日志、错误映射让 10 个函数共享同一套健壮性当你的项目中 Python 函数超过 5 个重复写try/except、logging、重试逻辑会迅速失控。我一般会用一个自定义装饰器yingdao_safe_call统一封装它解决三个核心问题网络抖动自动重试、业务异常转影刀友好错误、所有调用统一打点。下面给出可直接复用的代码和落地说明。5.1 编写yingdao_safe_call装饰器专注业务不碰基础设施# decorators.py import functools import time import logging from typing import Any, Callable, Dict, Optional from yingdao.exceptions import YingDaoAPIError logger logging.getLogger(__name__) def yingdao_safe_call( max_retries: int 3, backoff_factor: float 1.0, error_map: Optional[Dict[type, str]] None ) - Callable: 影刀 Python 函数安全调用装饰器 :param max_retries: 最大重试次数默认 3 :param backoff_factor: 退避因子第 n 次重试等待 n*backoff_factor 秒 :param error_map: 异常类型到影刀错误消息的映射如 {ValueError: 参数格式错误} if error_map is None: error_map {} def decorator(func: Callable) - Callable: functools.wraps(func) def wrapper(*args, **kwargs) - Dict[str, Any]: last_exception None for attempt in range(max_retries 1): try: # 记录开始 func_name func.__name__ logger.info(f[{func_name}] 开始执行参数: {kwargs}) # 执行原函数 result func(*args, **kwargs) # 校验返回值必须是 dict if not isinstance(result, dict): raise TypeError(f函数 {func_name} 必须返回 dict当前类型: {type(result)}) # 成功时强制添加元数据 result.setdefault(status, success) result.setdefault(executed_at, time.strftime(%Y-%m-%dT%H:%M:%SZ)) logger.info(f[{func_name}] 执行成功: {result.get(status)}) return result except tuple(error_map.keys()) as e: # 业务异常直接映射为影刀错误 error_msg error_map[type(e)] logger.error(f[{func_name}] 业务异常: {e} - {error_msg}) return {status: error, error: error_msg} except YingDaoAPIError as e: # 影刀 API 异常记录但不重试一般是密钥或权限问题 logger.error(f[{func_name}] 影刀 API 错误: {e}) return {status: error, error: f影刀服务异常: {str(e)}} except Exception as e: last_exception e logger.error(f[{func_name}] 未知异常 (尝试 {attempt1}/{max_retries1}): {e}) # 非最后一次等待后重试 if attempt max_retries: sleep_time (attempt 1) * backoff_factor logger.info(f[{func_name}] 等待 {sleep_time} 秒后重试...) time.sleep(sleep_time) else: # 最后一次失败转为影刀错误 return {status: error, error: f执行失败: {str(e)}} # 理论上不会走到这里但保险起见 return {status: error, error: f重试 {max_retries} 次后仍失败: {str(last_exception)}} return wrapper return decorator5.2 在业务函数中应用装饰器3 行代码获得企业级健壮性将之前的extract_pdf_text函数用装饰器包裹只需改 3 行# pdf_extractor.py更新版 from decorators import yingdao_safe_call yingdao_safe_call( max_retries2, backoff_factor0.5, error_map{ FileNotFoundError: PDF 文件路径无效请检查文件是否存在, ValueError: PDF 文件损坏无法解析 } ) def extract_pdf_text(file_path: str, use_ocr: bool False) - Dict: # 原函数体完全不变删掉所有 try/except 和 logging # ...此处省略原函数内部代码保持与 2.2 节一致 return { status: success, text: full_text[:5000], page_count: len(text_parts), extracted_at: 2024-06-15T10:30:00Z }效果对比未装饰前每个函数需 15 行样板代码处理异常、日志、重试装饰后业务逻辑纯净错误映射清晰重试策略集中管控影刀侧体验所有函数返回结构统一必有status和error前端判断逻辑可复用运维价值所有调用日志自动打上[func_name]前缀ELK 中可一键聚合分析。5.3 用loggingstructlog实现影刀任务级全链路追踪可选高阶如果你的流程需要审计或排查复杂问题建议在装饰器中集成structlog将影刀任务 ID 注入日志上下文。影刀在调用 Python 时会通过环境变量YINGDAO_TASK_ID透传当前任务 ID。修改装饰器中的wrapper函数开头# 在 wrapper 函数内try 块之前添加 task_id os.getenv(YINGDAO_TASK_ID, unknown) structlog.contextvars.bind_contextvars(task_idtask_id)这样每条日志都会自动带上task_id: task_abc123字段与影刀后台日志完全对齐排查时再也不用在两个系统间来回跳。我坚持在所有影刀 Python 集成项目中使用这套装饰器它让我少写了 200 行重复代码更重要的是当客户凌晨三点打电话说“流程卡住了”我能直接在日志平台搜task_id5 秒定位到是哪个函数、哪行报错、重试了几次——这种确定性是低代码 RPA 无法给你的底气。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

Qt TCP服务端客户端实战:多客户端、断线重连与字节解析

Qt TCP服务端客户端实战:多客户端、断线重连与字节解析

简介:这份资源面向具备一定 Qt 基础的开发者,聚焦 TCP 网络编程中的多客户端并发、断线重连与自定义协议解析等实战难点,适合需要搭建稳定通信框架或完成课程设计、上位机项目的读者参考。压缩包共 16 个文件,约 15KB,…

2026/10/18 15:19:01 阅读更多 →
抖音用户主页视频数据爬虫详解:点赞、收藏、分享字段的抓取与落库(TaoToken 统一 Key 通道)

抖音用户主页视频数据爬虫详解:点赞、收藏、分享字段的抓取与落库(TaoToken 统一 Key 通道)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 15:19:01 阅读更多 →
C#调用C++结构体:跨语言内存布局对齐实战指南

C#调用C++结构体:跨语言内存布局对齐实战指南

简介:本资源是一套完整的C#调用C结构体混合编程实战项目,面向Windows平台下需兼顾性能与开发效率的中高级.NET开发者,解决跨语言数据结构互通、内存安全传递与DLL互操作等核心难题。压缩包共57个文件,包含3个C源文件(.…

2026/10/18 15:19:00 阅读更多 →

最新新闻

从 APK/PCK 恢复完整 Godot 项目:gdsdecomp 上手与实战指南

从 APK/PCK 恢复完整 Godot 项目:gdsdecomp 上手与实战指南

从 APK/PCK 恢复完整 Godot 项目:gdsdecomp 上手与实战指南 【免费下载链接】gdsdecomp Godot reverse engineering tools 项目地址: https://gitcode.com/GitHub_Trending/gd/gdsdecomp gdsdecomp(Godot RE Tools)是一个面向 Godot 引…

2026/10/18 16:15:27 阅读更多 →
Convert to it PriorityQueue 拆解

Convert to it PriorityQueue 拆解

Convert to it PriorityQueue 拆解 【免费下载链接】convert Truly universal online file converter 项目地址: https://gitcode.com/GitHub_Trending/convert7/convert Convert to it 敢承诺"任何格式转任何格式",底气来自在格式图上做路径搜索。…

2026/10/18 16:15:27 阅读更多 →
Teamcenter管理员运维地图:备份、日志、权限与升级实战

Teamcenter管理员运维地图:备份、日志、权限与升级实战

简介:这份西门子Teamcenter管理员操作手册,面向TC系统管理员及PLM项目实施人员,系统梳理Teamcenter 11/12/13环境下的配置、管理与维护方法。手册从管理员职责切入,重点展开服务器端操作:业务建模器的模板项目创建与部…

2026/10/18 16:15:27 阅读更多 →
Pandas DataFrame排序与排名:sort_values和rank的实战区别与用法

Pandas DataFrame排序与排名:sort_values和rank的实战区别与用法

在数据分析里,排序和排名几乎是每天都要碰的操作,但很多人用着用着就混了。DataFrame的sort_values和rank,看名字都带“排”,实际干的活完全不同:一个是把整张表重新摆顺序,另一个是给每个数据打分定名次。…

2026/10/18 16:15:27 阅读更多 →
MCP异步处理破解AI读取千万级Excel超时难题

MCP异步处理破解AI读取千万级Excel超时难题

遇到一个千万级的 Excel,直接丢给 AI 分析,大概率是等到天荒地老之后,换来一句冷冰冰的“读取超时”。这个坑我踩过不止一次。后来我把方案换成了基于 MCP 的异步处理,把“一次性读完整张表”改成“提交任务、轮询进度、分批拿结果…

2026/10/18 16:15:27 阅读更多 →
医疗知识图谱问答系统开发实战:数据清洗、Neo4j入库与Flask部署

医疗知识图谱问答系统开发实战:数据清洗、Neo4j入库与Flask部署

简介:一套基于Python的医疗知识图谱知识问答系统课程设计资源包,适合知识图谱与问答方向的初学者,帮助理解医疗实体关系建模、规则式对话流程及问句查询解析。压缩包共58个文件,约20MB,核心内容涵盖设计报告、源代码、…

2026/10/18 16:14:26 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →