手把手教你如何搭建维修AI机器人

职场   2024-09-03 16:58   四川  
这是我几个月之前基于coze平台开发的小程序了,那时候无论是国内版还是海外版,调用API还没开始收费。从8.15开始收费后,我就不玩了
下面把方法教给大家,即便是0编程基础,也可以搭建自己专属的AI。
首先登录coze官网:https://www.coze.cn/,并注册,点击创建Bot:

创建好Bot后,进来就可以看到这样一个编辑页面:

最左侧是功能区,这里要填写机器人的人设与回复逻辑。这里写得越详细越好,条件限制得越多,回答才会越精确。如果不知道怎么写,可以大概写个提纲,让AI帮你优化。

下面是我的AI机器人的人设与回复逻辑,大家可以参考一下:
# 角色
你是一位在飞机维修领域拥有顶级专业水准、丰富实战经验且极其严谨的工程师,始终坚守科学、客观和精确的原则,能够结合全网知识与本地知识库,为用户全面深入且准确无误地解答各类复杂的飞机维修问题。
## 技能
### 技能 1: 精准故障诊断
1. 当用户详尽阐述飞机故障情形时,全方位、细致地询问相关细节,诸如故障确切发生时间、驾驶舱伴随的各种效应、相关故障代码等状况。
2. 凭借深厚的专业功底和大量实践积累,深度剖析所有可能的故障根源,并给出切实可行且极具针对性的初始排故提议。回复示例:
=====
   -  💥 可能故障原因: <详尽无遗地罗列全部可能成因>
   -  🔧 初步排故建议: <给出清晰明确、具有极强可操作性的具体建议>
=====
### 技能 2: 优化维修方案制定
1. 依据精确的故障诊断结论,精心策划详尽周全的维修方案,涵盖所需的各类工具、具体的航材以及明确清晰的维修流程。
2. 充分考量维修成本和时间效率,提供最具性价比和时效性的卓越解决方案。回复示例:
=====
   -  🛠 维修工具: <精确完整地罗列所需全部工具>
   -  📦 航材需求: <准确无误地罗列可能需要更换的全部航材件号>
   -  👷‍♂ 排故步骤: <条理清晰、逻辑严密地描述排故步骤的先后顺序和具体施工办法>
=====
### 技能 3: 权威日常维护指导
1. 为用户提供飞机日常维护方面的权威专业建议,包含详尽的定期检查具体项目、严格的工程政策、厂家的明确要求等。
2. 着重突显施工过程中可能存在的风险点,并进行显著醒目的提示。同时,列出相关的参考手册章节号。回复示例:
=====
   -  🔎 工程政策: <全面详尽、毫无疏漏地列举需要定期检查的所有内容和厂家的详细建议>
   -  💡 风险提示: <清晰显著地列举核心风险点和相关的典型案例>
=====
### 技能 4: 文件解析
1. 能够精准解析知识库中的各类资料(包括英文材料),并依据知识库内的知识予以回应
## 限制:
- 所提供的诊断结果、维修方案和维护建议必须严格依照厂家手册、专业理论知识和实际操作经验,务必保证严谨客观、科学精确且具备权威性。 


模式选择这可以简单的直接选择LLM模式,主要依赖于大语言模型(如通义千问、豆包、KLM或Kimi)来理解和生成自然语言文本。

也可以自己创建工作流将任务分解给多个专责的Agent一个Agent搜索互联网上的内容,一个Agent搜索本地经验库的内容,一个Agent搜索官方的资料(AMM/FIM/SL/FTD),利用多个Agent协作提高AI回答质量。关于如何创建工作流,大家可以去看看官方的讲解视频,这里我就不赘述了:


在模块区,主要上传你的本地经验库。如果使用工作流,可能还需要添加相应的插件。


最后点击发布即可,如果勾选微信订阅号,那么就可以在公众号后台完成机器人部署了。比如我这个公众号的后台,就可以自动回复留言:

现在我后台已经取消这个功能了,大家不必去试了
如果你想在更多场景应用,脱离coze平台(比如生成一个可执行的exe程序),记得要勾选下图的Bot as API选项。这是一个隐藏功能,首次注册登录需要先到这个网页:https://www.coze.cn/open/api,添加个人访问令牌才会出现该选项。

coze官方提供的API介绍在这个网址中:
https://www.coze.cn/docs/developer_guides/coze_api_overview
基础版的免费调用额度是100次,用完就没了

我开发那会,请求地址还只是v2,现在已经是v3了。其实大同小异啊,如果要使用v3版本的新功能,需要在我的代码基础上再修改一下。

源代码如下,大家只要把Bearer Token和Bot ID开发页面URL中bot参数后的数字就是Bot ID更换成自己的就可以运行了。官方的开发指南中介绍得很详细,我就不过多解释代码了


import sys

import requests
from PySide6.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QTextEdit, QLineEdit, QLabel
from PySide6.QtGui import QFont

class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.initUI()

def initUI(self):
# 设置窗口标题和初始大小
self.setWindowTitle("业哥为你答疑解惑 V1.0")
self.setGeometry(300, 300, 800, 600)

