ChatGPT | 分割Word文字及表格,优化文本分析

深入理解RecursiveCharacterTextSplitter:文本分割的递归魔法 阅读详情

知识库读取Word内容时,由于embedding切片操作,可能会出现表格被分割成多个切片的情况。这种切片方式可能导致“列名栏”和“内容栏”之间的Y轴关系链断裂,从而无法准确地确定每一列的数据对应关系,从而使得无法准确知道每一列的数据汇总。

用下面表格为例子:

级数

T1

T2

T3

T4

T5

T6

T7

子等

T1.1-1.2

T2.1-2.2

T3.1-3.3

T4.1-4.3

T5.1-5.2

T6.1-6.2

T7

专业名称

实习

工程师

助理

工程师

工程师

高级

工程师

资深

工程师

专家级

工程师

首席

工程师

学历

本科及以上

本科及以上

本科及以上

本科及以上

本科及以上

硕士及以上

硕士及以上

工作经验

1年以内(兼职)

1-3年

3-5年

5-8年

8-10年

10-15年

15年以上

级数

T1

T2

T3

T4

T5

T6

T7

子等

T1.1-1.2

T2.1-2.2

T3.1-3.3

T4.1-4.3

T5.1-5.2

T6.1-T6.2

T7

专业名称

实习

工程师

助理

工程师

工程师

高级

工程师

资深

工程师

专家级

工程师

首席

工程师

分值

60-64分

65-69分

70-79分

80-89分

90-94分

95-97分

98-100分

直接演示一下本文代码运行的对比结果,分别展示“无优化”和“有优化”的问答结果,标绿框的是回答错误的:

本文帮助提高文本处理和向量化的效率,以下是对每个步骤的详细说明,详见md_embedding.py源码:

  1. 分离文字和表格:将原始Word文档中的文字内容和表格分开保存。将文字内容保存为纯文本的Markdown文件,而将表格单独保存为多个只包含Markdown表格的Markdown文件。例如,一个Word文档包含2个表格,即生成1个纯文字Markdown文件,2个纯表格的Markdown文件。
  2. 切片并向量化处理:对于多个Markdown文件,按照固定的大小切片,确保切片大小是大于Markdown表格的体积,以确保包含完整的表格。然后对这些切片进行向量化处理。

这种方法的优点是能够有效地分离文字和表格,并通过切片和向量化处理提高处理效率。通过将表格转化为向量表示,可以更方便地进行后续的计算和分析。同时,由于切片时保证了表格的完整性,可以避免表格被切断导致信息丢失的问题。

有优化的embedding的源码, md_embedding.py 如下:

import os
from langchain.embeddings import OpenAIEmbeddings
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.vectorstores import Chroma
from langchain.document_loaders import TextLoader
from langchain.text_splitter import CharacterTextSplitter
from langchain.document_loaders import DirectoryLoader
from langchain.document_loaders import UnstructuredFileLoader
from langchain.document_loaders import UnstructuredWordDocumentLoader

from docx import Document



def convert_word_tables_to_markdown(file_path, output_folder):
    def convert_table_to_markdown(table):
        markdown = ""
        for row in table.rows:
            cells = [cell.text.replace('\n', '').replace('|', '|') for cell in row.cells]
            markdown += "|".join(cells) + "|\n"
        return markdown

    doc = Document(file_path)
    
    # 创建输出文件夹(如果不存在)
    os.makedirs(output_folder, exist_ok=True)
    
    # 将每个表格转换为Markdown并保存为单独的TXT文件
    for i, table in enumerate(doc.tables):
        markdown = convert_table_to_markdown(table)

        filename_without_ext=os.path.splitext(os.path.basename(file_path))[0]
        # 将Markdown表格写入TXT文件
        output_file_path = os.path.join(output_folder, filename_without_ext+f"_output_{i+1}.md")
        with open(output_file_path, "w", encoding='utf-8') as file:
            file.write(markdown)
            
    return output_folder



def remove_tables_save_as_md(file_path, output_file_path):
    doc = Document(file_path)
    
    # 移除所有表格
    for table in doc.tables:
        table._element.getparent().remove(table._element)

    # 获取剩余内容的纯文本,并构建Markdown格式字符串
    content = [p.text.strip() for p in doc.paragraphs if p.text.strip()]
    markdown_content = '\n\n'.join(content)

    # 保存为MD文件
    with open(output_file_path, 'w', encoding='utf-8') as file:
        file.write(markdown_content)
        
    return output_file_path


