利用大语言模型(KIMI)构建控制信息模型

ops/2024/9/20 9:19:12/ 标签: 大数据, 大语言模型LLM, JSON, 物联网·

          数字化的核心是数字化建模,为一个事物构建数字模型是一项十分复杂的工作。不同的应用场景,对事物的关注重点的不同的。例如,对于一个智能传感器而言,从商业的角度看,产品的信息模型中应该包括产品的类型,名称,制造商,技术规格,产品图片,3D模型,安全论证等信息。而对于应用工程师而言,关心的是产品的接口,协议和控制方法。产品的商业信息和使用信息是不同的。信息模型也不同。

   于是,产品的商业信息和使用信息采用的建模方式和标准也是不同的。产品信息主要标准包括GS-1,ETIM,ECL@SS。而控制模型包括OPC UA 和工业4.0 管理壳(AAS)。

  本文探讨在ETIM 模型的基础上扩展基于JSON 的控制信息模型。并且通过转换软件将JSON 控制模型转换成OPCUA 模型

     采用JSON 的原因是JSON 更具有可读性。适合大语言模型构建产品模型。笔者认为 大语言模型是生成产品信息模型的最佳工具。

智能产品信息模型   

  对于智能化技术产品而言,产品的信息包含下面几个方面:

  1. 产品的基本信息
  2. 产品的技术指标
  3. 产品的操作过程
  4. 产品的几何图形
  5. 产品的商务信息

   这些信息除了商务信息之外,通常包含在产品的数据表(DataSheet) 中,对于复杂的智能产品,为了帮助用户使用产品,还提供了辅助的技术文档。 商务信息在销售部门的报价单或者ERP 系统中。

           数字化的主要工作之一是构建生产过程中所有资产的数字化模型。产品的基本信息,技术指标和几何图形通常包含在产品分类目录中(例如ETIM,GS-1,ECL@SS)。产品的商务信息包含在电子商务平台信息模型中。而产品的操作过程包含在技术文档中。

  产品操作过程的模型

  在工业4.0 的相关标准中,数字资产的数字化模型被称为资产管理壳(AAS),其中包含了操作数据和服务,这是模型能够转换成自动控制系统中的信息模型,例如OPCUA 信息模型。

       资产管理壳和OPC UA 是相对比较复杂的形式化信息模型,构建这些信息模型要借助专业的设计工具,并且具备一定的AAS和OPCUA 背景知识,笔者关注的重点是使用更加便捷,高效的方法描述产品的信息模型。特别是ChatGPT 技术的出现。为使用自然语言描述信息模型带来了新的机会。在我看来,chatGPT 为代表的大语言模型最强大的能力是将人类自然语言的内容转换成为机器能够识别的形式化信息。

JSON LD 物模型

JSON -LD 的全称是(JSON linked data),是Google公司提出来的,W3C 发布 JSON-LD 1.1 正式推荐标准。

       JSON-LD 是一种轻量级链接数据格式。它 对人类来说很容易读写。它基于已经 成功的 JSON 格式,并提供了一种帮助 JSON 数据互操作的方法。

JSON-LD的初衷是提供了一种更简单的方法来从网站创建机器可读数据以提升搜索结果。

        具体来说,使用 <script type="application/ld+json"> 标签可以让网页中的元素被编码为一个 JSON-LD 对象,并将其嵌入到页面中。这个 JSON-LD 对象可以包含诸如实体名称、描述、图像、地址、联系方式等属性信息,让搜索引擎更好地理解网页的含义和结构。

        通过使用结构化数据,网站管理员可以帮助搜索引擎更好地了解他们网站的内容和结构,并且有助于提高网站在搜索引擎中的排名和可见度。另外,使用 JSON-LD 还可以使您的网站在 Google 的搜索结果中显示富媒体的搜索结果,例如公司地址、电话号码、评分等等。

在网页正文中嵌入结构化数据,例如描述组织、产品或事件的相关信息。以下是一个示例:
 

