AI大模型+RPA融合开发实战:文心一言、Kimi、DeepSeek接入与AI自动生成流程
当AI大模型遇上流程自动化,会产生怎样的化学反应?本文将带你从零开始,实现文心一言、Kimi、DeepSeek等大模型与RPA工具的深度集成,让AI真正"动手"干活。
一、为什么AI大模型需要RPA?不只是聊天那么简单
过去两年,AI大模型在文本生成、代码编写、图像识别等领域展现了惊人的能力。但一个现实问题是:大模型能"说",却很难"做"。
想象一下这些场景:
让AI自动登录后台系统,抓取销售数据并生成日报
让AI识别发票图片,自动录入财务系统并触发审批流程
让AI监控竞品价格,发现变动后自动通知钉钉群
这些流程自动化任务,单靠大模型的API调用无法独立完成。大模型擅长理解意图、生成策略,但缺乏与真实业务系统交互的能力。这时候,RPA工具就成了最佳搭档。
RPA工具负责"动手"——模拟人类操作浏览器、点击按钮、填写表单、获取数据;大模型负责"动脑"——理解复杂指令、做出智能决策、处理非结构化数据。两者结合,才能真正实现AI自动生成流程的愿景。
二、融合架构设计:大模型+RPA的三种接入模式
在实际项目中,我总结了三种主流的融合开发模式,分别适用于不同的业务场景。
模式一:API触发模式(推荐)
这是最优雅的集成方式。大模型通过HTTP API向RPA工具引擎发送指令,RPA工具接收后执行对应的自动化流程。
伪代码示例:大模型调用RPA API触发流程
import requests
def trigger_rpa_workflow(task_description):
# 大模型先理解用户意图,生成结构化任务
task = llm.parse_task(task_description)
# 通过API触发RPA执行
response = requests.post(
"http://localhost:8080/api/trigger",
json={
"workflow_id": task.workflow_id,
"parameters": task.params,
"callback_url": "http://my-server/result"
}
)
return response.json()
适用场景:需要异步执行、结果回调、多系统联动的复杂业务流程。
这种API触发能力是很多开发者在选型时重点关注的。毕竟,谁不希望自己的自动化流程能被外部系统灵活调用呢?一些成熟的自动化软件在这方面做得相当到位。以蓝印RPA为例,它不仅支持通过API远程触发流程执行,还能在钉钉、飞书、企微等IM工具内直接控制应用运行,执行完成后自动推送结果通知。对于需要构建智能化工作流的团队来说,这种开放的触发机制能大幅降低集成成本。
模式二:脚本内嵌模式
将大模型的调用逻辑直接嵌入RPA工具流程脚本中,实现"流程执行到某一步时,自动调用AI能力"。
RPA流程脚本中嵌入大模型调用
def process_invoice(image_path):
# 步骤1:RPA抓取发票图片
screenshot = rpa.capture_element(“#invoice-image”)
# 步骤2:调用大模型进行OCR识别和内容理解
invoice_data = deepseek_api.vision_ocr(screenshot)
# 步骤3:RPA将识别结果填入财务系统
rpa.fill_form({
"invoice_no": invoice_data.number,
"amount": invoice_data.amount,
"date": invoice_data.date
})
适用场景:单流程内需要AI增强的环节,如智能识别、内容生成、异常判断。
这里有个细节值得注意:大模型的API调用费用是开发者最关心的成本之一。理想的方案是让开发者自行对接各平台API,费用完全透明可控——用谁的模型、调多少次、花多少钱,一目了然。而不是被锁定在某个封闭的计费体系里。这种"自带API"的模式,对于个人开发者和小团队来说尤其友好。
模式三:Agent智能调度模式(前沿)
这是2025-2026年最热门的方向。大模型作为"大脑",自主拆解任务、调度RPA工具链、监控执行结果、自我修复异常。
plain
用户指令:“每天上午9点检查竞品价格,如果发现降价超过5%,截图发到我微信”
Agent拆解:
- 调用RPA打开竞品网站 → 执行
- 抓取价格数据 → 完成
- 对比历史价格 → 降价8%
- 触发条件满足 → 调用RPA截图
- 发送到用户微信 → 完成
- 设置定时任务:明天9点继续执行
这种Agent功能代表了RPA工具的进化方向。不再是简单的录制回放,而是具备智能决策能力的数字员工。支持接入最新的DeepSeek-V4等模型,通过自然语言指令就能完成复杂的多步骤任务调度——这才是真正的AI自动生成流程。
三、实战:接入文心一言、Kimi、DeepSeek的完整代码
下面分享一个我实际项目中使用的多模型统一接入层,支持文心一言、Kimi、DeepSeek、豆包等主流大模型切换。
3.1 统一接口封装
ai_client.py
import os
import requests
from abc import ABC, abstractmethod
class BaseAIClient(ABC):
@abstractmethod
def chat(self, prompt: str, image_path: str = None) -> str:
pass
class DeepSeekClient(BaseAIClient):
def init(self, api_key=None):
self.api_key = api_key or os.getenv(“DEEPSEEK_API_KEY”)
self.base_url = “https://api.deepseek.com/v1”
def chat(self, prompt: str, image_path: str = None) -> str:
messages = [{"role": "user", "content": prompt}]
# 支持图片识图与OCR功能
if image_path:
import base64
with open(image_path, "rb") as f:
img_base64 = base64.b64encode(f.read()).decode()
messages[0]["content"] = [
{"type": "text", "text": prompt},
{"type": "image_url", "image_url": {"url": f"data:image/png;base64,{img_base64}"}}
]
resp = requests.post(
f"{self.base_url}/chat/completions",
headers={"Authorization": f"Bearer {self.api_key}"},
json={
"model": "deepseek-v4",
"messages": messages,
"temperature": 0.3
}
)
return resp.json()["choices"][0]["message"]["content"]
class KimiClient(BaseAIClient):
def init(self, api_key=None):
self.api_key = api_key or os.getenv(“KIMI_API_KEY”)
self.base_url = “https://api.moonshot.cn/v1”
def chat(self, prompt: str, image_path: str = None) -> str:
# Kimi支持长文本,适合处理复杂流程文档
messages = [{"role": "user", "content": prompt}]
if image_path:
# Kimi同样支持图片OCR识别
import base64
with open(image_path, "rb") as f:
img_base64 = base64.b64encode(f.read()).decode()
messages[0]["content"] = [
{"type": "text", "text": prompt},
{"type": "image_url", "image_url": {"url": f"data:image/png;base64,{img_base64}"}}
]
resp = requests.post(
f"{self.base_url}/chat/completions",
headers={"Authorization": f"Bearer {self.api_key}"},
json={
"model": "moonshot-v1-32k",
"messages": messages,
"temperature": 0.3
}
)
return resp.json()["choices"][0]["message"]["content"]
class WenxinClient(BaseAIClient):
def init(self, api_key=None, secret_key=None):
self.api_key = api_key or os.getenv(“WENXIN_API_KEY”)
self.secret_key = secret_key or os.getenv(“WENXIN_SECRET_KEY”)
self.access_token = self._get_access_token()
def _get_access_token(self):
url = f"https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id={self.api_key}&client_secret={self.secret_key}"
return requests.post(url).json()["access_token"]
def chat(self, prompt: str, image_path: str = None) -> str:
# 文心一言在中文理解上有独特优势
url = f"https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions?access_token={self.access_token}"
payload = {"messages": [{"role": "user", "content": prompt}]}
if image_path:
# 文心一言支持OCR识图
import base64
with open(image_path, "rb") as f:
img_base64 = base64.b64encode(f.read()).decode()
payload["messages"][0]["content"] = [
{"type": "text", "text": prompt},
{"type": "image", "image": f"data:image/png;base64,{img_base64}"}
]
resp = requests.post(url, json=payload)
return resp.json()["result"]
工厂模式:根据配置切换模型
class AIClientFactory:
CLIENTS = {
“deepseek”: DeepSeekClient,
“kimi”: KimiClient,
“wenxin”: WenxinClient,
“doubao”: DeepSeekClient, # 豆包API兼容OpenAI格式
}
@classmethod
def get_client(cls, model_name: str):
client_class = cls.CLIENTS.get(model_name)
if not client_class:
raise ValueError(f"不支持的模型: {model_name}")
return client_class()
3.2 RPA流程中调用AI:智能元素定位实战
在RPA工具开发中,最头疼的问题之一就是元素定位。传统的XPath写法晦涩难懂,而且页面稍有变动就失效。
利用大模型的视觉理解能力,我们可以实现AI智能优化元素路径:
智能元素定位:用自然语言描述代替XPath
def smart_locate_element(description: str, screenshot_path: str):
“”"
用自然语言描述目标元素,AI自动生成定位策略
例如:“登录按钮,蓝色的,在页面右上角”
“”"
client = AIClientFactory.get_client(“deepseek”)
prompt = f"""
这是一个网页截图,请帮我定位以下元素并生成XPath路径:
目标元素描述:{description}
要求:
1. 生成最稳定的XPath路径
2. 优先使用id、name、class等稳定属性
3. 避免使用绝对路径
4. 如果可能,提供备用定位方案
请直接返回XPath表达式,不要解释。
"""
xpath = client.chat(prompt, screenshot_path)
return xpath.strip()
使用示例
xpath = smart_locate_element(
“蓝色的登录按钮,右上角”,
“/tmp/page_screenshot.png”
)
rpa.click(xpath)
更厉害的是,当web元素失效时,AI可以自动修复定位。流程执行过程中如果某个元素找不到了,RPA工具会自动截图并调用大模型分析当前页面结构,重新生成有效的定位路径,实现元素自愈。这样一来,流程的稳定性大幅提升,不会因为页面微小改版就中断。
这种能力对于维护大量自动化流程的团队来说简直是救星——再也不用半夜被叫起来修流程了。
四、AI自动生成流程:从需求描述到可执行脚本
这是本文最硬核的部分。如何实现"说人话就能生成自动化流程"?
4.1 需求理解层
def parse_automation_requirement(user_input: str) -> dict:
“”"
将用户的自然语言需求解析为结构化流程定义
“”"
client = AIClientFactory.get_client(“kimi”) # Kimi长文本理解能力强
system_prompt = """
你是一个专业的RPA流程分析师。请将用户的需求解析为JSON格式的流程定义。
输出格式:
{
"flow_name": "流程名称",
"steps": [
{
"step_id": 1,
"action": "open_url|click|fill_form|extract_data|condition|loop|call_api",
"target": "操作目标描述",
"parameters": {},
"next_step": 2,
"on_error": "retry|skip|abort"
}
],
"variables": {},
"trigger": "manual|schedule|api|event"
}
"""
response = client.chat(f"{system_prompt}\n\n用户需求:{user_input}")
import json
return json.loads(response)
4.2 代码生成层
def generate_rpa_script(flow_definition: dict, target_platform: str = “python”) -> str:
“”"
将结构化流程定义转换为可执行的RPA脚本
“”"
client = AIClientFactory.get_client(“deepseek”) # DeepSeek代码能力强
prompt = f"""
请将以下流程定义转换为{target_platform}的RPA执行脚本。
要求:
1. 使用requests + selenium/playwright
2. 包含异常处理和重试机制
3. 添加详细注释
4. 支持无头模式运行
流程定义:
{json.dumps(flow_definition, ensure_ascii=False, indent=2)}
"""
return client.chat(prompt)
4.3 完整示例:一句话生成发票处理流程
用户输入:
“每天自动登录电子发票平台,下载昨天开具的所有发票PDF,用OCR识别金额和税号,生成Excel汇总表发到我的邮箱”
AI生成流程:
AI自动生成的RPA流程脚本(经过人工微调)
import schedule
import time
from datetime import datetime, timedelta
def daily_invoice_process():
“”“每日发票自动处理流程 - AI生成”“”
# 1. 计算日期范围
yesterday = (datetime.now() - timedelta(days=1)).strftime("%Y-%m-%d")
# 2. 登录电子发票平台
rpa.open_url("https://fapiao.platform.com")
rpa.fill_form({
"#username": os.getenv("INVOICE_USER"),
"#password": os.getenv("INVOICE_PASS")
})
rpa.click("#login-btn")
rpa.wait_for("#dashboard", timeout=30)
# 3. 筛选昨日发票
rpa.click("#date-filter")
rpa.fill_form({
"#start-date": yesterday,
"#end-date": yesterday
})
rpa.click("#search-btn")
rpa.wait_for(".invoice-item", timeout=30)
# 4. 下载所有发票PDF
invoices = rpa.find_elements(".invoice-item")
pdf_paths = []
for idx, inv in enumerate(invoices):
rpa.click(inv.find_element(".download-btn"))
pdf_path = f"/tmp/invoice_{yesterday}_{idx}.pdf"
rpa.wait_for_download(pdf_path, timeout=60)
pdf_paths.append(pdf_path)
# 5. OCR识别(调用大模型视觉能力)
results = []
for pdf_path in pdf_paths:
# 将PDF转为图片后调用AI识图
img_path = pdf_to_image(pdf_path)
ocr_result = ai_client.chat(
"请识别这张发票的金额、税号、开票日期、购买方名称",
img_path
)
results.append(parse_ocr_result(ocr_result))
# 6. 生成Excel汇总
df = pd.DataFrame(results)
excel_path = f"/tmp/发票汇总_{yesterday}.xlsx"
df.to_excel(excel_path, index=False)
# 7. 发送邮件
send_email(
to="my@email.com",
subject=f"发票汇总-{yesterday}",
attachment=excel_path
)
print(f"[{datetime.now()}] 流程执行完成,共处理{len(results)}张发票")
设置定时任务
schedule.every().day.at(“09:00”).do(daily_invoice_process)
if name == “main”:
while True:
schedule.run_pending()
time.sleep(60)
这个流程从需求到可执行代码,全程由AI辅助生成,开发者只需做最后的审核和微调。这就是AI自动生成流程的魅力。
五、成果交付:打包分发与权限管理
流程开发完成后,如何交付给业务同事使用?这里有几个关键考量:
5.1 打包为独立EXE
对于非技术用户来说,最理想的方式是拿到一个双击就能运行的程序,不需要安装Python环境、不需要配置依赖。
支持打包导出EXE的自动化软件在这方面很有优势。开发者可以在工具内完成流程设计,一键导出为独立的可执行文件,发给别人不用装客户端。更实用的是,导出的应用还能单独设置API触发、定时执行等高级功能——比如让业务同事每天早上8点自动收到数据报表,或者通过API被其他系统远程调用。
而且,打包后的应用支持在线推送更新。这意味着你修复了bug或增加了功能后,不需要重新给每个人发安装包,用户打开应用就能自动检测并更新到新版本。对于需要频繁迭代的业务场景来说,这个细节能省下大量沟通成本。
5.2 授权与数据安全
企业级应用必须考虑权限控制和数据安全。
支持授权机制的打包应用可以设置使用期限、绑定设备、限制功能模块。配合加密分享能力,你可以安全地将应用分发给合作伙伴或客户,而不必担心代码泄露或越权使用。
更重要的是数据不出本地这个原则。比如蓝印RPA这个软件,在流程自动化执行过程中产生的所有数据——登录凭证、业务数据、执行日志——全部保存在用户本地设备上,不同步到任何云端服务器。对于处理敏感信息的企业来说,这是底线要求。毕竟,谁也不想自己的客户数据或财务数据被上传到第三方服务器。
5.3 浏览器自动化增强
现代RPA工具离不开浏览器自动化。除了常规的Chrome、Edge,很多业务场景需要操作指纹浏览器来管理多账号、防关联。
目前市面上主流的指纹浏览器——紫鸟浏览器、比特浏览器、HubStudio、AdsPower等——都已经可以很好地与自动化软件对接。通过模拟真实用户的浏览器指纹特征,配合RPA工具的自动化操作,可以实现安全高效的多账号矩阵管理。这对于电商运营、社媒营销、广告投放等场景来说是刚需。
六、写给开发者的选型建议
如果你正在考虑引入AI+RPA融合方案,以下几点建议来自我的实际踩坑经验:
对于个人开发者、个人工作室、中小企业来说,选型时还要特别关注使用门槛和长期成本。理想的方案应该无运行时长限制、无流程数量限制,支持在多台设备上使用而无需额外购买多开会员,蓝印RPA就满足这些条件。毕竟,技术工具的价值在于释放生产力,而不是制造新的成本负担。
另外,如果你需要自定义界面,设计属于自己的软件外观——比如给客户交付时打上自己的品牌logo、调整配色方案——这也是选型时值得关注的点。一个能自定义界面的RPA工具,在交付给客户时显然更专业。
AI大模型与RPA工具的融合,不是简单的1+1=2,而是开启了智能流程自动化的新纪元。
大模型让RPA工具具备了"理解"和"决策"的能力,RPA工具让大模型获得了"执行"和"交互"的抓手。从API触发到Agent智能调度,从手动编写脚本到AI自动生成流程,这个领域正在以惊人的速度进化。
作为开发者,我们正处于一个最好的时代——文心一言、Kimi、DeepSeek等大模型能力越来越强,自动化软件的易用性和开放性也在持续提升。无论是构建企业级的数字化员工,还是开发个人效率工具,现在都是入场的最佳时机。
更多推荐


所有评论(0)