abs_docx_path='D:\CloudDisk\OpenAI\博客的源码\Docx表格优化\带表格DOCX.docx'
embedding_folder_path=os.path.dirname(abs_docx_path)+'\\md_txt'
os.makedirs(embedding_folder_path,exist_ok=True)

convert_word_tables_to_markdown(abs_docx_path,embedding_folder_path)
remove_tables_save_as_md(abs_docx_path,embedding_folder_path+'\\'+os.path.basename(abs_docx_path)+'.md')


# 1 定义embedding
embeddings = OpenAIEmbeddings(openai_api_key='aaaaaaaaaaaaaaaaaa',
                              openai_api_base='bbbbbbbbbbbbbbbbbbbbbbbbbb',
                              openai_api_type='azure',
                              model="text-embedding-ada-002",
                              deployment="lk-text-embedding-ada-002",
                              chunk_size=1)

# 2 定义文件 
loader = DirectoryLoader(embedding_folder_path, glob="**/*.md")
pages = loader.load_and_split()

# 按固定尺寸切分段落
text_splitter_RCTS = RecursiveCharacterTextSplitter(
    chunk_size = 500,
    chunk_overlap = 100
)

split_docs_RCTS = text_splitter_RCTS.split_documents(pages)
for item in split_docs_RCTS:
    print(item)
    print('')

#写入向量数据库
print(f'写入RCTS向量数据库')
vectordb = Chroma.from_documents(split_docs_RCTS, embedding=embeddings, persist_directory="./MD_RCTS/")
vectordb.persist()

 无优化的embedding的源码,docx_embedding.py 如下:

import os
from langchain.embeddings import OpenAIEmbeddings
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.vectorstores import Chroma
from langchain.document_loaders import UnstructuredWordDocumentLoader

# 1 定义embedding
embeddings = OpenAIEmbeddings(openai_api_key='aaaaaaaaaa',
                              openai_api_base='bbbbbbbbbbb',
                              openai_api_type='azure',
                              model="text-embedding-ada-002",
                              deployment="lk-text-embedding-ada-002",
                              chunk_size=1)

docx_file_path="D:\CloudDisk\OpenAI\博客的源码\Docx表格优化\带表格DOCX.docx"

# 2 定义文件 
loader = UnstructuredWordDocumentLoader(docx_file_path)
pages = loader.load_and_split()

# 按固定尺寸切分段落
text_splitter_RCTS = RecursiveCharacterTextSplitter(
    chunk_size = 500,
    chunk_overlap = 100
)

split_docs_RCTS = text_splitter_RCTS.split_documents(pages)
for item in split_docs_RCTS:
    print(item)
    print('')

#写入向量数据库
print(f'写入RCTS向量数据库')
vectordb = Chroma.from_documents(split_docs_RCTS, embedding=embeddings, persist_directory="./Word_RCTS/")
vectordb.persist()
 

 问答测试 chat_qa.py:

import time
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.vectorstores import Chroma
from langchain.chains import RetrievalQA
from langchain.chat_models import AzureChatOpenAI

  
def getQuestionList():
    question_list=[
    '级数=T6,专业名称是?',
    '要求硕士学历有哪些级数?',
    '分值大于等于70是哪些级数?',
    '可以兼职的是什么级数?',
    '需要工作经验满5年以上是哪些专业?',
    '首席工程师要求什么学历,工作经验多少年',
    '自上而下的原则,是指?',
    '现场答辩,是指?',
    '级数=T3,专业名称是?',
    '级数=T4,专业名称是?',
    ]

    return question_list

embeddings = OpenAIEmbeddings(openai_api_key='aaaaaaaaaaaaaaaaa',
                              openai_api_base='bbbbbbbbbbbbbbbbbbbbbbb',
                              openai_api_type='azure',
                              model="text-embedding-ada-002",
                              deployment="lk-text-embedding-ada-002",
                              chunk_size=1)


openAiLLm = AzureChatOpenAI(openai_api_key='aaaaaaaaaaaaaaaaaaaaaaaaaaaa', #注意这里,不同 API_BASE 使用不同 APK_KEY
                              openai_api_base="bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
                              openai_api_version='2023-03-15-preview',
                              deployment_name='lk-gpt-35-turbo-16k',
                              temperature=0.9,
                              model_name="gpt-35-turbo-16k",
                              max_tokens=300)