# 创建提示文本标签
self.tip_label = QLabel("由于业哥的解答是基于互联网上搜索的内容,所以输出内容是JSON格式。"
"JSON格式本身是用于数据交换的,并不直接支持格式化显示。"
"JSON格式的数据通常以键值对的形式存在,并且嵌套结构可以非常复杂,如果直接以文本形式展示,会显得比较混乱。"
"后续我会研究如何解析JSON数据,然后根据数据结构生成相应的Markdown语法,让显示的内容更易读一些。")
self.tip_label.setWordWrap(True)
self.tip_label.setFont(QFont("Arial", 10))

# 创建日志输出框
self.log_edit = QTextEdit()
self.log_edit.setReadOnly(True)
self.log_edit.setPlaceholderText("业哥的回复将显示在这里")
self.log_edit.setFont(QFont("Arial", 12))

# 创建输入框和提示词
self.input_edit = QLineEdit()
self.input_edit.setPlaceholderText("请输入你的问题")
self.input_edit.setFont(QFont("Arial", 12))

# 创建确定按钮
self.confirm_button = QPushButton("确定")
self.confirm_button.setFont(QFont("Arial", 12))
self.confirm_button.clicked.connect(self.on_confirm_clicked)

# 创建布局并添加控件
layout = QVBoxLayout()
layout.addWidget(self.tip_label)
layout.addWidget(self.log_edit)
layout.addWidget(self.input_edit)
layout.addWidget(self.confirm_button)

self.setLayout(layout)

def on_confirm_clicked(self):
# 获取用户输入
user_input = self.input_edit.text()
if not user_input:
self.log_edit.append("请输入问题")
return

# 发送请求到 Coze API
self.send_to_coze(user_input)

def send_to_coze(self, query):
headers = {
'Authorization': 'Bearer pat_xxx', # 替换为你的Bearer Token
'Content-Type': 'application/json',
'Connection': 'keep-alive',
'Accept': '*/*'
}
data = {
'bot_id': '738xxxxxx', # 替换为你的Bot ID
'user': 'admin',
'query': query,
'stream': False
}

try:
response = requests.post('https://api.coze.cn/open_api/v2/chat', headers=headers, json=data)
response.raise_for_status() # 如果响应状态不是 200,将抛出异常
response_data = response.json()
# 显示 Coze 的回复
self.display_response(response_data)
except requests.exceptions.RequestException as e:
self.log_edit.append(f"请求 Coze API 时发生错误: {e}")

def display_response(self, response_data):
# 检查响应中是否有 'messages' 键,并遍历消息
if 'messages' in response_data:
for message in response_data['messages']:
# 检查消息的角色是否为 'assistant' 且类型为 'answer'
if message.get('role') == 'assistant' and message.get('type') == 'answer':
# 将回复内容添加到日志框
self.log_edit.append(message.get('content', ''))

if __name__ == '__main__':
app = QApplication(sys.argv)
mainWin = MainWindow()
mainWin.show()

sys.exit(app.exec())


UI窗口我做得很简陋啊,大家可以在我的基础上再优化一下:

后来我又用streamlit做了个网页版的,UI好看些了,但是没有上传附件解析功能,只能纯文本对话:

调用接口上传本地文件的请求地址如下:

感兴趣的,自己去开发就好了。还有调用接口执行已发布的工作流,这些功能我也都还没发开,就都交给你们了。精力有限(真的是一个很好的托辞,其实就是懒),后续不打算维护更新了。

原本想做个付费阅读,后来觉得这也不是什么高深的东西,还是希望更多的人看到未来AI的发展前景,一起参与到开发中。6年前曾预言AI将在2035年会取代自己,不知道会不会一语成谶希望那天晚一点到来吧,让我至少能混到退休。。。

现在以及未来最热的一个发展方向一定是私域大模型,也就是【开源AI大模型】+【自己领域的专业知识】。大家不妨提早准备,换换赛道吧!


感谢大家对机务论坛的支持,关注机务论坛,倾听机务心声!航企优秀的方面必定宣传,不足的地方也必须指出,让领导们重视问题,解决问题,营造更好的机务维修环境。

征稿:
所见所闻,个人感悟,个人成长历程及感人故事。
特别征稿:我师傅的故事!
同时,征集劳动仲裁案例,分享案例,让更多的小伙伴能了解劳动纠纷的解决方式,通过劳动仲裁维护自己的合法权益。



评论区留言,同意的点赞
扫码添加小编微信
匿名爆料


民航机务论坛微信公众平台
改名为:机务论坛
发布最新行业动向 深入解读政策法规
开辟维修工程专栏 交流飞机排故经验
分享前沿技术应用 预测职业发展前景
行业大咖讲经布道 业界专家授业解惑
致力打造一流的民航机务朋友圈----机务论坛
关注机务论坛,倾听机务心声!
投稿邮箱:duanwei0615@163.com


机务论坛
民航机务论坛改名为:机务论坛 发布最新行业动向 深入解读政策法规 开辟维修工程专栏 交流飞机排故经验 分享前沿技术应用 预测职业发展前景 行业大咖讲经布道 业界专家授业解惑 致力打造一流的民航机务朋友圈----机务论坛
 最新文章