自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(99)
  • 收藏
  • 关注

原创 Python项目推荐:文本相似度对比(附图形化界面)

计算一个指定的文件和一个指定的文件夹下面每一个文件的相似度计算一个文件下任意两个文件的相似度。

2021-03-08 12:37:11 2958 9

原创 Python多线程爬取百度贴吧

任务爬一个帖子内各个楼层的用户名,发表内容,时间,最后按照时间顺序排列各个元素重要步骤解析网页使用的是beautifulsoup解析,很方便很快捷!如果需要直接使用我的代码请查看class的名字是否相同,不同的直接修改即可!response = requests.get(spider_url, headers=headers).content soup = BeautifulSoup(response, "html.parser") # soup

2021-03-08 11:19:18 221

原创 Python实现对中文文本分句

问题实现对文本的分句,大致来说主要是以中文的句号、感叹、问号等符号进行分句。难点在于直接分句可能会造成人物说话的语句也被分开!步骤分段首先读取文本,文本读取后整体是一个字符串,每一个段之间是空白,所以分段之间按照空白分开来即可,最后存入一个paragraph_list,注意该list的下标就是段落的顺序号!其他的这里就不再多赘述!(可以查看最后的整体代码)分句首先拿到上面分好的paragraph_list,循环拿到每一段,然后对每一段直接按照分句规则(正则表达式)进行分句,参考该文章imp

2021-03-08 10:43:47 8354 3

原创 python操作minio中常见错误

错误4:'utf-8' codec can't decode byte 0xa1 in position 10: invalid start byte

2024-05-07 10:37:22 172

原创 Golang中四种gRPC模式

应用层传输安全(ALTS)是谷歌开发的一种相互验证和传输加密系统。它用于确保谷歌基础设施内 RPC 通信的安全。ALTS 类似于相互 TLS,但经过设计和优化,可满足 Google 生产环境的需要。使用ALTS作为传输协议创建gRPC的服务端和客户端;ALSTS是一个端到端的保护,具有隐私性和完成性;应用可以访问对等信息比如对等服务账户;支持客户端和服务端的认知;最小的代码更改就能使用ALTS;值得注意的是ALTS被全部发挥作用如果应用程序运行在CE或者GKE中。

2024-03-29 19:15:13 1186

原创 AI系统性学习—LangChain入门

LangChain是一个开源的Python库,它提供了构建基于大模型的AI应用所需的模块和工具。通过LangChain,开发者轻松地与大语言模型(LLM)集成,完成文本生成、问答、翻译、对话等任务。LangChain降低了AI应用开发的门槛,让任何人都可以基于LLM构建属于自己的创建应用。LLM和Prompt:LangChain对所有LLM大模型进行了API抽象,统一了大模型访问API,同时提供了Prompt提示模型管理机制。Chain:这些是对LLM或其他使用程序的调用序列。

2024-03-19 17:26:06 974

原创 AI系统性学习05—向量数据库

Qdrant是一个开源向量数据库,专为下一代AI应用程序设计。它是面向云原生的,并提供RESTful和gRPC API以管理嵌入。Qdrant的特性强大,支持图像、语音和视频搜索,以及与AI引擎的集成。向量数据库是一种专门设计用于高效存储和查询高维向量的数据库。在传统的OLTP和OLAP数据库中(如上图所示),数据以行和列的方式组织(这些被称为表),查询是基于这些列中的值进行的。

2024-03-18 17:07:03 1300

原创 AI系统性学习04—文本嵌入模型

文本嵌入(text embedding)是自然语言中的一个中重要概念,它的目标是将文本的词表示成固定长度的稠密向量,也称为词向量(word vector)。例如:Girl和Boy,Queen和King,Sport和Game这三对词都有相近的意思,所以他们文本向量的几何距离都比较接近。操作中,文本嵌入可以通过神经网络模型进行无监督学习得到,比如word2vec中的CBOW、SKIP-GRAM模型、GloVe等。这些模型通过大规模文本的统计信息来学习每个词的向量表示。

2024-03-18 15:31:02 1348

原创 AI系统性学习06—开源中文语言大模型

ChatGLM-6B的github地址:https://github.com/THUDM/ChatGLM-6BChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优化。

2024-03-18 08:29:33 405

原创 AI系统性学习03—ChatGPT开发教程

实际上,官网提供了python和node.js的sdk,因此在这里不做过多的赘余,针对类似Go语言,目前也有一些封装的SDK,以下是通过Go 的做出的演示:3、OpenAI API KEY&API 认证如果你有账号可以自己去创建这里的API KEY如果没有可以通过某宝直接搜API KEY购买即可,跳过注册账号的一步,不过仍然建议自己去申请账号然后获取KEY。OpenAI API使用API密钥进行身份验证。主要是通过http请求头设置前面提到的API KEY即可API认证例子输出如下4、O