print('------r---r---r----')

word_RTCS = Chroma(persist_directory="./Word_RCTS/", embedding_function=embeddings)
word_qa = RetrievalQA.from_chain_type(llm=openAiLLm,chain_type="stuff",retriever=word_RTCS.as_retriever(),return_source_documents = False) 

md_RTCS = Chroma(persist_directory="./MD_RCTS/", embedding_function=embeddings)
md_qa = RetrievalQA.from_chain_type(llm=openAiLLm,chain_type="stuff",retriever=md_RTCS.as_retriever(),return_source_documents = False)

#print(qa_RTCS)#查看自定义Prompt的结构体内容
for i in range(0,len(getQuestionList())):
    question_text=getQuestionList()[i]
    
    # 进行问答
    wordchat = word_qa({"query": question_text}) 
    wordquery = str(wordchat['query'])
    wordresult = str(wordchat['result'])
    
    print("问题: ",wordquery)
    print("无优化-结果:",wordresult)
    time.sleep(1)#每次提问间隔1s
    
    
    csvchat = md_qa({"query": question_text}) 
    csvquery = str(csvchat['query'])
    csvresult = str(csvchat['result'])
    #print("MD问题: ",csvquery)
    print("有优化-结果:",csvresult)
    print('----------------------------------------')

    time.sleep(1)#每次提问间隔1s
    

Langchain使用之 - 文本分割Splitter 通过实际代码例子介绍如何使用Lanchain的文本分割器对文本进行分割 阅读详情

相关推荐

[解锁文本提取的艺术:深入Unstructured数据加载器的使用技巧]

Unstructured提供了一套强大的工具来处理非结构化文档数据,结合LangChain可以进一步简化文本提取任务。对于需要处理大量文档数据的开发者,是一个值得探索的解决方案。Unstructured的官方文档LangChain官方文档。

afTFODguAKBF的博客 1234

langchain-chatglm上传word文档异常处理

最近LLM模型非常火,Langchain这个工具更有意思,让应用开发更加简单。于是就想着部署一下langchain-chatglm,体验一下大模型挂载知识库的畅快。部署过程耗时长,主要是环境安装,但总体还是很顺利的。但是一个word文档上传无法加载的问题耗费了好长时间处理。

aizaiyishunjian的博客 5111

从DeepSeek到Excel/Word:解决Markdown表格复制粘贴错列问题

数据格式转换是数据处理中的基础环节,其核心原理在于不同系统间数据结构与编码方式的差异。Markdown作为一种轻量级标记语言,使用管道符定义表格结构,而Excel和Word等办公软件则依赖制表符或逗号分隔的纯文本或富文本格式进行数据交换。当从DeepSeek等AI工具复制渲染后的Markdown表格时,剪贴板可能丢失列分隔符等关键结构信息,导致粘贴后出现错列或格式混乱。这种转换问题的解决,对于提升数据迁移效率和保证信息完整性具有重要技术价值,尤其在数据分析、报告生成等需要跨平台协作的场景中。通过理解Mark

weixin_34176694的博客 434

一文搞懂Langchain Document Loader(二)

theme: orange Transform Loaders:将数据从特定格式加载到文档格式 转换加载器(Transform Loaders:)就像上文提到的的TextLoader一样 - 它们将输入格式转换为我们的文档格式。LangChain中有越来越多的转换加载器,包括但不限于以下几种: CSV Email HTML Markdown Microsoft Word/PowerPo...

DynmicResource的博客 1953

ChatGPT在学术写作中的高效应用与伦理边界全解析

在人工智能技术快速发展的背景下,大型语言模型已成为提升工作效率的重要工具。其核心原理是基于海量文本数据的概率预测,通过深度学习生成连贯文本。这一技术为学术研究带来了显著价值,尤其在文献处理、语言润色和思路拓展等方面能有效辅助研究者。在应用场景上,它可贯穿研究全流程,从开题构思、文献综述到论文润色与审稿回复。然而,必须明确其辅助定位,防范事实性错误和学术不端风险。本文聚焦ChatGPT这一典型工具,探讨如何通过精准的提示词工程和严格的质量控制流程,构建高效可控的AI协作模式,在提升学术写作效率的同时,坚守学术

