首页/文章/ 详情

Abaqus与DeepSeek(3)_本地知识库

1月前浏览614

在使用 DeepSeek 或其他大语言模型 (LLM) 时,其回答逻辑会依据是否使用本地知识库而有所不同。

简单地说,当没有结合本地知识库时,DeepSeek完全依赖于其预训练知识来生成回答,这些知识来自模型的训练数据——该数据通常是公开的、通用的、在构建模型之前收集的大规模文本数据。DeepSeek通过分析输入的上下文,利用其训练中内化的大量语言模式、语义知识和世界知识来生成回答,对于专业领域,有可能无法精准满足特定需求的查询。

当 DeepSeek 结合本地知识库时,其回答逻辑会发生转变,增加了对外部数据的依赖。本地知识库可以是自己的文档、数据库、外接API结果、文件集 合等结构化或非结构化的数据。当用户提问时,程序会先在本地知识库找到问题相关的内容,把问题和相关内容一起传给 DeepSeek 作为参考,在这种情况下,DeepSeek 的回答是除了使用其内置的预训练知识外,还会将问题与预设的本地知识库结合,使得回答更具有专业。可以大致分成以下步骤:1)解析问题:程序解析分析问题;2)查询本地知识库:根据问题提取或搜索本地知识库里的相关信息;3)融合回答:DeepSeek 模型综合本地知识库中提取的内容和自身的预训练知识,生成更贴合实际需求的答案。

现在,我进行一项测试,将 DeepSeek 应用于 Abaqus。这属于一个相对专业化的特定领域。

我向 DeepSeek 提出了一个请求:帮我写一段 Python 代码,实现在 Abaqus中创建长宽高分别为200mm、20mm、25mm的长方体几何模型。接下来,对比 DeepSeek 在使用和不使用本地数据库时的回答。

1. 不使用本地知识库














































import abaqusfrom abaqus import *#from abaqus_constants import *# 创建一个新的模型数据库mdb = abaqus.createMDB()# 创建一个新的模型my_model = mdb.models['iges_part']# 创建一个Part,类型为Solid(实体)my_box_part = my_model.Part(name='my_box_part', dimensionality=THREE_D, type=DEFORMABLE_BODY)# 定义长方体的尺寸(长度、宽度、高度)length = 200.0width = 20.0height = 25.0# 创建长方体几何my_box_part.SketchOptions.setValues(side=RIGHT)my_box_part.Box(length=length, width=width, height=height)# 访问生成的几何面并进行分组(可选)faces = my_box_part.facesedges = my_box_part.edges# 创建顶部面和底部面的面集 合if 'top_faces' not in my_box_part.sets:    top_faces = faces.findAt([(0.5*length, 0.5*width, height)])    my_box_part.Set(name='top_faces', faces=top_faces)if 'bottom_faces' not in my_box_part.sets:    bottom_faces = faces.findAt([(0.5*length, 0.5*width, 0)])    my_box_part.Set(name='bottom_faces', faces=bottom_faces)# 创建前后面、左右面的面集 合if 'front_faces' not in my_box_part.sets:    front_faces = faces.findAt([(0.5*length, width, 0.5*height)])    my_box_part.Set(name='front_faces', faces=front_faces)if 'back_faces' not in my_box_part.sets:    back_faces = faces.findAt([(0.5*length, 00.5*height)])    my_box_part.Set(name='back_faces', faces=back_faces)if 'left_faces' not in my_box_part.sets:    left_faces = faces.findAt([(00.5*width, 0.5*height)])    my_box_part.Set(name='left_faces', faces=left_faces)if 'right_faces' not in my_box_part.sets:    right_faces = faces.findAt([(length, 0.5*width, 0.5*height)])    my_box_part.Set(name='right_faces', faces=right_faces)# 创建所有边的集 合if 'all_edges' not in my_box_part.sets:    all_edges = edges[:]    my_box_part.Set(name='all_edges', edges=all_edges)# 进入交互式模式以便查看几何模型my_model.viewports['Viewport: 1'].setValues(displayedObject=my_box_part)

