影刀RPA 大模型辅助代码生成:用AI帮你写Python节点

作者:林焱


什么情况用

在影刀里写Python节点的时候,你有没有过这种时刻:

在这里插入图片描述

  • 知道要做数据清洗,但pandas的语法写了又删,删了又写
  • 正则表达式调了半小时还匹配不上想要的内容
  • 想调一个第三方API,官方文档全是英文,看两页就放弃了
  • 在StackOverflow和CSDN之间反复横跳,最后拼出一个自己都不太确定的方案

这种情况下,让大模型帮你写代码,效率能翻10倍。但问题在于——随便丢一句「帮我写个爬虫」出来的代码,大概率跑不起来。你需要知道怎么提问,怎么验证,怎么迭代。

核心场景:用大模型辅助写影刀Python节点代码,加速开发。


怎么做

第一步:学会写高质量的Prompt

在这里插入图片描述

大模型不是读心术。你给的信息越精确,出来的代码越能用。

差的Prompt → 得到的代码基本没用:

「帮我写一个影刀的Python节点,处理数据」

好的Prompt → 大概率一次跑通:

「在影刀RPA的Python节点中,我需要处理一个CSV文件。文件有3列:日期、销售额、商品名。请帮我写代码:1)读取CSV 2)按商品名汇总销售额 3)找出销售额最高的Top5商品 4)输出到新的CSV。注意影刀的Python节点需要用print输出结果,文件路径用变量file_path」

拼多多店群自动化报活动上架!

在这里插入图片描述

Prompt模板——影刀Python节点专用

角色:你是Python自动化专家
背景:我在影刀RPA中使用Python节点,数据从影刀的上游节点通过变量传入
输入:{描述变量名和数据类型}
需求:{分步骤描述要做什么}
输出:输出结果需要用print()输出,以便影刀后续节点使用
限制:{特殊限制,比如只能用标准库、不要大于100行}

第二步:实战——让AI生成正则表达式

正则是最适合让AI写的代码——你自己写可能要调半天,AI几秒搞定。

你和AI的对话示例

你:
在这里插入图片描述

我需要一个正则表达式,从一段文本中提取所有的手机号码。手机号规则:1开头,第二位是3-9,总共11位数字。请用Python的re模块实现,给我一个函数。

AI输出:

import re

def extract_phone_numbers(text):
    """
    从文本中提取中国大陆手机号码
    规则:1开头 + [3-9] + 9位数字
    """
    pattern = r'1[3-9]\d{9}'
    matches = re.findall(pattern, text)
    # 去重
    return list(set(matches))

# 测试
sample = "联系人:张三 13812345678,备用电话:15987654321,微信号同手机号"
phones = extract_phone_numbers(sample)
print(phones)  # ['13812345678', '15987654321']

但是——大模型不会告诉你的是:这个正则有个坑。如果文本里有身份证号(18位数字)或订单号(包含手机号格式的数字),会被误提取。

你应该追一步

「如果文本里有18位数字,比如身份证号’138123199001011234’,会不会把前11位误识别为手机号?」

AI会补充boundary限制:
在这里插入图片描述

# 加单词边界,避免从长数字中截取
pattern = r'\b1[3-9]\d{9}\b'

这就是和大模型协作的正确方式——不是你发一句它回一句就完事,而是你来我往地追问和验证。

第三步:让AI生成pandas数据处理代码

数据处理是最常见的Python节点需求。给AI一个数据样例,让它精确理解你的数据结构。

我有这样一个DataFrame:

data = [
    {"日期": "2024-01-15", "城市": "北京", "销售额": 15000, "订单数": 23},
    {"日期": "2024-01-15", "城市": "上海", "销售额": 18000, "订单数": 30},
    {"日期": "2024-01-16", "城市": "北京", "销售额": 12000, "订单数": 18},
    {"日期": "2024-01-16", "城市": "上海", "销售额": 20000, "订单数": 35},
    ...
]