2024-03-17 11:48:46 1139

原创 OpenAI开发中常见错误:OpenAIError和BadRequestError

在通过openai创建客户端必须要设置api key,如果你事先已经在本机的环境中设置未起效可以手动设置,注意手动设置时不要用下面的形式。

2024-03-17 11:48:02 2210 1

原创 AI系统性学习02-OpenAI官方提示工程

OpenAI官方提供了提示词工程指南。在这里将他们总结来指示LLM返回更好的结果。

2024-03-15 17:17:44 911

原创 AI系统性学习01- Prompt Engineering

基础LLM和指令微调LLM。基础LLM:假设你以“从前有一只独角兽”作为提示,基础的LLM可能会继续预测“生活在一个与所有的独角兽朋友的神奇森林中”。但是如果以"法国的首都是什么?,其回答可能为"法国的人口是多少?法国最大的城市是什么?。因为其训练的语料可能是有关法国国家的问答题目列表。指令微调LLM:指的是被训练来能够遵循特定指令的LLM。而这样的模型通常是在基础LLMs上,使用输入的指令、输出是其应该返回的结果来对其进行微调,要求它遵循这些指令。

2024-03-14 22:49:45 1001

原创 构建LangChain应用出现的TypeError错误

错误原因是引入ChatOpenAI的包不对,原始的引入是。即可,修改上面2处问题后,即可正确运行代码。

2024-01-04 15:33:52 1602

原创 macos下安装科研绘图软件Origin

科研人必备软件Origin,主要是考虑到很多期刊都要求绘制origin可编辑的图,所以有些时候必须用这个软件,但是这个软件macos并不支持,所以必须考虑其他的方案,我没有安装虚拟机,而是使用crossover。

2023-12-10 22:45:47 4076 3

原创 debian9换源存在的问题

0% [Working] Failed to fetch

2023-10-15 18:03:41 1270

原创 报错解决MaxRetryError(“HTTPSConnectionPool(host=‘huggingface.co‘, port=443):xxx“)

那我的机器就是没有数据传输过来,当然前提是你自己的服务器一定要有网络连接(可以尝试ping www.baidu.com来检测自己机器是否有网络)。首先造成这种错误的原因主要是因为你的服务器没有办法连接huggingface的原因,你可以直接在你的服务器上尝试能否直接ping。就可以运行你的代码了,但是这里运行的时候有个小问题,

2023-10-03 20:08:50 18515 5

原创 Golang使用消息队列(RabbitMQ)

最近在使用Golang做了一个网盘项目(类似百度网盘),这个网盘项目有一个功能描述如下:用户会删除一个文件到垃圾回收站,回收站的文件有一个时间期限,比如24h,24h后数据库中记录和oss中文件会被删除,在之前的版本中,可以使用定时任务来检查数据库记录中删除时间来判断是否删除,但是这不是最佳的,因此考虑如何基于RabbitMQ来实现这个功能。

2023-08-20 20:15:19 1113

原创 Golang使用MinIO

最近在使用Golang做了一个网盘项目(学习),文件存储一直保存在本地(各厂商提供的oss贵),所以就在思考怎么来处理这些文件,类似的方案很对hdfs、fastdfs,但这其中MinIO是最近几年比较火热的一个项目,所以尝试使用这个试一试。

2023-08-18 17:10:25 1629

原创 解决Debian10乱码以及远程连接ssh的问题

为了使用xshell或者finallshell这样的工具,我们有必要来正确配置一哈ssh文件。在正式配置文件之前,确定自己已经下载ssh,如果没有就使用apt-get进行下载。输入上述命令后会进入到以下页面【然后输入reboot重启即可。看见上面的都done了即可。

2023-07-31 15:44:04 615

原创 Docker安装etcd、etcd-keeper

docker ps。

2023-06-09 18:17:48 2350 1

原创 Docker易遗忘命令记录

【代码】Docker易遗忘命令记录。

2023-06-09 17:36:50 607

原创 误操作zsh或bash_profile导致conda不能使用

我当时因为把整个跟conda有管的全部删除了,所以直接使得conda命令也不能使用了,你可以通过以下命令查看成功输出的话,表示你的conda没问题,你可以直接跳到第5步,如果这一步显示,那说明你的conda命令被从环境中删除了,需要重新配置一哈环境,很简单。

2023-06-03 10:54:37 1171

