自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 记一次探索提升图片识别正确率的过程

最近接手了一个需求,需要优化现有图片识别链路。我们原链路是使用网易的识别ocr,但传统ocr实在太贵了,多个平台的ocr的单张识别成本都在0.1元附近。我们现有的方法是将多张图拼起来一次过识别,这显然会影响识别正确率,做了正确率和成本的trade off。接下来就是探索如何提升识别正确率的过程了。

2025-05-08 20:42:59 747

原创 记一次mcp初体验(带可运行demo)

最近在忙着开发别的需求,在等测试结果的期间,看了一下近几个月很火的MCP。在看完对应的介绍之后,打算去找个demo来跑一下。这里参考的demo是Anthropic的Claude,不过因为注册手机需要海外的,于是决定接入到阿里的百炼平台。

2025-04-30 22:58:23 478

原创 记一次如何利用设计模式重构现有代码(策略模式)

之前在做一个需求,是在原有基础上,接入一套利用大模型协助业务的逻辑。但原来的代码设计的不是很好,流水账式的写法。我最初是使用if…else…插入原有的逻辑,尽量避免影响原有逻辑。但后来知道利用大模型协助业务还要根据不同的科目去进行分发,在此时,我脑海中已经想到了以后的代码就是一大串的if…elif…elif…(中间省略n个elif)…else,想到就头疼。于是去查了一下有没有适合的设计模式来重构这一块代码,最终终于找到了比较适用的模式——策略模式。

2025-04-17 22:44:24 829

原创 小魔改langchain的milvus模块以实现类似kv数据库的效果

在之前面临一个小需求,希望在langchain链路中用关键字去向量语义匹配,然后获取最接近的key所对应的value,也就是想实现一个类似kv数据库的效果。

2025-04-08 22:17:43 256

原创 langchain学习记录(六)

在几个月前,有个需求是关于利用用户的问题输入,从数据库捞出对应的数据并进行回复。今天突然想起来那时还没处理好记忆,也就是上下文保存的问题,于是打算改一下代码尝试完成。

2025-04-06 23:06:03 282 1

原创 记如何利用myscript笔迹文件实现在图片上打标记

接到一个需求,利用myscript笔迹文件的信息,在对应图片右下角打上标记。作答图片如下而书写这图片所生成的myscript解析后的笔迹文件的内容数据结构如下而标记的图片如下。

2025-04-06 15:37:19 370

原创 langchain学习记录(五)

之前已经大概介绍了构建这次完成链路的基本知识,这次就介绍在项目中我构建好的chain。

2025-03-26 23:11:37 142

原创 langchain学习记录(四)