diyu8056的博客 359

大语言模型与ChatGPT:从原理到实战的完整指南

大语言模型是基于Transformer架构的深度学习模型,通过海量数据训练,学习语言的统计规律和模式。其核心原理是自注意力机制,能够动态捕捉文本中的长距离依赖关系。随着模型参数规模的扩大,涌现出代码生成、逻辑推理、多轮对话等复杂能力,为自然语言处理带来了革命性突破。在工程实践中,大语言模型通过API集成或本地部署,广泛应用于内容创作、编程辅助、数据分析等场景。本文聚焦于ChatGPT这一现象级应用,深入剖析其产品化策略、使用技巧与局限性,并探讨开源与闭源模型的选型考量。对于开发者而言,理解提示词工程和检索增

anqiu4023的博客 362

ChatGPT导出Word文档的技术实现与避坑指南

使用预定义的样式或创建自定义样式,让文档更专业。"""定义或修改文档中的样式。"""# 1. 自定义“标题1”样式(如果不存在则获取默认的)heading1_font.name = '微软雅黑' # 设置中文字体heading1_font.color.rgb = RGBColor(0, 0, 139) # 深蓝色# 段落格式heading1_para.space_before = Pt(24) # 段前间距heading1_para.space_after = Pt(12) # 段后间距。

2600_94959859的博客 404

ChatGPT Windows桌面版:DirectML本地推理与Instant响应原理

大型语言模型(LLM)的端侧部署正从云端API调用转向操作系统原生集成,其核心在于低延迟推理与硬件加速协同。DirectML作为Windows统一AI加速接口,使轻量级量化模型(如Phi-3-mini)可直接调度GPU Tensor Core,实现毫秒级token生成;而Instant响应并非营销话术,而是端到端5.3ms/token的实测延迟指标,依托内存映射加载、零拷贝IPC和流式预填充等系统级优化。该技术路径显著提升AI在日志分析、文档处理、设计辅助等本地工作流中的确定性与可用性,尤其适配Window

weixin_33693070的博客 480

ChatGPT回答高效导出Word的技术实现与避坑指南

作为一名开发者,我经常使用ChatGPT的API来生成代码片段、技术文档甚至项目报告。但每次复制粘贴到Word里调整格式,都让人头大。段落没了、代码块糊成一团、列表缩进全乱……这简直是在浪费AI带来的效率提升。于是,我决定用Python写个自动化脚本,一劳永逸地解决这个问题。经过一番折腾和踩坑,终于整理出了一套比较成熟的方案,今天就来分享一下我的“避坑”心得和实现代码。

2600_94960149的博客 276

Codex合体ChatGPT:从响应式助手到执行式协作者的工程落地指南

AI智能体(Agent)正从概念走向真实办公场景,其核心已不再是单纯的语言模型能力,而是任务理解、工具调用与交付物演进的闭环执行能力。Codex作为面向知识工作的智能体操作系统,通过Sites(可交互动态站点)、Annotations(像素级精准编辑)和Plugins(角色原生插件)三大支柱,将自然语言指令转化为可执行、可验证、可迭代的工作流。它解决的不是‘能不能答’,而是‘能不能干、干得稳、干得准’——尤其在销售分析、尽调报告、跨部门协作等强流程、高合规场景中,展现出远超传统LLM的工程确定性与业务嵌入深

virusswb的专栏 360

ChatGPT提示词工程:从指令到对话流的三层控制体系

提示词工程不是模板套用,而是对大语言模型生成机制的系统性干预。其本质是基于上下文窗口限制、token预测原理和注意力机制,通过角色锚定、任务切片与输出塑形三阶控制,实现对模型推理路径、知识激活与格式约束的精准调度。这一技术显著提升事实准确性、结构可控性与业务适配度,广泛应用于法律文书精读、数据分析报告生成、创意内容生产及专业学习资料整理等高价值场景。本文聚焦2026年实测有效的提示词底层逻辑与可复用操作框架。

weixin_34055787的博客 405

AI内容转Word文档:格式保留与高效转换指南