<!DOCTYPE html>
<html><head><script type="application/ld+json">{"@context": "https://schema.org/","@type": "Organization","name": "Example Company","url": "https://www.example.com/","logo": "https://www.example.com/logo.png"}</script></head><body><h1>Welcome to Example Company</h1><p>Visit our website at <a href="https://www.example.com/">www.example.com</a></p></body>
</html>

JSON-LD 被用于物联网(Web of thing )描述物模型,下面是一个例子:

{"id": "urn:dev:wot:com:example:servient:lamp","name": "MyLampThing","securityDefinitions": {"basic_sc": {"scheme": "basic"}},"security": ["basic_sc"],"properties": {"status" : {"type": "string","forms": [{"href": "https://mylamp.example.com/status"}]}},"actions": {"toggle" : {"forms": [{"href": "https://mylamp.example.com/toggle"}]}},"events":{"overheating":{"data": {"type": "string"},"forms": [{"href": "https://mylamp.example.com/oh","subprotocol": "longpoll"}]}},"annotation": {"@context": {"@base": "http://example.org/data/","vendor": "http://vendor.org/product/"}"@type": "vendor:color-light","isAbstractionOf": "appartment/134#light-1"}
}

 受到WoT 使用JSON LD 建模的启发,我们可以利用JSON构建控制过程的模型:

  • JSON 更适合人类阅读和书写
  • JSON 更适合LLM 生成

这是产品的控制模型: 

{"name":"mydevice","description":"description of mydevice","group_id":"group id","class_id":"class_id","properties":[{"name":"status","type":"string","description":"the status of device"},{"name":"temperature","type":"numeric","description":"the temperature of device","max":"max of value","min":"min of value","value":"the default value"}],"actions":[{"name":"the name og action","description":"the description of the action","arguments":{"inputs":[],"output"[]}}],"events":[{"name":" the name of event","description":"description of the event"}]
}

大语言模型的使用

        笔者曾经尝试使用LLM 直接生成产品信息模型,结果发现,LLM 的输出存在不一致的现象,在数字化建模中是无法接受的。而LLM是基于语言的实例来学习语言的语法。它目前无法学习schima 规范。因此,我放弃了直接生成产品模型的想法,而是为LLM 提供一个JSON 模型,让LLM 完成模型的实例化.通过阅读产品的datasheet ,提取相关信息,填入预先定义的JSON 模型中,并且将JSON 模型中未定义的属性作为专用属性增补在后面。

输入产品控制模型的描述

这是产品的信息
名称 温度传感器
属性:温度最大值:180最小值: -30初始值:0
电流初始值:0
电压
初始值:24
动作:
初始化输入:
输入1:电流初始值输出:无
读取温度:输入:无输出:
输出1当前温度
复位:输入:无
输出:无

将产品模型和产品信息上传给kimi 大模型,结果为:

{"name": "温度传感器","properties": {"temperature": {"max": 180,"min": -30,"initial_value": 0},"current": {"initial_value": 0},"voltage": {"initial_value": 24}},"actions": [{"name": "initialize","description": "初始化设备,设置电流的初始值","arguments": {"inputs": [{"name": "current_initial_value","description": "电流的初始值"}],"outputs": []}},{"name": "read_temperature","description": "读取设备当前的温度值","arguments": {"inputs": [],"outputs": [{"name": "current_temperature","description": "当前的温度值"}]}},{"name": "reset","description": "复位设备到初始状态","arguments": {"inputs": [],"outputs": []}}]
}

非常完美!


http://www.ppmy.cn/ops/29876.html

相关文章

主机win10,VMware 装了ubuntu,ubuntu传文件到主机

亲测可用&#xff0c;1分钟搞定&#xff0c;不能用你打死我 使用 FileZilla 工具互传 FileZilla是一款免费的工具&#xff0c;是基于 FTP 协议进行文件互传的&#xff0c;在传输过程中我们的ubuntu是作为服务器&#xff0c; FileZilla 工具则是作为客户端。 1 ubuntu安装 FTP…