原创 消息认证码以及数字签名的认识

从哈希函数入手,将需要发送的数据进行哈希运算,将哈希值和原始值一并发送,需要在进行哈希运算的时候引入加密的步骤。在user1对数据进行哈希运算的时候引入一个密钥,让其参与哈希运算,生成的散列值一并发送。这一行为一般是有消息的接受者来完成的,但也可以由需要验证消息的第三方来完成。生成签名就是对消息内容计算数字签名的值。相比于上面的RSA加密方式,如果你的message比较大,需要设置一个合适的bits,但是椭圆曲线不需要这样的问题。在进行这一步的前提是你已经生成了这样一对的RSA的密钥对(以文件的形式)。

2023-05-12 14:42:06 2431 1

原创 后端常用的加密算法及hash运算

对称加密加密算法分组长度密钥长度DES8字节8字节3DES8字节24字节AES16字节16字节、24字节、32字节分组模式分组模式推荐条件EBC不推荐CBC常用方式初始化向量(长度等于明文分组长度)OFB不推荐CFB不推荐CTR推荐,效率高初始化向量(长度等于明文分组长度)简单来说,就是通过哈希算法,我们可以得到一段标识的唯一信息。

2023-05-10 17:36:10 2047

原创 简单理解内存分页机制

因为系统空间是所有进程共享的,所以对应的页表也是共享的,而大多数进程并不会申请大量的用户空间内存,用不到的页表也不会被分配,所以进程的页表是。想象一下下面这样的场景,因为没有页表机制,所以类似如下图这种段式访问是直接作用于物理内存上的,那如果现在一个新的进程需要11M的空间,按照目前的内存划分情况,即使总的空闲区域的内存空间是能满足需要的,但是由于物理内存的连续性,造成了这种。,然而硬件32位的地址总线只能寻址4GB的物理内存,在多进程的操作系统上,每个进程能够映射到的物理页面远远不足2GB。

2023-04-26 20:37:51 1282

原创 Golang程序报错:fatal error: all goroutines are asleep - deadlock

先分析可能发生阻塞的地方;【尤其是管道读取的地方】从主函数入手,依次分析并理清阻塞处的逻辑执行顺序;针对一块阻塞处,判断其写操作会不会在其后面,程序永远到不了;理清调用链逻辑,确定协程开启的地方。【开启协程的地方不会阻塞,立即往下执行】如果实在还无法执行,将你的代码post到评论区,让大家一起帮你解决!

2023-04-12 20:10:44 1411 1

原创 Golang中是否可以无限开辟协程以及如何控制协程的数量?

例如使用一个有缓冲的channel。当channel满了的时候,其会发生阻塞,避免一直不断的开辟goroutine。按照上面的方式使得能够一直运行。其实实际上,执行的只有3个(还有一个main goroutine)。这些资源实际上是用户态程序共享的资源,所以大批的goroutine最终引发灾难不仅仅是自身,还会关联其他运行的程序。,直到之前三个中有一个完成了任务,阻塞接触,才开辟一个新的goroutine。首先我们在linux操作系统上运行以下这段程序,看会发生什么?我们知道goroutine具备。

2023-04-11 11:26:21 1810

原创 Golang:impossible type switch case或cannot have dynamic type

这段代码的目的是Phone和Car分别识别Usb接口,但是Phone有一个自己的私人方法Call,然后Car有一个私人方法Run。相通过类型的断言搭配switch在Factory函数中进行指定函数的调用。

2023-04-10 16:21:10 810

原创 使用Golang完成一个内存局部性测试实验

上述是验证特征的一段代码。如果step选择3,第一次遍历会被遍历的nums下标为0、3、6、9、12……,第二次遍历会遍历的nums下标为1、4、7、10、13……,第三次遍历会遍历的nums下标为2、5、8、11、14……。那么三次外循环就会将全部遍历完整个nums数组。

2023-03-30 09:41:14 946

原创 初识传输协议Protocol Buffer

由于protobuf并没有直接支持支持go语言需要我们手动安装插件。3.将生成的protoc-gen-go可执行文件,放在对应目录下。1、序列化后的体积相比于json和xml很小,适合网络传输;1.获取proto包(Go语言的proto API接口)4、序列化反序列化速度很快,快于json的处理速度;1、应用范围不够广(相比于xml和json);开发场景:常用于前后端的数据传输。3、消息格式升级和兼容性还不错;2、二进制格式导致可读性差;2、支持跨平台的多语言;劣势:编解码比较耗时;开发场景:前端/网页。

2023-03-24 14:43:32 1124