在技术文档编写和办公自动化场景中,Markdown到Word的格式转换是常见需求。结构化文档格式转换的核心原理是通过中间格式(如Markdown)保留原始内容语义,再通过工具链实现跨平台渲染。Pandoc作为文档转换的瑞士军刀,支持保留代码块、数学公式等特殊元素的转换,配合Word模板可实现样式一致性控制。对于AI生成内容(如DeepSeek/ChatGPT输出),采用分段提取和专用转换工具能显著提升格式保留度,特别适用于技术文档、学术论文等包含复杂排版的场景。VS Code插件和自动化脚本方案进一步优化了

weixin_33704591的博客 440

模板驱动型文档自动化:让Word/PDF生成变成填空题

文档自动化是企业知识复用与合规交付的核心能力,其本质是通过结构化模板实现内容变量注入、格式固化与批量渲染。相比AI生成易出错、低代码平台难控样式的局限,模板驱动方案以零误差、强一致、低门槛为技术价值,在投标书、合同、白皮书等高敏感度场景中成为金融、法律、咨询等行业首选。它不替代人工思考,而是将品牌规范、业务逻辑、排版规则沉淀为可复用的模板资产,支撑PDF/A-1a合规输出、离线渲染、动态水印等工程级需求,真正打通从数据到交付的闭环。

weixin_33946020的博客 333

技术科普:巧用 AI 导出鸭,掌握 ChatGPT 和 Gemini 删除井号方法

摘要: 本文针对AI生成内容中的Markdown井号问题,提供了两种解决方案:1) Prompt结构化指令法,通过在对话中明确要求不使用井号或替换格式,从源头避免问题;2) AI导出鸭插件法,通过浏览器插件批量清除已有文档中的井号标记,支持导出为Word/PDF等格式。两种方法分别适用于实时对话和后期批量处理场景,帮助用户快速获得纯净文本内容。(149字)

yuhulkjv335的博客 1225

SoC 验证老兵手册

《SoC验证老兵手册》摘要: 针对大型SoC系统级验证,手册提出Cache+DMA场景的高效验证方案。核心方法采用C测试用例(模拟Linux/RTOS真实场景)触发隐蔽bug,配合SV Checker精准捕捉硬件问题(如DMA读取脏缓存行)。特别强调验证方法论:C用例负责复杂行为模拟,SV专注RTL正确性检查;利用Linux天然并发性暴露硬件缺陷。手册还包含模拟面试攻防技巧,指出验证架构师需具备定义Stimulus/Checker边界的能力。终极判断标准:未通过Linux下Cache+DMA+SMP+中断测

元直的博客 1370

【AI Agent 实战】OpenClaw 全面解析 + 全平台一键部署教程(本地 AI 智能体)

本文收录于 AI 智能体 & 自动化实战系列,手把手带你从零部署本地可控的 AI 执行助手关键词:OpenClaw、AI Agent、本地 AI 部署、自动化助手、Docker 部署

爱人爱己,风生水起 7879

免费离线OCR工具PaddleOCR:截图、表格、PDF一键文字提取实战

OCR(光学字符识别)技术通过计算机视觉与深度学习算法,将图像中的文字转换为可编辑的文本数据。其核心原理在于利用训练好的神经网络模型,对图像进行文本检测和识别。这项技术的价值在于极大地提升了信息数字化的效率,解放了人力。在工程实践中,OCR广泛应用于文档电子化、数据录入、无障碍阅读以及自动化办公等场景。针对中文环境下的**表格识别**与**离线部署**需求,PaddleOCR凭借其开源免费、本地运行和高精度中文识别能力,成为解决截图、PDF及复杂表格内容提取的理想方案,尤其适合对数据隐私敏感或网络受限的环境

weixin_33778544的博客 400

车辆网络安全ISO/SAE 21434解读(一)概述

ISO/SAE 21434 《道路车辆 网络安全工程》是SAE和ISO共同制定的一项针对道路车辆的网络安全标准,它是一个面向汽车行业全供应链(OEM及各级供应商)的车辆网络安全管理指导文件

xiaoxiabang的博客 8425

PDF转Word失败原因揭秘:四类PDF体质与精准转换方案

PDF转Word不是简单的格式转换,而是涉及文档语义理解、布局还原与字体映射的复合技术问题。其核心在于PDF文件的底层结构差异:扫描件依赖OCR识别精度,原生文本PDF考验字体嵌入与数学公式解析能力,表格密集型PDF需视觉逻辑重建,加密PDF则受权限机制限制。真正影响转换质量的并非工具品牌,而是对PDF‘基因型’的准确识别与匹配——例如LaTeX导出PDF中的OMath对象、扫描件中的手写批注干扰、财务报表里的无线表格结构等。本文基于27款工具实测数据,从原理层揭示转换失败根源,并提供面向学生、科研人员与开