redis

reids 基本概念特性 安装命令lua 脚本EVALSHA命令例子lua脚本摘要参考 基本 概念 redis: REmote DIctionary Server key-value 存储系统&#xff0c;非关系型数据库。 开源的使用 ANSI C 语言编写 支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库&am…

Windows Server 评估版转换(升级)为完整版

临时方法 获取 Windows Server 的剩余宽限期 Slmgr /dliWindows Server免费试用期可以使用以下命令合法延长5次&#xff0c;共180天&#xff1a; slmgr /rearm这意味着所评估的 Windows Server 的最长可用时间为 3 年 ( 180 days * 6)。 试用期到期后&#xff0c;Windows S…

PC通过串口发送指令控制LED+串口中断

如何让单片机接收数据&#xff1f; 首先要打开SCON中的串行接收控制位REN。当REN1时为允许接收状态&#xff0c;可以接收信息。 因此令SCON 0x50&#xff1b; 怎么知道收到数据&#xff1f; 利用RI接收中断请求标志位。当串行接收到第8位结束时由内部硬件自动置为RI1&#…

UDP的报文结构和注意事项

目录 正文&#xff1a; 1.概述 2.UDP的报文结构 3.注意事项 总结&#xff1a; 正文&#xff1a; 1.概述 UDP&#xff08;User Datagram Protocol&#xff09;是一种无连接的传输层协议&#xff0c;它提供了一种简单的数据传输服务&#xff0c;不保证数据的可靠传输。在网…

《架构即未来》读后感

目录 一、引言 二、《架构即未来》读后感 1、主题的简要介绍 2、我的看法和理解 3、作者的优点和传递的信息 4、思想如何适用于当今社会 三、《架构即未来》对于企业发展的影响具体体现在哪些方面&#xff1f; 一、引言 任何一个持续成长的公司最终都需要解决系统、组织…

tomcat篇-windows 运行tomcat的startup.bat时,终端打印的中文显示为乱码

当运行Tomcat的startup.bat时&#xff0c;如果终端中中文显示为乱码&#xff0c;这通常是因为Tomcat使用的日志输出编码与Windows命令行默认的编码不匹配。针对这一问题&#xff0c;你可以尝试以下步骤来解决&#xff1a; 1、执行startup.bat&#xff0c;在输出的窗口右击&…

SpringCloud学习笔记(二)Ribbon负载均衡、Nacos注册中心、Nacos与Eureka的区别

文章目录 4 Ribbon负载均衡4.1 负载均衡原理4.2 源码解读4.3 负载均衡策略4.3.1 内置的负载均衡策略4.3.2 自定义负载均衡策略4.3.2.1 方式一&#xff1a;定义IRule4.3.2.2 方式二&#xff1a;配置文件 4.4 饥饿加载 5 Nacos注册中心5.1 认识和安装Nacos5.2 服务注册到Nacos5.3…

Window11安装vim编辑器

我们在做git操作的时候&#xff0c;很多文字编辑工作会默认打开 Vim 编辑器来进行操作。 Vim 是一个高度可配置的文本编辑器&#xff0c;旨在让创建和更改任何类型的文本变得非常高效。大多数 UNIX 系统和 Apple OS X 都将它作为vi包含在内&#xff0c;用惯了Linux中的Vim编辑器…

与 Apollo 共创生态:企业解决方案Apollo X 9.0,七载同舟,携手远航,视频简说

目录 介绍背景方案与项目Apollo 开源项目Apollo X 企业解决方案落地因素助力企业落地流程 预置套件需求定义功能定义场景用例融合技术面向园区功能安全Cyber RT企业硬件套件 开发工具链研发迭代范式协同研发工具链标定工具地图工具仿真平台数据闭环 企业合作模式合作方式 共创计…

在vue2中,什么是双向绑定,为什么vue3要进行优化?