从 DeepSeek 提供的 Python 代码来看,其逻辑结构是这样的:

1.导入必要的模块;

2.创建数据库;

3.创建模型;

4.生成零件;

5.为零件的面生成集 合(尽管实际上并没有要求它执行这一步)。

从代码流程上看,这样的逻辑似乎是合理的。然而,当在 Abaqus 中运行该 Python 脚本时,却发现存在许多问题:

1.报错:没有模块 abaqus_constants。

2.报错:没有createMDB 属性。

3.了解一些 Abaqus/CAE 创建长方体方式的应该知道,在Abaqus中创建长方体通常是先创建草图,再拉伸生成长方体。它这里直接用了 Box() 函数。因此也是有问题的。

从 DeepSeek 提供的代码来看,它主要依赖于其预训练知识来生成回答。虽然该回答展现出对 Python 语言的理解,但对 Python 在 Abaqus 中的具体应用并不熟悉,不了解 Abaqus 的API。

2. 使用本地知识库

现在开始创建本地知识库,并在其中上传三本与 Abaqus Python 相关的资料。

使用 DeepSeek结合本地知识库,再次发送同样的请求。
























from abaqus import *from abaqusConstants import *import sketchimport partmyModel = mdb.Model(name='MyFirstModel')# 创建一个名字为RectangleSketch的草图,设置草图大小为200x200单位mySketch = myModel.ConstrainedSketch(name='RectangleSketch', sheetSize=200.0)# 在草图中绘制矩形mySketch.Line(point1=(00), point2=(50))mySketch.Line(point1=(50), point2=(55))mySketch.Line(point1=(55), point2=(05))mySketch.Line(point1=(05), point2=(00))# 创建一个三维变形体部件,设置拉伸深度为10单位myPart = myModel.Part(name='MyRectangle', dimensionality=THREE_D, type=DEFORMABLE_BODY)myPart.BaseSolidExtrude(sketch=mySketch, depth=10.0)# 创建名为MyViewport的视口,并设置其位置和尺寸vport = session.Viewport(name='MyViewport')vport.setValues(origin=(100100), width=600, height=400)# 将部件设为当前视图显示对象,并调整渲染效果vport.setValues(displayedObject=myPart)#vport.partDisplay.renderStyle = SHADED# 调整视口以适应部件大小vport.fitView()

从提供的代码逻辑来看,其创建长方体的过程是先创建二维草图,然后通过拉伸草图生成长方体,这符合 Abaqus 中创建长方体的标准流程。结合本地知识库后,似乎 DeepSeek 此次的回答更加靠谱。

然而,运行该 Python 脚本时仍会出现错误,这个错误与 Abaqus/CAE 视口中 Python 脚本的调用有关。尽管如此,忽略该脚本错误后,仍然能够在 Abaqus/CAE 中成功创建长方体几何模型,但遗憾的是,这个长方体的尺寸并未按照我提供的参数进行设置。

这里仅是我在测试 DeepSeek 与 Abaqus 结合时,发现使用和不使用本地知识库的差异,给大家做个参考。当然并不是使用了本地知识库就一定能让回答更具专业性,这里面还涉及到对本地知识库解析,还有模型参数的微调。此次用的是32b模型,更小的模型询问一下 Abaqus 是什么软件、可以应用在什么领域这些还行,当要它做点实际的事,我发现一直在胡言乱语。

运行上述代码时,还需要在python文件前面添加,这个问题,两种情况下都没提及。


# -*- coding: mbcs -*-

需要注意的是,使用本地知识库时,如果使用联网搜索,为了增强搜索效果,程序在请求联网搜索时将用户的问题和本地知识库的相关内容(例如检索结果或上下文数据)一并传递到外部搜索接口服务,本地知识库就有可能泄露。特别是对于企业来说,更需要谨慎。


来源:仿真技术汇
AbaqusDeform通用python渲染Origin
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-02-19
最近编辑:1月前
SimulateTech
硕士 签名征集中
获赞 76粉丝 53文章 81课程 2
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