
OilyRAGs 团队 • 2024-11-01
OilyRAGs:用 AI 构建基于 RAG 的机械师助手
这是一篇客座文章,作者是 Jeff Davis,他也是我们近期黑客马拉松的获奖者之一。
我最近参加了 LlamaIndex 在加利福尼亚州帕洛阿尔托 500 Global 总部举办的黑客马拉松。这场“RAG 大赛”(RAG-A-THON)活动聚焦于构建代理型 RAG 系统。我的项目“OilyRAGs”最终获得了第三名,我想分享一些关于我如何构建这个原型系统的细节。
概念
OilyRAGs 是一个由机械师为机械师构建的 AI 机械师助手目录。其目标是利用人工智能和机器学习加速客户服务、机械维护和重复性操作任务。本质上,OilyRAGs 是一个包含公共、私有和制造商赞助的 RAG 应用程序的目录。
市场潜力巨大:全球有 14 亿辆汽车(轿车、卡车、巴士),数十亿架飞机,数十亿艘船只,以及包括冰箱、洗衣机、烘干机、洗碗机等在内的数十亿台家电。此外还有数亿台小型发动机设备,包括拖拉机、装载机、叉车和割草机。
重点市场:船舶业
对于原型系统,我重点关注了船舶。
仅此一项就超过 500 亿美元的市场。根据美国商务部经济分析局的数据,休闲划船和钓鱼是 2020 年 6890 亿美元户外休闲产业的最大贡献者。
问题
为了了解痛点,想象一下船只机械师在遇到像 PCM 发动机的“P0006B051FW20A”这样的发动机型号时的典型工作流程:
- 爬进发动机舱(需要柔术般的灵活性)
- 在草稿纸上写下型号
- 从船上爬下来
- 走到建筑物另一端的电脑室
- 打开一份 PDF 文档
- 解读型号
- 查找维护任务所需的相应零件
这会花费大量时间,并且不是对机械师技能的最佳利用。
解决方案
OilyRAGs 利用 LlamaIndex 创建了一个支持 RAG 功能的聊天机器人,该机器人具备多模态免提界面。机械师可以使用他们的手机解读型号、诊断问题并进行简单的查询,而无需离开船只,例如:
“列出为 2020 年 PCM 06.2 L DI, PEG 90A E, 2.0:1, return, A 发动机进行 50 小时保养所需的所有零件及其零件号”
使用该应用程序不仅能提供全面优化的标准化输出,速度更是提高了 6,000%——这种数量级的提升在创新领域是罕见的。

工作原理
后端实现利用 LlamaIndex 构建了一个 RAG 管道,该管道通过与 LlamaIndex 工作流配对的聊天机器人进行交互。这使得一个 AI 代理能够将信息传递给另一个 AI 代理,由后者生成报告。输出是一个带有复选框的数字表格,允许机械师在手机上跟踪他们的进度。
表格包括
- 发动机型号
- 解读出的特性
- 与每个所需服务项目相关的零件号
- 备注空间(仅对船厂可见)
- 数字签名和日期
- PDF 导出功能
所有数据都以数字形式存储,RAG 系统可以引用这些数据以供未来查询。这完全消除了纸张浪费,解决了手写潦草和油污指纹的问题,并创建了易于共享的文档。
实际影响

正如当地一家船厂的服务机械师所说:“使用 AI 处理重复性任务是颠覆性的。它让完成耗时任务的速度呈指数级增长。”
在船只服务行业,客户更换机油需要花费 300 美元,而机械师每小时收入 30 美元,OilyRAGs 为每个人带来了好处:
- 机械师效率更高
- 船厂提高处理能力
- 制造商/供应商销售更多零件
- 客户获得更快的服务
这是一个四赢的局面,机械师、船厂、制造商和船主都从中受益。
技术实现
该应用程序使用了 LlamaIndex 来构建几个关键组件
# Storage
from pinecone import Pinecone
from llama_index.vector_stores.pinecone import PineconeVectorStore
from llama_index.core import SimpleDirectoryReader, StorageContext, Document, VectorStoreIndex, set_global_handler, Settings
# RAG
from llama_index.core.node_parser import SimpleNodeParser
from llama_index.core.storage.docstore import SimpleDocumentStore
from llama_index.core.storage.index_store import SimpleIndexStore
# LLM
from llama_index.llms.openai import OpenAI
# Workflow
from llama_index.core.workflow import (
StartEvent,
StopEvent,
Workflow,
step,
Event,
)
# Workflow Graph
from llama_index.utils.workflow import draw_all_possible_flows
# Embeddings
from llama_index.embeddings.openai import OpenAIEmbedding
可观测性与评估
该系统利用 LlamaTrace 与 Arize Phoenix 实现了可观测性
llama_index.core.set_global_handler(
"arize_phoenix", project_name="oilyrags", endpoint="https://llamatrace.com/v1/traces"
)
下一步计划
船舶业服务提供商对 OilyRAGs 的兴趣验证了其扩展到其他机械领域的潜力。展望未来,我计划:
- 使用聊天机器人为机械师实现连续反馈的免提模式
- 扩展服务范围,涵盖更多小众车辆和发动机
- 利用机器学习开发预测性维护功能
- 为船主和服务提供商开发调度和通知功能
- 与制造商合作开发赞助的 RAG 应用程序
- 与供应商合作,在应用程序内实现无缝订购
总结
这个 RAG 大赛项目展示了 LlamaIndex 如何利用 RAG 和 AI 代理的力量,创建实用、有影响力的解决方案,从而改变传统行业。LlamaIndex 能够快速、强大地实现如此多的关键技术功能,并减少跨多个项目时代码库不一致的问题。
如果您对代理型 RAG 的实现有疑问,或希望为您的业务开发一个,欢迎与我们联系!
联系我
如果您有兴趣投资、合作,或者想了解更多关于 OilyRAGs 开发的信息,欢迎在 LinkedIn 上与我联系。我特别希望能联系到以下人士:
- 投资者
- 船厂运营商
- 船主
让我们携手合作,将 AI 驱动的效率带入各行业的机械维护领域!