一、什么是双向绑定 我们先从单向绑定切入单向绑定非常简单&#xff0c;就是把Model绑定到View&#xff0c;当我们用JavaScript代码更新Model时&#xff0c;View就会自动更新双向绑定就很容易联想到了&#xff0c;在单向绑定的基础上&#xff0c;用户更新了View&#xff0c;Mo…

使用nodejs和python脚本实现爬虫程序,并将抓取数据生成词云图看板

创建项目&#xff0c;初始化目录结构。 创建项目名称为pachong。运行 npm init -y 初始化项目。修改package.json文件中的type属性为module。安装 npm 包&#xff1a;npm install puppeteer #爬虫 | 自动化UI测试首先确保你的电脑上有python3环境安装两个python包 pip instal…

备忘录模式(行为型)

目录 一、前言 二、备忘录模式 三、总结 一、前言 备忘录模式(Memento Pattern&#xff09;是一种行为型设计模式&#xff0c;在不破坏封装性的前提下&#xff0c;捕获一个对象的内部状态&#xff0c;并在该对象之外保存这个状态&#xff0c;这样可以在之后将该对象恢复到原…

第六十九章 使用 NSD (UNIX® Linux macOS) - 示例 2:两个 Web 应用程序

文章目录 第六十九章 使用 NSD (UNIX Linux macOS) - 示例 2&#xff1a;两个 Web 应用程序示例 2&#xff1a;两个 Web 应用程序将负载分散到多个 NSD 进程上授予 NSD 管理员权限 第六十九章 使用 NSD (UNIX Linux macOS) - 示例 2&#xff1a;两个 Web 应用程序 示例 2&…

十大排序算法之——插入排序算法(Java实现)及思路讲解

插入排序是一种简单直观的排序算法&#xff0c;它的工作原理是通过构建有序序列&#xff0c;对于未排序数据&#xff0c;在已排序序列中从后向前扫描&#xff0c;找到相应位置并插入。插入排序在实现上&#xff0c;通常采用in-place排序&#xff08;即只需用到O(1)的额外空间的…

IP路由安全:保护网络免受威胁

目录 前言 一 IPv4 协议及其安全性分析 IPv4 安全问题&#xff1a; 增强 IPv4 安全性的策略&#xff1a; 二 IPsec&#xff1a;增强 IP 通信安全 1.IPsec 工作原理&#xff1a; 2.IPsec 用例&#xff1a; 3.AH协议 AH 协议工作原理 AH 协议的工作原理高级概述 AH 协议…

wordpress外贸独立站建站10要10不要

创建一个成功的WordPress外贸独立站需要注意很多因素。以下是zhanyes根据多年建站经验总结的wordpress外贸独立站建站的10个建议和10个避免的事项&#xff0c;以帮助您建立一个高质量的外贸网站&#xff1a; 10个要&#xff1a; 1. 要选择合适的域名&#xff1a;确保您的域名…

汇编语言-adc、sbb以及cmp指令

adc指令&#xff1a; adc 是带进位加法指令&#xff0c;它利用了CF位上记录的进位值 指令格式&#xff1a; adc 操作对象1,操作对象2 功能&#xff1a; 操作对象1 操作对象1 操作对象2 CF 例如指令 adc ax,bx 实现的功能是: (ax)(ax)(bx)CF 例如&#xff1a; mov ax,2 …

Github 2024-04-30 Python开源项目日报 Top10

根据Github Trendings的统计,今日(2024-04-30统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目10TypeScript项目1稳定扩散Web UI 创建周期:512 天开发语言:Python协议类型:GNU Affero General Public License v3.0Star数量:1…

string(下)

目录 一、capacity 1)size&#xff08;&#xff09;、length&#xff08;&#xff09;和capacity&#xff08;&#xff09; 2) resize&#xff08;&#xff09;和reserve&#xff08;&#xff09; 二、element access 1&#xff09;at &#xff08;&#xff09; 2&#xf…