OPC UA遇见chatGPT

     

         最近opc 基金会将召开一个会议,主题是”OPC UA meets IT“。由此可见,工业自动化行业也开始研究和评估chatGPT带来的影响了。

本文谈谈本人对OPC UA 与chatGPT结合的初步实验和思考。

构建OPC UA 信息模型

         chatGPT 的确非常强大了,使用自然语言描述一个设备的信息模型,它能够直接生成该设备的OPC UA 信息模型,并且以OPCUA nodeset2.xml 格式输出:

代码


from openai import OpenAIclient = OpenAI(api_key="sk-xxxxxx",base_url="https://api.chatanywhere.tech/v1"
)completion = client.chat.completions.create(model="gpt-3.5-turbo",messages=[{"role": "system", "content": "creat opc ua information model ,output modeset2 xml format"},{"role": "user", "content": "typename motor ,attributes include current,voltage temperature,power data type float"}],temperature=0.3,
)print(completion.choices[0].message.content)

结果

runfile('E:/yao2024/python2024/chatgptSimple.py', wdir='E:/yao2024/python2024')
```xml
<?xml version="1.0" encoding="UTF-8"?>
<opc:Model xmlns:opc="http://opcfoundation.org/UA/2011/03/UANodeSet.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><opc:ObjectType NodeId="ns=1;i=1001" BrowseName="MotorType"><opc:DisplayName>Motor</opc:DisplayName><opc:References><opc:Reference ReferenceType="HasProperty" IsForward="false">i=47</opc:Reference><opc:Reference ReferenceType="HasProperty" IsForward="false">i=48</opc:Reference><opc:Reference ReferenceType="HasProperty" IsForward="false">i=49</opc:Reference><opc:Reference ReferenceType="HasProperty" IsForward="false">i=50</opc:Reference></opc:References></opc:ObjectType><opc:Variable NodeId="ns=1;i=47" BrowseName="Current" DataType="Float"><opc:DisplayName>Current</opc:DisplayName></opc:Variable><opc:Variable NodeId="ns=1;i=48" BrowseName="Voltage" DataType="Float"><opc:DisplayName>Voltage</opc:DisplayName></opc:Variable><opc:Variable NodeId="ns=1;i=49" BrowseName="Temperature" DataType="Float"><opc:DisplayName>Temperature</opc:DisplayName></opc:Variable><opc:Variable NodeId="ns=1;i=50" BrowseName="Power" DataType="Float"><opc:DisplayName>Power</opc:DisplayName></opc:Variable>
</opc:Model>

         酷吧?关键是提示要写好。如何生成特定行业的DSL 语言,还需要进一步研究。例如生产线的工艺流程编排。这将极大提升系统设计和维护的工作效率,降低了工程成本。

生成结构化数据

  下面的例子演示如何利用chatGPT按照JSON 模板,构建结构化数据。

程序

import json
import os
from langchain_openai import ChatOpenAI
from langchain.agents import initialize_agent, Tool
from langchain.agents.mrkl import prompt
os.environ['OPENAI_API_KEY'] ="sk-xxxxxxxx"
os.environ['OPENAI_BASE_URL'] ="https://api.chatanywhere.tech/v1"
def get_template(productClass):#print(productClass)answer = [{"type": "product type","brand": "product brand","manufacture":"product manufacture","color":"color of prodcts","size":"product size"}]return json.dumps(answer)
def device_control(device_id):print(device_id)status=Trueanswer = [{"状态": status}]return json.dumps(answer)
def lang_chain_agent(text):llm = ChatOpenAI(model_name="gpt-3.5-turbo",base_url="https://api.chatanywhere.tech/v1")tools = [Tool(name = "get_template",func=get_template,description="use this tool when you need to get product model tempplate ,To use the tool, you must provide  chinese product class",)]agent = initialize_agent(tools,llm,agent="zero-shot-react-description",agent_kwargs=dict(suffix='Answer should be  json. ' + prompt.SUFFIX), verbose=True,return_intermediate_steps=True)response = agent({"input": text})return response
lang_chain_agent("根据如下数据生成符合模型样板的json 产品数据,  类型 足球 品牌 小少年 制造商 鹰派运动用品公司 颜色 红色 尺寸 12 英寸")

结果

> Entering new AgentExecutor chain...
I need to use the get_template tool to generate the product model template for a football product.
Action: get_template
Action Input: 足球
Observation: [{"type": "product type", "brand": "product brand", "manufacture": "product manufacture", "color": "color of prodcts", "size": "product size"}]
Thought:Now I can fill in the template with the provided data.
Final Answer: {"type": "足球", "brand": "小少年", "manufacture": "鹰派运动用品公司", "color": "红色", "size": "12 英寸"}> Finished chain.

chatGPT 访问OPC UA 服务器

    OPC UA是自动化行业广泛应用的工业标准,我们设想可以在chatGPT Agent 中增加一个OPCUA Client ,用它来获取现场设备的状态,并且实现chatGPT对物理设备的控制。其架构如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/600041.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在虚拟机尝试一次用启动盘重装系统

在虚拟机尝试一次用启动盘重装系统 没有自己重装过系统&#xff0c;也不敢对自己的笔记本下手&#xff0c;用虚拟机重装玩玩试试。 先设置成u盘启动 从boot中选择相应的创建的硬盘即可&#xff08;刚刚突然发现图片不能上传了&#xff0c;经过乱七八糟的尝试后&#xff0c;开一…

docker使用arthas基本教程

供参考也是自己的笔记 docker容器下使用遇到的问题&#xff1a;大致是连接不上1号进程 我这边主要的问题是用户权限问题&#xff0c;docker容器使用aaa用户启动&#xff0c;那个在docker容器内&#xff0c;需要使用aaa用于启动 docker 容器如何使用arthas #实现下载好arthas …

Vscode中配置Eslint自动修复并保存代码

在settings.json中进行修改&#xff0c;加入以下代码即可&#xff0c;文件保存之后&#xff0c;自动修复一些ESLint报错的代码。 {"editor.codeActionsOnSave": {"source.fixAll.eslint": true,"eslint.autoFixOnSave": true} }

下半年跨境电商全球市场持续扩大,掌握测评自养号技术将迎来新机遇

2024年跨境电商在下半年有望继续保持稳健增长&#xff0c;市场将更加国际化、便捷化和智能化&#xff0c;为消费者和卖家带来更多机遇和发展空间。 全球化市场持续扩大&#xff0c;随着全球市场的进一步开放和互联网的普及&#xff0c;跨境电商将继续拓展到更多的国家和地区。消…

一篇文章教你正确解锁 代理ip 的使用方式,包含两个实战案例

目录 一、引言 二、代理IP基础知识 1、代理IP的定义 2、代理IP的分类 3、代理IP的获取 三、代理IP的正确使用方式 1、选择合适的代理IP 2、配置代理IP 3、代理IP的轮换与验证 4、遵守法律法规和道德规范 四、实战案例一&#xff1a;使用代理IP进行网络爬虫 1、获取…

Pytorch张量的数学运算:矩阵运算

文章目录 一、基础运算二、矩阵的特殊运算1、矩阵的转置1.1、语法1.2、示例1.2.1、二维矩阵转置1.2.2、更高维度的张量转置 2、方阵的行列式2.1、计算行列式2.2、示例&#xff1a;使用PyTorch计算行列式 3、方阵的迹4、方阵的逆4.1、计算矩阵的逆4.2、使用PyTorch计算逆矩阵 二…

【C++】RapidJSON 设置支持 std::string,防止编译报错

问题 rapidjson 创建 json 数据&#xff0c;使用 std::string 字符串进行赋值&#xff0c;编译时&#xff0c;抱一堆错误 .... rapidjson/include/rapidjson/document.h:690:5: note: candidate expects 0 arguments, 1 provided [build] make[2]: *** [main/CMakeFiles/ma…

软考-系统集成项目管理中级-新一代信息技术

本章历年考题分值统计 本章重点常考知识点汇总清单(掌握部分可直接理解记忆) 本章历年考题及答案解析 32、2019 年上半年第 23 题 云计算通过网络提供可动态伸缩的廉价计算能力&#xff0c;(23)不属于云计算的特点。 A.虚拟化 B.高可扩展性 C.按需服务 D.优化本地存储 【参考…

6款支持国产系统电脑使用的办公软件,满足信创用户办公需求

随着信息技术的飞速发展&#xff0c;信创成为国家发展的重要战略方向。信创用户在办公过程中&#xff0c;对于软件的安全、稳定、易用性要求越来越高。今天给大家分享6款支持国产系统电脑使用的办公软件&#xff0c;这些软件不仅功能强大&#xff0c;而且能够满足信创用户的多样…

[dvwa] CSRF

CSRF 0x01 low 跨站&#xff0c;输入密码和确认密码直接写在url中&#xff0c;将连接分享给目标&#xff0c;点击后修改密码 社工方式让目标点击短链接 伪造404页&#xff0c;在图片中写路径为payload&#xff0c;目标载入网页自动请求构造链接&#xff0c;目标被攻击 http…

算法汇总啊

一些常用算法汇总 算法思想-----数据结构动态规划(DP)0.题目特点1.【重点】经典例题(简单一维dp&#xff09;1.斐波那契数列2.矩形覆盖3.跳台阶4.变态跳台阶 2.我的日常练习汇总(DP)1.蓝桥真题-----路径 算法思想-----数据结构 数据结构的存储方式 : 顺序存储(数组) , 链式存储…

基于SpringBoot+MYSQL+Vue的学生读书笔记系统

学生读书笔记共享平台设计 目录 1、前言介绍 2、主要技术 3、数据库设计 4、部分截图 5、源码获取 1、前言介绍 本论文主要论述了如何使用JAVA语言开发一个读书笔记共享平台 &#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;采用B/S架构&#xff…