原创 基于Golang实现多人在线游戏的AOI算法

游戏的AOI(Area of Interest)算法应该算作游戏的基础核心了,许多逻辑都是因为AOI进出事件驱动的,许多网络同步数据也是因为AOI进出事件产生的。因此,良好的AOI算法和基于AOI算法的优化,是提高游戏性能的关键。为此,需要为每一个玩家设置一个AOI,当一个对象状态发生改变时,需要将信息广播给全部玩家,那些AOI覆盖到的玩家会收到这条广播消息,从而做出对应的响应状态。服务器的玩家或NPC状态发生变化时,将消息广播到附近的玩家。

2023-03-23 19:26:16 1554

原创 Golang如何比较两个slice是否相等?

(Golang中map的底层实现原理)仅对元素做浅拷贝,这就要求散列表里面的键在散列表的整个生命周期内必须保持不变。因此正常情况下,我们无法让一个slice作为一个map的键,但是如果有这样的业务需要我们怎么来实现呢?自己写一个方法,首先比较两个slice的长度,再比较两个slice对应位置元素是否相等。%q 该值对应的单引号括起来的go语法字符字面值,必要时会采用安全的转义表示。使用反射包中提供的DeepEqual可以更加简洁的实现。和数组不同的是,slice无法做比较,因此不能使用。

2023-03-19 21:27:08 2244 1

原创 Golang中解决Tcp粘包的问题

当然这个具体设计细节需要跟随自己的业务进行改变,在这里我还设计了一个id,主要是方便我后面的一些相关业务。主要解决粘包的还是前面的datalen,读取时会首先读取len,根据这个len来读取后面具体长度的data,进而解决Tcp粘包的问题。在客户端传输的时候,如果我们想要进行消息的连发,或者说一次性发送多个消息包,就必要要解决Tcp粘包的问题。即实现了上述的功能。如果你的业务非常的复杂,那么在这里就需要按照自身的业务对消息进行封装,然后分别根据自己对消息的封装然后分别设计自身的封包和拆包的方法。

2023-03-16 17:38:35 1402

原创 一个conda引起的CPU异常

根据上面输出的进程命令,发现似乎是运行了一个关于conda的脚本,而且子用户退出后,通过root用户发现没有CPU异常,说明这与用户的登录有关,同时知道登陆的时候会加载两个环境变量,因此打开。早上向往常一样打开机器,突然感觉CPU有点"乱飙",因为是个人机器,没有别人使用,所以感觉有点问题。,因此是此前我装conda没有成功,没有卸载造成它返回执行该脚本来初始化。但是发现没有该进程,后来通过进一步的观测,发现但是这个进程一直在跳动,无法通过常用的。的方式来删除,总是显示没有这个进程。

2023-03-11 10:19:54 1655 1

原创 Golang中的GPM模型【面试必考2】

GMP的含义G表示goroutine协程P表示processor处理器M表示thread线程整体架构⭐️⭐️⭐️全局队列:存放等待运行的G;本地队列:有数量限制(不超过256G),新创建的G优先放在本地队列中,如果本地队列满了就放到全局队列当中;P列表:程序启动的时间就创建,最多有GOMAXPROCS(可配置)M列表:当前操作系统分配到当前Go程序的内核线程数P和M的数量。

2023-03-09 08:25:55 1185

原创 Golang中GC和三色屏障机制【面试必考1】

Go V1.3 使用普通标记清除法,整体过程需要STW,效率极其低Go V1.5 三色标记法,堆空间启动写屏障,栈空间不启动,全部扫描一次后,需要重新扫描一次栈(需要STW),效率极其普通Go V1.8 三色标记法+混合写屏障机制,堆空间启动,栈空间不启动,整体过程几乎不需要STW,效率较高。

2023-03-07 19:34:35 1543

原创 Golang实现RabbitMQ中死信队列各个情况

Golang解决三大情况造成RabbitMQ死信队列的情况

2023-02-27 21:06:24 1258 1

原创 centos7安装RabbitMQ

首先这里的版本一定要引起注意,80%的安装失败都是因为版本的错误,这里的错误不但是指erlang和RabbitMQ的对应关系错误,更多是erlang的版本选择方面。分别上传到/usr/local/software/erlang和/usr/local/software/rabbitmq中。注意如果这里出现以下图中这种情况,你可以先尝试去安装这些依赖,如果很复杂我建议一去更换更低版本的erlang。查看Linux发行版本。RabbitMQ的安装。

2023-02-19 15:50:31 1151

原创 时序建模的主要流程

详细的介绍时序建模的主要过程

2022-12-17 09:46:52 1683

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除