请帮我写代码实现:
1. 按城市汇总总销售额和平均订单数
2. 添加一列"客单价" = 销售额/订单数
3. 按日期排序,计算每日销售额环比增长率
4. 最终结果输出为Excel文件

这个Prompt给了真实的数据结构,AI生成的代码几乎可以直接用,不需要你再去改字段名。

第四步:让AI帮你调试报错

在这里插入图片描述

代码跑崩了,把报错信息直接丢给AI。

我的代码报错了,这是代码:

def calculate_growth(df):
    df['增长率'] = df['销售额'].pct_change()
    return df

apply到分组后的DataFrame时报错:
AttributeError: 'DataFrameGroupBy' object has no attribute 'pct_change'

怎么改?

AI会告诉你应该用 transform 而不是直接调用:

df['增长率'] = df.groupby('城市')['销售额'].transform('pct_change')

这比自己搜StackOverflow快多了,因为AI能同时看到你的代码和报错。

第五步:模板化——积累你的Prompt库

在这里插入图片描述

频繁用AI写代码后,你会发现很多场景是重复的。把好用的Prompt存下来。

# ===== Prompt模板库(不断积累) =====

PROMPTS = {
    "csv_to_excel": """
读取{input_file}(CSV格式,编码utf-8),做以下处理:
1. 删除所有空行
2. 日期列转为datetime格式
3. 金额列保留2位小数
4. 输出到{output_file}(Excel格式)
用pandas实现,异常情况要捕获并打印错误信息。
""",
    
    "api_call_with_retry": """
调用API:{api_url},方法:{method},参数:{params}
要求:
1. 超时时间30秒
2. 失败重试3次,每次间隔递增(1秒、2秒、4秒)
3. 返回JSON格式结果
4. 非200状态码要打印具体错误
""",
    
    "batch_rename_files": """
遍历{folder_path}目录下的所有文件,按规则重命名:
规则:{rename_rule}
要求:先打印预览(会改成什么名),确认无误后再执行
用os和shutil模块实现
"""
}

有什么坑

坑1:AI生成的代码总喜欢用你没装的库

TEMU店群矩阵自动化运营核价报活动

在这里插入图片描述

让AI写一个图片处理,它可能用Pillow、OpenCV、scikit-image三个库,但你的Python环境一个都没装。

解决方法:Prompt里明确限制——「只用Python标准库」或「使用已安装的库:requests, pandas, openpyxl」。

坑2:API参数是编的,得验证

大模型有时候会「编造」API参数。比如它可能以为百度OCR的参数叫 image_url,实际文档里叫 url

踩坑实录:让AI写调用微信公众号API的代码,它编了一个 create_article 接口出来,微信API里根本没有这个接口名。正确的叫 add_draft

解决方法:涉及API调用的代码,生成后一定要对照官方文档验证接口名和参数名。

在这里插入图片描述

坑3:Python版本差异

AI默认用的是较新的Python语法(比如3.8+的 := 海象运算符、3.10+的 match-case),但你的影刀环境可能是Python 3.7。

解决方法:Prompt里指定Python版本:「请使用Python 3.7兼容的语法」。

坑4:影刀Python节点的内存限制

影刀的Python节点运行在一个受限的环境中。AI生成的代码如果处理几十万行数据、创建了几百MB的中间变量,可能直接导致节点超时或内存溢出。

解决方法:告诉AI数据规模——「数据量约10000行,请使用分块处理」或「注意内存使用,避免一次性加载全部数据」。

在这里插入图片描述

坑5:AI不理解影刀的变量传递机制

影刀的变量通过全局变量传入Python节点,AI不知道这一点,可能写成从命令行参数读取、从环境变量读取。

解决方法:Prompt里说明:「数据通过影刀变量传入,在代码中直接使用变量名即可。结果通过print()输出」。


总结:大模型是RPA开发者的加速器,不是替代品。核心能力在于:写出精确的Prompt、验证生成代码的正确性、追问边界条件、积累模板。把AI当成一个随叫随到的「实习生」——活干得很快,但需要你检查工作质量。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