weixin_33875564的博客 423

AutoSAR系列讲解(实践篇)9.5-通信的数据映射

讲解了AppL中的数据与通信中的Signal的一个映射操作

雪云飞星的博客 1万+

信创服务器(麒麟 V10 SP3)安装 NVIDIA GeForce RTX 5070 驱动

本文介绍了在麒麟V10 SP3系统上安装NVIDIA RTX 5070显卡驱动的详细步骤。首先需要关闭nouveau驱动,安装必要的编译环境和工具,确保内核版本与kernel-devel完全一致。最后运行NVIDIA驱动安装程序,关键选择包括启用DKMS支持、编译模块、禁用32位兼容和nouveau驱动。整个流程适用于海光CPU和Blackwell架构GPU的国产操作系统环境。

猿小白的博客 676

ChatGPT为何标志AI革命‘开端之终结’?四大技术支点深度解析

大语言模型(LLM)作为人工智能认知智能跃迁的核心载体,其发展已从早期感知智能(如图像识别、语音转写)迈向具备推理、常识与多步规划能力的认知智能阶段。这一演进的关键临界点,在于模型是否实现价值对齐、长上下文理解、多模态融合与函数调用等工程化能力的系统集成。ChatGPT之所以被广泛视为‘AI革命开端之终结’,正因其首次将RLHF校准、128K上下文、视觉-文本跨模态理解及Function Calling等能力稳定落地,使AI从实验室工具转变为可嵌入真实业务流程的协作主体。它不单提升效率,更重构人机分工边界—

weixin_30824599的博客 378

Jetson nano 系列之2—板载摄像头IMX219启动

我选用的是亚博科技jetson nano的开发板。

驽马十驾,功在不舍;锲而不舍,金石可镂。 4274

金融文档文本转表格:NLP信息抽取实战指南

文本转表格是将非结构化自然语言转化为结构化数据的关键技术,其核心在于信息抽取的准确性与稳定性。基于NLP的字段级规则抽取,结合词性标注(POS)、依存分析与正则匹配,可规避大模型生成的不确定性风险,在金融等强合规场景中保障价格、人名、动作等关键字段的精确性。该方法强调预处理鲁棒性、语义切分合理性与多层校验机制,适用于PDF扫描件、尽调报告、会议纪要等真实业务文档,尤其适合需高确定性输出的金融文档结构化任务。

weixin_34293059的博客 282

优化YOLOv8检测精度:Damo-YOLO的RepGFPN特征融合技术解析【YOLOv8】

YOLOv8在结构上依旧延续了自YOLOv4以来的CSPNet(Cross Stage Partial Network)和FPN(Feature Pyramid Network)的设计,结合了PANet(Path Aggregation Network)来增强特征的多尺度表达。然而,随着目标检测任务的复杂性增加,如何更有效地融合不同层级的特征成为提升检测性能的关键。Damo-YOLO中的RepGFPN引入了重参数化的思想,通过在训练和推理阶段对特征融合模块进行结构优化,显著提升了检测效果。

博客 1583

Siemens SIMATIC软件二次开发:使用C#进行SIMATIC软件二次开发

通过使用OPC-UA通信协议和S7通信库,可以有效地在C#应用程序中与Siemens SIMATIC软件进行数据交换。OPC-UA提供了一个标准化的平台,而S7通信库则提供了直接访问PLC数据的能力。掌握这两种通信方式,将极大地增强在工业自动化领域的二次开发能力。在Siemens SIMATIC软件中,自定义功能块开发是实现二次开发的关键步骤之一。通过C#,可以创建高度定制化的功能块,以满足特定的控制需求。下面,我们将通过一个示例来展示如何使用C#开发一个自定义功能块。OPC-UA通信。

kkchenjj的博客 1415
上一篇: ChatGPT | 修改RetrievalQA推荐答案的数量
欧巴Godwin
欧巴Godwin 领域专家: 操作系统技术领域 领域专家: 操作系统技术领域
博客等级 码龄20年 9690粉丝 141原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值