对于之前做的全链,我们为了在最后输出更好的处理内容,于是打算将传入的内容拆开。之前的全链如下"input": {| {"parallel_output": itemgetter("final_input") # 这里就是中间过程的输出啦我们要操作的位置应该是在中间的的位置,正如我们前言中提到,就如同一个在chain流动过程中的工具,在数据流动时进行处理。对于上面的全链,如果我们只想获取输出的content,也就是不包含什么AiMessage等关于langchain信息的元数据吗,那可以在的位置使用。

2025-03-21 23:14:51 220

原创 langchain学习记录(三)

继上文已经构建好了一条能将中间过程一起输出的链路,我们将这条链成为全链。然而这里的链只能覆盖一种场景,还有一种场景我们需要先通过redis拿到a_chain的内容,然后继续执行b_chain,并将a_chain的结果和b_chain的结果一起给c_chain,因此接下来我们将会建这种场景的链。为了方便和全链区分,接下来我们用半链来称呼。

2025-03-20 22:48:15 328

原创 langchain学习记录(二)

继上文已经构建好一条并行链,但根据需要要求,还需要将中间过程一起输出并存档。由于之前的初步学习并没有遇到过这种情况,因此需要查询资料来完成这个目标。

2025-03-19 19:09:39 371

原创 langchain学习记录(一)

前段时间由于工作需要,自己初步学习了langchain,搭建了一个关于学习信息的agent,也算是简单入门了langchain这个开发框架。恰好,最近有需求需要利用llm来构建逻辑,于是果断的选择了langchain框架。在构建的过程中遇到了各种情况,于是想在这里记录一下,以便和我一样遇到相同问题的朋友去搜索。由于平时更多是使用goland进行开发,如果有哪些地方说的不恰当的,烦请指正。

2025-03-18 23:31:10 260

原创 Linux高性能服务器编程笔记(四)

第四章 TCP/IP通信案例4.2 部署代理服务器4.2.1 HTTP代理服务器的工作原理正向代理服务器:要求客户端自己设置代理服务器的地址,客户的每次请求都将直接发送到该代理服务器,并由代理服务器来请求目标资源(client->proxy->Internet),示例:翻墙反向代理服务器:被设置在服务器端,用代理服务器来接收Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从内部服务器上得到的结果返回给客户端。(Internet->proxy->clien

2022-01-05 15:04:09 1521

原创 Linux高性能服务器编程笔记(三)

第三章 TCP协议详解参考引用:关于三次握手和四次挥手,面试官想听到怎样的回答? - 车小胖的回答 - 知乎https://www.zhihu.com/question/271701044/answer/398114686关于三次握手和四次挥手,面试官想听到怎样的回答? - 小林coding的回答 - 知乎https://www.zhihu.com/question/271701044/answer/1279809269终于到重点中的重点的TCP协议了T_T!3.1 TCP服务的特点面向连

2022-01-03 20:13:04 1120

原创 Linux高性能服务器编程笔记(二)

第二章 IP协议详解2.1 IP服务的特点无状态:指IP通信双方不同步传输数据的状态信息,所有IP数据包的发送、传输和接受都是相互独立。只要接受端收到完整的IP数据包,就将数据部分上交给上层协议。(重新排序的工作交给上层协议)无连接:不长久地维持对方的任何信息不可靠:不能保证数据报能准确地到达接收端2.2 IPv4头部结构其中,16位总长度指整个IP数据包的长度,超过MTU(最大传输单元)的数据包都将被分片传输,所以实际传输的每个数据包都远没有达到最大值。32位源端IP地址与32位目的端

2022-01-03 19:25:20 1201

原创 Linux高性能服务器编程笔记(一)

前言:在前段时间为了学习网络编程,于是就看了《Linux高性能服务器编程》和《UNIX网络编程卷1:套接字联网API》的部分章节。在第一次看的时候感觉很懵,毕竟以前对网络的了解仅仅局限于七层协议和TCP/IP协议族的简单内容。在看完两本书的第一遍后,打算重新做一下《Linux高性能服务器编程》的笔记,于是又重新快速翻阅了一下。可能是因为已经对网络编程有初步的了解,在第二次的阅读中对很多第一次看的时候感觉迷糊的地方又有新的理解。看来经典的书还是的多翻几次,每次看都有新的理解。:)我并没有把所有章节都作为

2022-01-03 19:18:56 886

原创 每天五分钟玩转K8S(十一)

今天我们来了解一下k8s的网络,上网搜了一下,原来k8s的网络水非常深,书上的介绍只是冰山一角。如果有兴趣继续了解的话,需要翻阅其他的资料才行。可以看看这个,有介绍各种主流的cnihttps://www.sohu.com/a/304555150_618296一、k8s网络模型Kubernetes采用的是基于扁平地址空间的网络模型, 集群中的每个Pod都有自己的IP地址, Pod之间不需要配置NAT就能直接通信。 另外, 同一个Pod中的容器共享Pod的IP, 能够通过localhost通信。这种网络

2021-12-04 14:14:24 951

原创 每天五分钟玩转K8S(十)

今天我们来了解一下k8s的包管理工具,helm。一、helm的架构Helm有两个重要的概念: chart和release。chart是创建一个应用的信息集合, 包括各种Kubernetes对象的配置模板、 参数定义、 依赖关系、 文档说明等。 chart是应用部署的自包含逻辑单元。 可以将chart想象成apt、 yum中的软件安装包。release是chart的运行实例, 代表了一个正在运行的应用。 当chart被安装到Kubernetes集群, 就生成一个release。 chart能够多次安

2021-12-04 13:55:09 598

原创 每天五分钟玩转K8S(九)

今天来了解一下secret和configmap一、创建secret有四种方法创建secret:1.通过–from-literal:kubectl create secret generic mysecret --from-literal=username=admin --from-literal=password=123456每个–from-literal对应一个信息条目2.通过–from-file:echo -n admin > ./usernameecho -n 123456 &

2021-12-04 13:44:14 173

原创 每天五分钟玩转K8S(八)

今天我们来了解一下数据持久化的问题。一、volume本节我们讨论Kubernetes的存储模型Volume, 学习如何将各种持久化存储映射到容器。我们经常会说: 容器和Pod是短暂的。 其含义是它们的生命周期可能很短, 会被频繁地销毁和创建。 容器销毁时, 保存在容器内部 文件系统中的数据都会被清除。为了持久化保存容器的数据, 可以使用Kubernetes Volume。Volume的生命周期独立于容器, Pod中的容器可能被销毁和重建, 但Volume会被保留。本质上, Kubernet

2021-12-02 13:39:48 2860

原创 每天五分钟玩转K8S(七)

今天要了解的是k8s的health check(健康检查)的功能。一、默认的健康检查Kubernetes默认的健康检查机制: 每个容器启动时都会执行一个进程, 此进程由Dockerfile的CMD或ENTRYPOINT指定。 如果进程退出时返回码非零, 则认为容器发生故障, Kubernetes就会根据restartPolicy重启容器。先写出测试的yml文件:可以看到pod的状态,已经重启了好几次在上面的例子中, 容器进程返回值非零, Kubernetes则认为容器发生故障, 需要重启。 有

2021-12-02 10:17:41 1054

原创 每天五分钟玩转K8S(六)

今天要了解的是k8s的rolling update(滚动更新)。一、了解一下滚动更新的操作先创建一个httpd:2.2.31的deployment,然后更新到2.2.32yml文件如下看到images的信息是2.2.31现在将yml文件改成2.2.32版本看到已经开始更新,特点是每次只更新替换一个pod,保证deployment的健壮性通过查询kubectl describe deployment httpd2可以完整地看到整个scale up/down过程(可以很清楚的看到数量

2021-12-02 10:07:50 452

原创 每天五分钟玩转K8S(五)

一、service的必要性对于k8s,pod不需要是robust的,因为可以通过controller来动态创建和销毁pod来保证应用整体的健壮性。由于每个pod都有自己的地址,所以当controller用新pod替代发生故障的pod时,新pod会分配新的ip地址。那么会导致ip地址发生变化,这时候就需要使用service来维护一个对外网络。Kubernetes Service从逻辑上代表了一组Pod, 具体是哪些Pod则是由label来挑选的。 Service有自己的IP, 而且这个IP是不变的。 客户

2021-12-01 15:11:37 2833

原创 每天五分钟玩转k8s(四)

接着上一篇讲到deployment,这一篇要介绍与deployment同一级别的其他任务DaemonSet与Job。一、DemonSetDaemonSet与Deployment的不同之处在于,每个node上最多只能运行一个副本DaemonSet的典型应用场景有:在集群的每个节点上运行存储Daemon, 比如glusterd或ceph。在每个节点上运行日志收集Daemon, 比如flunentd或logstash。在每个节点上运行监控Daemon, 比如Prometheus NodeExpor

2021-12-01 14:46:09 247

原创 每天五分钟玩转K8S(三)

接着上一篇介绍完k8s架构后,我们就开始学习k8s中的一个重要概念:deployment一、部署deploymentkubectl create deployment nginx-deployment --image=nginx:1.7.9 --replicas=2(最下面的events记录的是replicas的启动过程,证明了deployment可以通过replicas来管理pod)接着我们将使用kubectl describe replicaset查询replica的情况查询各个pod

2021-12-01 14:32:29 2215

原创 每天五分钟玩转K8S(二)

接着上一篇,在安装完k8s后,就要开始对他进行折腾了!!今天我们要做的就是对k8s的架构进行简单的学习(超级简单)。一、master节点k8s cluster由master和node组成,节点上运行着若干k8s服务。运行着的daemon服务包括 kube-apiserver、 kube-scheduler、 kube-controller-manager、 etcd和Pod网络(例如flannel)。如图其中的部件:API Server (kube-apiserver)API Serv

2021-12-01 14:05:27 509

原创 每天五分钟玩转K8S(一)

每天五分钟玩转k8s(一)

2021-12-01 13:48:41 1518

空空如也

空空如也

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

TA关注的人

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