LlaMA 3 系列博客 基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (一)
基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (二)
基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (三)
基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (四)
基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (五)
基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (六)
基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (七)
基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (八)
基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (九)
基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (十)
相关文章 第二篇:MySQL安装与配置(基于小皮面板(phpstudy))_配置小皮面板-CSDN博客
第六篇:MySQL图形化管理工具_datagrip百度百科-CSDN博客
下载资源 博主给你打包好了安装包,在网盘里,只有几Mb,防止你下载到钓鱼软件
快说谢谢博主(然后心甘情愿的点个赞~😊)
SQLyog.zip
安装流程 ①下载好压缩包后并解压
②打开文件夹,双击安装包
③选择语言Chinese,你想练练外语的话选其它三个也可以
④按下面的步骤,途径6个窗口,进行10步操作,完成SQLyog的安装
使用教程 1.注册 第一次打开,肯定会让你注册,注册码博主也放在压缩包里面了
2.连接MySQL 连接前请确认MySQL是否开启!
【新建】->输入连接的名字(随你取)->【确定】
3.连接用户 看图吧,图说的很清楚了(其实就填一个密码,root数据库的默认密码没改过的话就是root,如果改过的话,当然是填你改后的密码啊!)
密码查看
4.完成连接 当然我们会习惯性点一下测试连接,弹一个successful窗口
测试完就点【连接】吧->然后点【是】
5.开始使用 连接完成后可以看到主界面已经把root数据库加载进来了
(1)创建数据库 (2)创建表 可以看见,拥有图形化界面后,与MySQL的交互变得极为便利,省去了许多繁琐的命令
(3)操作表 选中想要操作的表【鼠标右键】->【打开表】
(4)删除操作 删除库或是删除表,都是一样的,选中库/表后右键,在菜单中找到相应的删除选项
写文不易,只为分享知识对您产生帮助 觉得有帮助就点个赞吧,祝你开心,么么😙~
🔥 个人主页:空白诗 🔥 热门专栏:【JavaScript】 文章目录 🌿 引言一、 `let` 和 `const` - 变量声明的新方式 🌟📌 `var`的问题回顾📌 `let`的革新📌 `const`的不变之美 二、 Arrow Functions - 箭头函数,简洁之美 ✨📌 语法精简📌 普通函数与`this`的动态绑定📌 箭头函数与静态`this`绑定适用场景注意事项 📌 小结 三、 Template Literals - 字符串模板,插值新体验 💬📌 基础插值📌 多行字符串与保留格式📌 表达式与函数📌 标签化模板字面量📌 小结 四、 Default Parameters - 参数默认值,告别undefined ❓📌 基本用法📌 复合默认值与逻辑判断📌 注意事项与实践建议📌 小结 总结 🌿 引言 ES6,作为ECMAScript 2015的简称,标志着JavaScript编程语言的一个重要进化节点。它不是渐进的变化,而是一次飞跃式的更新,为开发者带来了一系列强大的新特性与语法糖,极大提升了代码的简洁性、可读性和运行效率。从新的变量声明方式let与const,到优雅的箭头函数、模板字符串,再到让对象操作更为灵活的解构赋值与增强的对象字面量,ES6的每项改进都旨在让JavaScript适应日益复杂的应用场景,同时保持其作为脚本语言的活力与魅力。本文是深入探索这些核心特性的起点,为你铺开一条通向高效、现代JavaScript编程实践的道路。
一、 let 和 const - 变量声明的新方式 🌟 在ES6之前的JavaScript世界,var作为声明变量的主力军,虽功不可没,却也因其变量提升(variable hoisting)和函数作用域(function scope)的特性,给开发者带来了不少困惑和潜在错误。随着ES6的登场,let和const的引入如同一股清流,为变量管理领域带来了革新与严谨性。
📌 var的问题回顾 变量提升(Variabe Hoisting): 当你在函数内部使用var声明一个变量时,这个声明会被JavaScript引擎默默地“提升”到当前作用域的最顶部。尽管这不会提升变量的赋值操作,但会导致在声明前访问变量时不会抛出ReferenceError错误,而是输出undefined。这种机制有时会导致难以预料的结果,尤其是在涉及条件或循环时。
function illustrateVarHoist() { console.
遇到问题 在mac中安装python后,输入python 显示zsh: command not found: python
因为是用homebrew安装的,已知:
Python has been installed as
/opt/homebrew/bin/python3
解决 当您在 macOS 中安装 Python 后,可能会出现路径问题,导致命令行工具无法识别 python 命令。根据您提供的 Python 安装路径,您可以尝试以下方法:
更新 .zshrc 或 .bash_profile 文件:
如果您正在使用 zsh 作为默认 shell,请打开 .zshrc 文件,并添加以下内容:
export PATH="/opt/homebrew/bin:$PATH" 如果您正在使用 bash 作为默认 shell,请打开 .bash_profile 文件,并添加以下内容:
export PATH="/opt/homebrew/bin:$PATH" 保存更改并退出文本编辑器。
运行以下命令以应用更改:
source ~/.zshrc # 如果您使用 zsh 作为默认 shell source ~/.bash_profile # 如果您使用 bash 作为默认 shell 现在,您应该能够在终端中输入 python3 来调用 Python 3.x 版本:
python3 如果您希望使用 python 而不是 python3 来调用 Python 3.
1. 认证流程 双向认证流程说明:
客户端发起连接
客户端首先向服务器发送ClientHello消息,其中包含以下信息: 支持的协议版本和加密套件列表客户端随机数 服务器响应
服务器响应客户端的ClientHello消息,并发送ServerHello消息,其中包含以下信息: 服务器选择的协议版本和加密套件服务器随机数服务器证书链 客户端验证服务器证书
客户端验证服务器证书链的有效性,包括检查证书是否由受信任的CA签发、证书是否有效以及证书中的主机名是否与服务器的主机名匹配。客户端发送客户端证书(如果需要)
如果服务器要求客户端进行身份验证,客户端会将自己的证书和客户端KeyProof消息发送给服务器。客户端KeyProof消息包含客户端使用服务器公钥加密的预主密钥。服务器验证客户端证书(如果需要)
服务器验证客户端证书的有效性,类似于客户端验证服务器证书的过程。服务器还会使用客户端公钥解密客户端KeyProof消息中的预主密钥。双方计算共享会话密钥
客户端和服务器使用各自的预主密钥、客户端随机数和服务器随机数来计算共享的会话密钥。客户端发送ChangeCipherSpec消息
客户端向服务器发送ChangeCipherSpec消息,指示服务器开始使用共享会话密钥加密通信。服务器发送ChangeCipherSpec消息
服务器向客户端发送ChangeCipherSpec消息,指示客户端开始使用共享会话密钥加密通信。双方发送ApplicationData消息
客户端和服务器可以使用共享会话密钥加密和解密ApplicationData消息,其中包含应用程序数据。 2. 客户端Nginx配置 server { listen 25300 http2; http2_body_preread_size 256m; access_log /var/log/nginx/client/access.log; error_log /var/log/nginx/client/error.log; location / { grpc_pass grpcs://127.0.0.1:25400; grpc_ssl_certificate ca/client.crt; # 客户端证书 grpc_ssl_certificate_key ca/client.key; # 客户端私钥 grpc_ssl_trusted_certificate ca/server-ca.crt; # 可信服务端CA证书 grpc_ssl_verify on; # 开启双向认证 grpc_ssl_verify_depth 2; # 证书验证深度 proxy_http_version 1.1; grpc_set_header x-ptp-session-id "00000000000000010000000000000001"; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; } } 3. 服务端Nginx配置 server { listen 25400 ssl http2; http2_body_preread_size 256m; ssl_certificate ca/server.
一、建设背景 冶金行业因其特殊的生产环境和工艺要求,对安全生产、环境保护以及质量监控等方面有着极高的要求。因此,将视频智能监控技术引入冶金行业,不仅有助于提升生产效率,更能有效保障生产安全,降低事故风险。
二、方案概述 冶金行业生产过程中涉及众多关键环节,如冶炼、浇铸、轧制等,这些环节都需要进行严格的监控和管理。旭帆科技TSINGSEE青犀推出智慧冶金AI+视频智能分析解决方案,可以实现对这些关键环节的实时监控,针对重点危险作业区域的安全着装、人员行为、物体状态以及环境风险进行实时识别,使生产作业过程得到可视化监管,及时发现并处理异常情况,确保生产过程的顺利进行。
三、功能特点 1、可视化监管
炉前操作、高温区域、危险作业区等,通过安装耐高温摄像机和高清晰度监控设备并统一接入到视频智能汇聚平台EasyCVR视频监控系统,实时传输生产现场的画面,管理人员可以清晰观察到生产现场的情况、设备运转状态及人员作业情况,及时发现设备故障与人员违规/危险行为,避免生产事故的发生,为安全生产提供有力保障。
视频汇聚管理:智慧安防监控EasyCVR视频管理平台能在复杂的网络环境中,将工厂/车间各区域前端监控设备统一集中接入与汇聚管理;视频监控:对接入各线路视频监控画面进行调阅查看,包括对接入线路的所有监控点进行实时视频预览、视频轮巡、语音对讲、云台控制、视频抓录、视频检索回放等视频控制操作;多协议接入:支持国标GB/T28181协议、RTMP、RTSP/Onvif协议、海康Ehome、海康SDK、大华SDK、华为SDK、宇视SDK、乐橙SDK、萤石云SDK等;24小时监控:平台支持7*24小时实时高清视频监控,能同时播放多路监控视频流,视频画面1、4、9、16个可选,支持自定义视频轮播;流媒体分发:能对外分发RTMP、RTSP、HTTP-FLV、WebSocket-FLV、HLS、WebRTC、ws-fmp4、http-fmp4等视频流,支持在多浏览设备上观看;系统运维管理:高清可视化视频监控平台EasyCVR还具备权限/用户/角色管理、设备分级分组管理、鉴权管理、服务器集群等管理能力。 2、智能分析算法的应用
利用TSINGSEE青犀AI智能分析网关V4/AI算法中台的先进的图像处理技术和智能分析算法,对监控画面进行实时分析,实现对异常事件的自动识别和报警,提高监控效率和准确性。
1)安全帽/反光衣/工作服/工帽/口罩佩戴检测:支持自动检测作业区人员是否按照规范着装,如安全帽、工作服、工帽、口罩佩戴等,并能抓拍和告警;
2)人员违规行为检测:支持自动检测人员抽烟、打电话、玩手机、摔倒、闯入危险区域、聚集、徘徊、越界等行为,并能抓拍和告警;
3)睡岗/离岗检测:关键岗位上的人员值守非常重要,通过睡岗离岗检测算法对人员工作行为进行监督,并及时抓拍和推送告警信息;
4)环境安全风险检测:支持识别各种消防隐患,包括烟雾、火焰识别、消防通道堵塞等,系统将抓拍并上报告警记录;
5)烟雾传感器:智能分析网关V4还支持物联网环境传感器的接入,如烟雾探测器、温湿度传感器等,系统可采集和统计设备上传的数据与报警信息,并以可视化图表进行展示。
3、录像存储与回放
视频汇聚系统EasyCVR视频管理平台支持自定义时间段录像、播放设备录像等,支持录像云端存储、对象存储、本地存储、服务器存储、磁盘阵列等多种存储方式。通过将冶金厂的监控画面进行实时录像与存储,以便后续查阅和分析。通过回放功能,可以追溯生产过程中的各个环节,为事故调查和质量改进提供依据。
4、级联共享
支持通过GB28181协议将数据上传至上级监控中心,也能级联下级平台,实现视频汇聚管理与协同监管。
5、联动报警与应急响应
将视频监控系统与报警系统、消防系统等进行联动,当监控到异常情况时,自动触发报警装置,及时通知相关人员进行处理。同时,通过应急响应机制,可以快速组织救援力量,降低事故损失。
四、总结与展望 智慧冶金EasyCVR视频智能监控技术在冶金行业的应用,不仅提高了生产效率和质量,更保障了安全生产。随着技术的不断进步和应用场景的不断拓展,视频智能监控将在冶金行业中发挥更加重要的作用。
钉钉简单的推送钉消息 一、钉钉准备工作 首先进入钉钉开放平台 你得有企业内部微应用或者小程序 没有创建的话去看我另一篇文章有说明
钉钉开放平台创建企业内部H5微应用或者小程序-CSDN博客
看不懂话也可以参考官方文档:创建应用 - 钉钉开放平台
二、开发的准备工作 1.pom的导入
<!-- 钉钉SDK --> <dependency> <groupId>com.aliyun</groupId> <artifactId>dingtalk</artifactId> <version>1.2.15</version> </dependency> <dependency> <groupId>com.aliyun</groupId> <artifactId>alibaba-dingtalk-service-sdk</artifactId> <version>2.0.0</version> </dependency> 2.配置文件(yml配置文件)
#钉钉信息 dingtalk: corpid: dingxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx appkey: dingxxxxxxxxxxxxxxxx appsecret: 89QA-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxxx agentid: 2xxxxxxxxx 这里的配置信息是你的应用信息(在钉钉后台-应用管理)
三、代码实现 添加工具类 获取钉钉AccessToken
/** * 钉钉工具类 * @date 2023-07-07 9:30 */ @Slf4j @Component public class DingTalkUtil { @Value("${dingtalk.appKey}") private String appKey; @Value("${dingtalk.appSecret}") private String appSecret; /** * 获取钉钉AccessToken * * @return */ public String getAccessToken() { try { DingTalkClient client = new DefaultDingTalkClient("
目录 实现方式1. shape2. ViewOutlineProvider3. CardView4. 第三方库5. GradientDrawable和RoundedBitmapDrawable6. 自定义Drawable 实现方式 button按钮、ImageView、自定义View等各种控件或者布局常常需要这样的样式:
下面是多种方式去实现圆角效果(圆角背景或者圆角边框),各有千秋吧:
1. shape 在drawable文件夹中新建一个shape.xml文件,在其中设置背景颜色和圆角半径即可:
<?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <!-- 设置背景颜色 --> <solid android:color="#02B4FE" /> <!-- 设置边框颜色和粗细 --> <stroke android:color="#02B4FE" android:width="1dp"/> <!-- 圆角半径 --> <!-- 统一设置四个角 --> <corners android:Radius="5dp" /> <!-- 单独设置四个角 --> <corners android:topRightRadius="5dp" android:bottomRightRadius="5dp" android:topLeftRadius="5dp" android:bottomLeftRadius="5dp"/> </shape> 在布局或者控件中设置背景即可:
android:background="@drawable/shape" 特点:一种新的配置就需要重新创建文件,在xml中配置,可以设置背景或者边框,可以单独设置某个角。
2. ViewOutlineProvider Android 5.x引入的新特性,用于实现View的阴影和轮廓
view.setOutlineProvider(new ViewOutlineProvider() { @Override public void getOutline(View view, Outline outline) { // 设置圆角半径为5 outline.
你好,我是赵兴晨,97年文科程序员。
在生产服务器的Nginx配置中,我们总会遇到形形色色的配置方案。你是否曾注意到root和alias指令的巧妙应用?是否对那些五花八门的location匹配规则感到好奇?
今天,咱们来聊聊Nginx配置中root和alias以及location的详细使用。
root与alias
root:指定web的跟目录,在定义location的时候,文件的绝对路径等于root+location
server { listen 80; server_name chensir.ink; location / { root /data/nginx/html/pc; } location /about { # 必须要在html目录中创建一个about目录才可以访问,否则报错。 root /opt/html; } } 新建关于 location /about 的静态资源目录
# 创建目录 mkdir -p /opt/html/about # 写入index.html echo about > /opt/html/about/index.html 加载Nginx配置文件并访问
systemctl reload nginx alias:定义路径别名,会把访问的路径重新定义到其指定的路径,文档映射的另一种机制;仅能用于location上下文,此指令使用较少。
示例
server { listen 80; server_name chensir.ink; location / { root /data/nginx/html/pc; } # 注意:about后不要加斜杠。使用alias时,如果URI后面加了斜杠, # 则下面的路径配置必须加斜杠,否则会导致403错误。 location /about { # 当访问/about时,会显示/opt/html/about目录下的内容。 alias /opt/html/about; } } 加载Nginx配置文件并访问
Hadoop Hadoop是一个由Apache基金会所开发的分布式系统基础架构,其核心设计包括分布式文件系统(HDFS)和MapReduce编程模型;Hadoop是一个开源的分布式计算框架,旨在帮助用户在不了解分布式底层细节的情况下,开发分布式程序。
它通过利用集群的力量,提供高速运算和存储能力,特别适合处理超大数据集的应用程序。
Hadoop生态圈 Hadoop生态圈是一个由多个基于Hadoop开发的相关工具、库、应用程序、平台和服务组成的生态系统。这个生态系统旨在解决大规模数据处理问题,为用户提供从数据存储、处理到分析的全面解决方案。以下是对Hadoop生态圈主要组成部分的清晰归纳:
核心组件: HDFS(Hadoop Distributed File System):Hadoop分布式文件系统,用于存储大规模数据集。HDFS将数据划分为多个块,并将这些块分布在集群中的多个节点上,以提供高可靠性和高可扩展性。
MapReduce:一种编程模型,用于处理和分析存储在HDFS中的大规模数据集。MapReduce将复杂的数据处理任务划分为两个阶段:Map阶段和Reduce阶段,从而实现并行处理。
资源管理器:
YARN(Yet Another Resource Negotiator):YARN是Hadoop 2.x版本引入的资源管理器,用于管理集群中的资源(如CPU、内存等)。YARN允许用户在同一集群上运行不同类型的应用程序,如MapReduce、Spark等。
数据存储与仓库: HBase:一个基于Hadoop的分布式、版本化的非关系型数据库,用于存储结构化数据。HBase提供类似于Bigtable的列式存储,并支持实时读写操作。
Hive:一个基于Hadoop的数据仓库工具,允许用户使用SQL语言查询HDFS中的数据。Hive将SQL查询转换为MapReduce作业,并在Hadoop集群上执行。
数据处理与分析: Spark:一个开源的大规模数据处理引擎,支持批处理、流处理、交互式查询和机器学习等多种应用场景。Spark基于内存计算,比MapReduce更加高效。
Pig:一个高级数据处理语言,允许用户编写简单的查询来处理大规模数据集。Pig将查询转换为MapReduce作业,并在Hadoop集群上执行。
分布式协调服务:
ZooKeeper:一个分布式协调服务,用于维护Hadoop集群的状态信息,如节点健康状态、数据块位置等。ZooKeeper还提供命名服务、配置管理等功能。
其他工具与服务: Flume:一个用于收集、聚合和传输大量日志数据的工具,可以将数据发送到HDFS、HBase等存储系统中。
Sqoop:一个用于在Hadoop和结构化数据存储(如关系型数据库)之间传输数据的工具。Sqoop可以将数据从关系型数据库导入到HDFS中,也可以将HDFS中的数据导出到关系型数据库中。
Hadoop生态圈通过整合这些组件和工具,为用户提供了一个完整的大数据解决方案。用户可以根据需求选择适合的组件来构建自己的大数据处理和分析系统。
起源 Hadoop起源于Apache Nutch项目,始于2002年,是Apache Lucene的子项目之一。在受到Google的MapReduce论文的启发后,Doug Cutting等人开始尝试实现MapReduce计算框架,并将其与NDFS(Nutch Distributed File System)结合,最终发展成为Hadoop。
特点 可靠性:假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。
高效性:以并行的方式工作,通过并行处理加快处理速度。它能够在节点之间动态地移动数据,并保证各个节点的动态平衡。
可伸缩性:可以在可用的计算机集簇间分配数据并完成计算任务,这些集簇可以方便地扩展到数以千计的节点中。
高容错性:能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
低成本:依赖于社区服务,因此它的成本比较低,任何人都可以使用。
二、Hadoop 三大核心组件 HDFS(分布式文件系统) -—— 实现将文件分布式存储在集群服务器上
MAPREDUCE(分布式运算编程框架) —— 实现在集群服务器上分布式并行运算
YARN(分布式资源调度系统) —— 帮用户调度大量的 MapReduce 程序,并合理分配运算资源(CPU和内存)
X和2.X版本的区别 Hadoop1.x:由MapReduce(计算及资源调度)、HDFS(数据存储)和Common(辅助工具)组成
Hadoop2.x:由MapReduce(计算)、Yarn(资源调度)、HDFS(数据存储)和Common(辅助工具)组成
在Hadoop1.x版本的时代,Hadoop中的MapReduce同时要处理业务逻辑运算和资源的调度,耦合性较大,于是在2.X版本增加了Yarn,负责接管资源调度的工作。
1、HDFS 定义 HDFS是一个分布式文件系统,可以将大型数据集分成多个块,并将这些块存储在不同的计算机上,以提高数据的可靠性和可扩展性。
它具有高容错性的特点,设计用来部署在低廉的硬件上,并提供高吞吐量来访问应用程序的数据。
HDFS放宽了POSIX的要求,可以以流的形式访问文件系统中的数据。
特点 优点: (1)高容错性
①数据自动保存多个副本。它通过增加副本的形式,提高容错性。
一、算法的原理 1、需要先标定相机的内参和外参。
当前测试使用的主要是虚拟的测试视频,所一相机的内参都是相同,相机内参为
float a[4] = { 160,-0.002,0,0 }; 相机的内参模型参见:Fisheye Calibration Basics- MATLAB & Simulink- MathWorks 中国
参数说明:
a0=160 a2=-0.002 a3=0 a4=0 根据上述的参数就可以自己算图像的坐标点和相机坐标点的对应坐标,计算公式如下所示:
真实图像上的坐标点(个人理解就是校正后的图像坐标点)
系数
相机的内参(参见上述的数据a0=160、a2=-0.002、a3=0、a4=0)
半径
根据相机的内参数据就可以计算语言图像的矫正图像,一下是相机的矫正图像效果图像
在根据相机的外参,由于使用的虚拟视频,相机的安装位置和角度都是已知的无需标定,实际的应用中需要测量安装高度和标定相机的角度,有相机的外参就可以计算出相机的旋转矩阵,当前相机的外参数数据和对应的旋转矩阵如下所示:
#前视 25, 0, 0 1.00000000,-0.000D0000,0.0000000,0.00000000,0.906307757,0.422618270,0.0000000,0.422618270,0.906307757 #后视 25, 180, 0 -1.00000000,0.00000000,-8.74227766e-08,-3.694646372e-08,0.906307757,0.422618270,7.92319454e-08,0.422618270,-0.906307757 #左视 25, 90, 0 -4.37113883e-08,0.0000000,-1.00000000,-0.422618270,0.906307757,1.847323182e-08,0.906307757,0.422618270,-3.961597272e-08 #右视 25, -90, 0 -4.37113883e-08,0.00000000,-1.00000000,-0.422618270,0.906307757,1.847323182e-08,0.906307757,0.422618270,-3.961597272e-08 上述的角度到旋转矩阵的计算函数如下所示:
js_initAngle(Data->data_0_F, 25, 0, 0); js_initAngle(Data->data_0_B, 25, 180, 0); js_initAngle(Data->data_0_L, 25, 90, 0); js_initAngle(Data->data_0_R, 25, -90, 0); 根据旋转矩阵就可以计算出对应的俯视图像,测试的俯视图像如下所示:
前视 左视 右视
前言 Dify 是一个易于使用的 LLMOps 平台,提供了多种应用程序类型和模板,包括 AI 聊天机器人、代码转换器、SQL 生成器、新闻内容编写、创意脚本等。团队使用 Dify,可以基于 GPT-4 等模型快速「开发+部署」 AI 应用程序并进行可视化操作,还可以将程序对外进行发布。Dify 这个名字来源于 Define 和 Modify 这两个词,Dify 可以理解为 Do it for you,代表了帮助开发人员不断改进其 AI 应用程序的愿景。
Dify ai官网: https://dify.ai
Dify ai githhub: https://github.com/langgenius/dify
帮助文档: https://docs.dify.ai/v/zh-hans/getting-started/install-self-hosted
首次,第一次初始化,需要设置管理员邮箱账户以及密码: 然后 账户+密码,登录Dify: 进入之后,我们可以看到菜单栏目: 构建你的本地的知识库:
把你的文件拖到下方框里也可以或者说上传上去也可以的
下一步,点击保存并处理,待平台响应 100%:
上述,一个简易的个人知识库搭建完成,输入源就是私有化文件或其他知识内容。
其中,大模型(LLM)的选择性也是有很多:
构建人工智能体 Agent 智能体是一种能够自主决策和行动的软件实体,它可以与环境和用户进行交互,实现任务的自动化处理。在本项目中,我们将使用智能体作为智能助手的核心组件,负责处理用户的请求和生成响应。
构建智能体,输入名称跟描述内容,设置相应功能:
单独创建 Agent 或 执行工作流:
选择你需要的内置工具:
后端调用API:
Agent构建历程 四种Agent程序:
• Simple reflex agents(简单反射)
• Model-based reflex agents(基于模型)
• Goal-based agents(基于目标)
• Utility-based agents(基于效用)
书接上回,要是小伙伴不能成功安装Android Studio,可以参考下面的方法
android studio2024最新详解(完全小白)安装-运行第一个程序-CSDN博客
先声明,我不是什么大学生,纯是喜欢编程,对着它我有无限的热情,所以一直在自学准备自主研发一款app。
回到正题,上面的课程如果看完了,并且没有其它问题,那么关于创建安卓程序咱们就开始吧
上篇的课程中我推荐大家安装的是2020版本的,然后我又花了点时间自主去尝试了2021到2023版本的,发现按照我上面那样的方法,2020到2021都没问题,但是2022到2023就有点超出我的当前的能力范围了,头都破了,就是不能解决2022到2023版本运行出现的问题。
那这里呢,我使用的就是2021年,感觉软件,用越新越好(意味着功能增多)。ok,那我们开始吧,创建安卓工程,下面我手把手教大家一步一步来。
1,打开Android Studio,新建工程
2,就到了这样页面了
一切没问题的话,就finish,但是请记住你当前api的的版本号哦
3,就进入到了主页面,等它自己配置自己加载完毕,然后对应gradle配置慢的问题我的上篇文章有非常非常详细的解决方法,但在这里,为了逻辑通顺,我重新进行手动配置,
找到gradle配置
然后进行手动配置,前面的文章已经介绍过方法了,这里就不要太多重复了,我就直接把配置的流程截下来就好了
ok,那么一切没问题,点击最右下的apply(应用),接着ok,jdk的选项暂时不要动,这是个伏笔哦。配置好了后,返回到主页面,点击再次尝试。
然后接着就是等它配置好了,出现这种问题可以暂时忽略,因为我发现它也没有阻碍到程序的任何运行问题。
然后切换文件
如果按照我的流程下来没有任何问题,并且成功进入到了上图的页面,恭喜您,您离您的第一个安卓程序已经迈出一大步了。
接着,创建安卓模拟器,这里我使用的模拟器,下面是流程
然后点击我图中英文,这里和你们可能会不同,因为我已经创建了一个模拟器了,如果你没有,如果你没有,就找到该英文点击就好了
接着,手机的话,就随便乱搞一个吧,在此步之前,如果你前面有下载了一个叫sdk的软件,把它给卸载了,不然Android Studio会识别不出的,如果没有,那么安装即可,
第一次记得要同意选项,不然不会给你下载的,下载结束后,就可以启动了。
然后就是一个重头戏了,下载好后,应该就是这样了
请注意模拟器的api,然后我们先启动模拟器,就是点那个播放按钮,然后就可以点击run,运行程序了,就那个绿色的播放按钮,此时可能会出现这样的问题
如果出现了这样的问题,就先看你模拟器的api是多少,接着咱们进入app文件进行修改,
修改后,你会发现程序不能运行了,就那个绿色的run按钮变灰色了,这时修改后,我们就点它
ok,然后绿色run按钮又亮了,此时我们就可以运行了,然后运行后,又会报错,大概是这样
此时感谢该博主的方法
Android Studio运行时出现Algorithm HmacPBESHA256 not available_android studio algorithm hmacpbesha256 not availab-CSDN博客
就把jdk版本换成16或者18,像我下面这样设置,同样先打开设置
还是刚刚我们配置gradle那里,这里总结一下就是说,gradle版本必须与jdk对应,对应关系也可以看下面的链接文章,感谢该博主
grdle 的安装与配置 、gradle和jdk版本对应关系_gradle版本-CSDN博客
jdk下载镜像地址这里提供一个华为镜像的
索引 openjdk-本地 (huaweicloud.com)
当前gradle(这个上面就看到你gradle的版本号的)对应的当前jdk版本配置好后,就切换然后应用,然后点ok,它就会自动修改配置了,此时我们重新运行,稍微耐心等一下,然后就会看到我们的模拟器有出现helloworld了!
至此完结!
最后,该设置并不是一次就好,该方式比较繁琐的是,你每次创建一个新的项目,都要去手动配置一个gradle,包括jdk和修改文件的api,就这三个要点,也不是很多,个人开发的话,感觉勉强算及格了吧。毕竟都是自己上网东找找西找找搞来的。哈哈哈
一闪论文是目前市场上一款非常靠谱的论文写作工具,不仅可以帮助用户快速完成论文撰写,还能对文章进行查重降重,确保内容原创性。从用户的角度来看,一闪论文确实是一个非常方便、实用的工具,能够大大提高写作效率,节省时间成本。
首先,一闪论文提供了丰富的模板和格式选择,用户可以根据自己的需求和要求轻松定制论文的格式,避免因排版问题而浪费时间。其次,一闪论文内置了多种文献检索和引用功能,用户可以方便地查找相关文献并进行引用,提高了论文的可信度和权威性。再者,一闪论文支持多人协作编辑,用户可以邀请同事或朋友一起合作完成论文,大大提高了团队合作的效率。
最重要的是,一闪论文还具有强大的查重降重功能,能够自动检测文本的重复率,帮助用户排除抄袭内容,确保文章的原创性。这对于许多学生和研究人员来说是非常重要的,毕竟在学术领域,原创性是至关重要的。通过一闪论文的查重功能,用户可以放心地提交论文,避免遭受抄袭的风险。
综上所述,一闪论文是一个非常靠谱、实用、方便的写作工具,不仅能帮助用户快速完成论文撰写,还能确保文章的原创性,是值得推荐的一款软件。对于那些需要写作的人来说,一闪论文绝对是一个不可或缺的助手。
最终样式
代码实现
# 可编辑折线+写入文字 成功 # 问题: 设置字体类型和加粗和字体为微软雅黑,是只改了字母和数字的字体,中文没变化 pip install pptx_ea_font 这个库可以解决这个问题 import pandas as pd import pptx_ea_font import matplotlib.pyplot as plt from pptx import Presentation from pptx.util import Inches,Pt,Cm from pptx.chart.data import ChartData,CategoryChartData from pptx.dml.color import RGBColor from pptx.enum.chart import XL_CHART_TYPE,XL_LABEL_POSITION,XL_LEGEND_POSITION,XL_TICK_MARK path='E:\\13 python 下侧双x轴折线图\\' df = pd.read_excel(path+'双x轴测试数据1.xlsx', sheet_name='Sheet4') # 修改为你的文件名和工作表名 #标题 tf_text='双x轴测试' # 中间文本 tm_text='''测试情况: 问题设置字体加粗和微软雅黑,只改了字母和数字的字体,中文没变化''' # 三引号,自动换行 # 轴 td_text=' 2023年 2024年' # 注释 tdd_text='''*注释 数据来源:胡编乱造 数据范围:1年有365个日出''' #轴字体 def zhou_font(tf,text_down): para = tf.
普通版本(暴力枚举) 题目链接:1. 两数之和 - 力扣(LeetCode)
//自己写的for循环 class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { vector<int> res; bool flag = true; for(int i = 0;i<nums.size();i++) { for(int j = i+1;j<nums.size();j++) { if(nums[i] + nums[j] == target) { res.push_back(i); res.push_back(j); flag = false; break; } } if(flag == false) { break; } } return res; } }; //官方提供的优化后的for循环 class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { int n = nums.
这个漏洞造成原因是因为配置不当的问题,没有非常复杂的原理。这个漏洞一般位于内网之中,能利用好Redis漏洞往往能够顺利拿下服务器权限,所以也还是很重要的。
目录
Redis简单介绍
Redis未授权访问漏洞介绍
利用条件
影响版本
漏洞检测
漏洞危害
Redis写入webshell
原理
利用条件
利用过程
Redis写入SSH公钥
原理
利用条件
利用过程
Redis写入计划任务反弹shell
原理
利用条件
利用过程
Redis未授权访问漏洞防御
总结
Redis简单介绍 Redis是一款内存高速缓存的数据库,是一款K-V型数据库,它的所有键值都是用字典来存储的。其中它的value支持多种数据类型,包括String、List、Set、Zset和Hash。
Redis未授权访问漏洞介绍 利用条件 Redis默认情况下绑定在127.0.0.1:6379,在没有进行采用相关的策略,如添加防火墙规则避免其他非信任来源ip访问,就会将Redis服务暴露在公网上;并且Redis默认情况是空密码连接在服务器以root身份运行Redis时 这将导致任意用户可以访问目标服务器下未授权访问Redis以及读取Redis数据。
影响版本 Redis2.x-5.x
漏洞检测 一般使用nmap工具对目标机器进行扫描。如果发现主机的6379端口是对外开放的,并且目标主机开放外网访问的情况下,就能够在本机使用redis-cli服务连接目标服务器。
redis-cli -h 服务器ip 漏洞危害 攻击者无需通过认证就可以访问内部数据,导致敏感信息泄露攻击者可以恶意执行flushall来清空所有数据攻击者可通过eval执行lua代码,或通过数据备份功能往磁盘写入后门文件 eval()是用来执行一个字符串表达式,并返回表达式的值。
lua是一种脚本语言,用C语言编写,源码开放,其设计目的是为了嵌入程序应用,为应用程序提供便利的拓展功能。
由于Redis以root权限运行,攻击者可以给root账户写入SSH公钥文件,直接通过SSH登录目标服务器 Redis写入webshell 原理 Redis为了持久化连接,将数据保存在了本地。那么攻击者可以将后门代码作为value值,写入web目录下的.php文件,就可实现php的webshell。
利用条件 当存在未授权访问漏洞时,可以直接通过Redis连接靶机;如果靶机正好开启web服务;且攻击者知道了web目录的路径且该路径具有文件读写的权限。 这时候攻击者可以通过Redis写入webshell。
利用过程 以下为举例:
config set dir /var/www.html/ #切换到web写入目录 config set dbfilename zcc.php #设置写入木马的文件名 set xxx "\n\n\n<?php @eval($_POST['zcc']);?>\n\n\n" #写入恶意代码到内存中,这里的换行符是必要的,因为用Redis写入文件会自带一些版本信息,如果不换行可能执行不了 save #将内存中的数据导出到磁盘 Redis写入SSH公钥 原理 在Redis数据库中插入一条数据,将本机的公钥作为value,然后通过修改数据库的默认路径为/root/.ssh(ssh文件夹)和默认的缓冲文件authorized.keys(公钥文件),把缓冲的数据保存在文件里,这样就可以在服务器端的/root/.ssh下生成一个授权的key。
利用条件 通过漏洞成功连接Redis之后;且Redis服务以root权限执行;以及安全模式protected-mode处于关闭状态;服务器开启了ssh服务,且允许密钥登录。将密钥等配置信息存放在/root/.
效果:
数据替换前 : 替换数据后:
实现代码
import collections.abc from pptx import Presentation from pptx.util import Cm,Pt import pyodbc import pandas as pd from pptx.chart.data import CategoryChartData from pptx.enum.chart import XL_TICK_LABEL_POSITION import datetime from dateutil.relativedelta import relativedelta from pptx.dml.color import RGBColor import os from openpyxl import load_workbook import logging import matplotlib as plt import datetime from datetime import timedelta import calendar from lxml import etree from pptx.oxml.ns import qn import numpy as np from pptx.
本篇会加入个人的所谓鱼式疯言
❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言
而是理解过并总结出来通俗易懂的大白话,
小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的.
🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人能接受我们这个概念 !!!
前言 学完了神奇的 栈和队列 , 接下来要来到我们 歇斯底里,颠仆流离的 二叉树 环节 , 相信学过 二叉树的 小伙伴,应该 对这个数据结构不陌生吧 , 是不是恐怖如斯 啊, 下面就让我们看看它到底有多恐怖吧 💥 💥 💥
目录 树的初识
二叉树的初识
二叉树的特性以及应用
二叉树的存储
一. 树的初识 1. 树是概念 树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。
把它叫做树是因为它看起来像一棵 倒挂的树,也就是说它是 根朝上 ,而 叶朝下的 。它具有以下的特点:
有一个特殊的结点,称为 根结点 ,根结点没有 前驱结点
除根结点外,其余结点被分成M(M > 0)个互不相交的集合 T1、T2、…、Tm,其中每一个 集合Ti (1 <= i <=m) 又是一棵 与树类似的 子树。每棵子树的根结点 有且只有一个前驱,可以有0个或多个后继
树是 递归 定义的。`
注意:树形结构中,子树之间不能有交集,否则就不是树形结构
2. 树的结构 节点的度 : 一个节点含有子树的个数称为该节点的度; 如上图 : A 的度为 6
MySQL数据库创建啥的,没啥要说的!自行配置即可!
1.pom.xml文件,右键,add Maven Project …………(将其添加为Maven)【下述截图没有add Maven Project 是因为目前已经是Maven了!)
2.前端Vue:【Terminal操作】
cd 【项目名称】 cd vue npm i npm run serve 成功运行提示:
点开对应的URL,就是你心心念叨的Vue页面了!