自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 AI时代你应聚焦的领域在哪里

随着AI的飞速发展,把我们带到了一个全新的时代。每个人都应该积极拥抱AI,让AI给我们提效。那不同的人群应该聚焦在哪里呢?

2024-07-22 07:34:54 517

原创 AI时代你一定要知道的Agent概念

这两年,随着人工智能(AI)和计算能力的发展,AI应用的落地速度大大加快。以ChatGPT为代表的AI应用迅速火遍全球,成为打工人的常用工具。紧接着,多模态、AI Agent等各种高大尚的名词也逐渐进入大众视野,吸引了大量关注。那么,到底什么是AI Agent?下文半支烟将带你详细了解这个概念。

2024-07-18 07:41:47 964

原创 拆解LangChain的大模型记忆方案

之前我们聊过如何使用LangChain给LLM(大模型)装上记忆,里面提到对话链ConversationChain和MessagesPlaceholder,可以简化安装记忆的流程。下文来拆解基于LangChain的大模型记忆方案。

2024-07-09 10:21:14 808

转载 AI开发者构建RESTful:从 Flask 转换到 FastAPI

退一步讲,Django 和 Flask 是两个最流行的基于 Python 的网络框架(FastAPI 是第三大流行框架)。不过它们(Django 和 Flask)的理念非常不同。Flask 比 Django 的优势在于 Flask 是一个微框架。程序结构由程序员自己决定,不强制执行。开发者可以在他们认为合适的时候添加第三方扩展来改进他们的代码。也就是说,通常情况下,随着代码库的增长,需要一些几乎所有网络应用都需要的通用功能。这些功能与框架的紧密结合,使得终端开发者需要自己创建和维护的代码大大减少。

2024-07-06 21:01:43 21

原创 程序员想独立赚钱的几个注意点

1、始终保持好奇心,喜欢折腾新鲜事物,并且能够很快付诸于行动,有想法立马行动起来,赶紧把东西搞出来,然后推出去。9、不要迷恋自己的产品,如果做出来的东西有人愿意买走,那就果断出手,可以拿到一笔钱之后继续做其他想做的事情。13、如果想脱离打工人,想自己独立赚钱,那就是条不确定的路,要敢于面对不确定性。4、要务实,哪怕是些小的事情,哪怕是别人看不上的东西,只要能赚钱就要敢于去做。10、做运营就离不开做社群运营,引导用户进群,盘活用户,促进成交。6、除了懂产品之外,还要学会做运营,搞流量,做好SEO推广。

2024-07-02 10:20:56 371

原创 你要的AI Agent工具都在这里

只有让LLM(大模型)学会使用工具,才能做出一系列实用的AI Agent,才能发挥出LLM真正的实力。本篇,我们让AI Agent使用更多的工具,比如:外部搜索、分析CSV、文生图、执行代码等。

2024-06-29 07:58:30 1067

原创 LangChain和Hub的前世今生

作为LLM(大模型)开发框架的宠儿,LangChain在短短几年内迅速崛起,成为开发者们不可或缺的工具。本文将带你探讨LangChain和LangChainHub的发展历程。

2024-06-26 08:54:47 920

原创 LangChain转换链:让数据处理更精准

在开发AI Agent(智能体)时,我们经常需要对输入数据进行预处理,这样可以更好地利用LLM。LangChain提供了一个强大的工具——转换链(TransformChain),它可以帮我们轻松实现这一任务。

2024-06-23 17:37:27 418

原创 5分钟了解LangChain的路由链

路由链(RouterChain)是由LLM根据输入的Prompt去选择具体的某个链。路由链中一般会存在多个Prompt,Prompt结合LLM决定下一步选择哪个链。

2024-06-21 09:36:03 659

原创 LangChain结合LLM做私有化文档搜索

我们知道LLM(大语言模型)的底模是基于已经过期的公开数据训练出来的,对于新的知识或者私有化的数据LLM一般无法作答,此时LLM会出现“幻觉”。针对“幻觉”问题,一般的解决方案是采用RAG做检索增强。

2024-06-18 08:23:37 671 1

原创 5分钟理透LangChain的Chain

LangChain几乎是LLM应用开发的第一选择,它的野心也比较大,它致力于将自己打造成LLM应用开发的最大社区。而LangChain最核心的部分非 Chain 莫属。

2024-06-16 19:26:36 1603

原创 坚持与确定性:毒药还是良药?

趁现在就改变,千万别让确定性这副慢性毒药继续侵蚀我们的思想。

2024-06-13 08:29:32 1045

原创 LangChain让LLM带上记忆

最近两年,我们见识了“百模大战”,领略到了大型语言模型(LLM)的风采,但它们也存在一个显著的缺陷:没有记忆。在对话中,无法记住上下文的 LLM 常常会让用户感到困扰。本文探讨如何利用 LangChain,快速为 LLM 添加记忆能力,提升对话体验。LangChain 是 LLM 应用开发领域的最大社区和最重要的框架。

2024-06-12 09:01:36 936

原创 基于ReAct机制的AI Agent

当前,在各个大厂纷纷卷LLM的情况下,各自都借助自己的LLM推出了自己的AI Agent,比如字节的Coze,百度的千帆等,还有开源的Dify。你是否想知道其中的原理?是否想过自己如何实现一套AI Agent?当然,借助LangChain就可以。

2024-06-04 10:46:39 1254

原创 从大龄程序员现状聊聊出路

朋友们好,我是程序员半支烟。最近和一些IT行业的朋友聊了聊他们的近况,感触颇多。借此机会写篇文章总结一下,希望能给你一些启发。

2024-05-31 10:01:21 696

翻译 Dify vs Langchain:AI应用开发的全面分析

另一方面,Langchain通过其Langserve功能提供了一个独特的方法,使开发者能够在本地部署AI应用,确保对部署环境有更大的控制,并加强安全措施。Dify凭借其强大的功能和用户友好的界面,能够满足广泛的开发需求。对于那些寻找更直接的模型集成方法或特定的基于提示的IDE需求的开发者来说,Langchain的专注功能可能是理想选择。总结来说,Dify在架构创新和灵活性方面表现出色,提供了广泛的交互点以增强集成,而Langchain则通过其开发库和集中的模型集成解决方案采取了更简化的方法。

2024-05-29 23:02:08 903

原创 5分钟明白LangChain 的输出解析器和链

本文介绍 LangChain 的输出解析器OutputParser的使用,和基于LangChain的LCEL构建链。

2024-05-27 08:51:49 933

原创 基于LangChain的Prompt模板

在上一篇《Prompt提示词助力AI写作》里已经聊过Prompt提示词的概念,提示词的主要作用是为了更好的与AI对话,帮助引导AI产生更精确、更相关的文本。所以要尽可能的给AI讲清楚任务、背景、任务等核心要素。**那Prompt提示词模板是啥呢?**Prompt提示词模板是在LangChain中使用,LangChain 中通过提示模板来构建最终的 Prompt。提示模板是 LangChain 的核心功能之一。

2024-05-22 11:56:04 1223

原创 Prompt提示词助力AI写作

AI以极高的效率和还可以的输出质量,得到了许多写作人的青睐,Prompt作为AI写作的核心,通过简短的提示来引导AI生成文本,让写作新手也能轻松自如。

2024-05-17 17:31:20 1152

原创 10分钟了解Flink SQL使用

Flink 是一个流处理和批处理统一的大数据框架,专门为高吞吐量和低延迟而设计。开发者可以使用SQL进行流批统一处理,大大简化了数据处理的复杂性。本文将介绍Flink SQL的基本原理、使用方法、流批统一,并通过几个例子进行实践。

2024-05-12 08:10:01 1512

原创 黑客精神和白帽子

在当今数字化的世界里,黑客精神和白帽子的角色变得愈发重要。本文将探讨黑客精神的本质,介绍白帽子的概念和职责。

2024-05-09 11:37:55 638

原创 10分钟3个步骤集成使用SkyWalking

本文主要从3个方面入手:原理、搭建、使用,介绍如何快速集成使用SkyWalking。探针采集上报数据分析和逻辑处理、数据存储数据展示。安装使用简单、易上手。探针技术是SkyWalking的基石,说白了就是:在类加载时进行字节码转换增强,然后去拦截请求,采集上报数据。UI页面的使用,多用用就熟悉了。本篇完结!!!10分钟3个步骤集成使用SkyWalking - 不焦躁的程序员10分钟3个步骤集成使用SkyWalking。

2024-05-04 19:49:29 1211 2

原创 程序员兼职那些事儿

最近周边发生一起程序员兼职引起的纠纷事件,作为一名资深程序员的我也做过兼职,所以不禁思考作为程序员做兼职时的一些套路,以及应该遵循的原则。

2024-05-04 19:45:44 930

原创 职场重要技能-解决问题

今天咱们唠一个职场技能-解决问题。许多所谓的前辈指导别人职场技能时,总是把:向上管理、PPT汇报等,放在第一位,对此笔者不以为然。毕竟大部人所在的企业是中小企业,中小企业没有那么多的流程管理和职级,没有那么多的汇报。其次,向上管理等技能知识“术”的东西,不管是在大企业,还是中小企业,打铁还需自身硬,没有过硬的技能傍身,再多的“”都是徒劳。”才是那个1,“”只是后面的N个0,一味的追求术,才是真真的本末倒置了。常言道:“老板请你来是解决问题的”,话糙理不糙。解决问题的能力。

2024-05-03 22:37:16 626

原创 系统干崩了,只认代码不认人

时刻警惕线上问题,一旦出现问题,千万不能放过,赶紧排查。不要再去怀疑网络抖动问题,大部分的问题,都跟网络无关。业务大表自身要做好保护意识,查询处一定要增加必须条件校验。消费MQ消息时,一定要做必要条件校验,不要相信任何信息来源。千万别信某些同事说,“这个条件肯定会传、肯定有值、肯定不为空”等等。为了保障系统的高可用和稳定,咱们只认代码不认人。一般出现问题时的排查顺序:数据库的CPU、死锁、慢SQL。应用的网关和核心部件的CPU、内存、日志。

2024-05-03 22:34:02 1081 2

原创 Java并发-如何避免死锁

一般在Java项目里用到锁的场景不多,有朋友调侃说用到锁的次数还没有面试被问到的次数多,哈哈!

2024-04-28 09:27:52 407

原创 程序员-你得把自己卖出去

商业的本质是把产品推销出去,个人发展亦是如此。其次,你需要表现得可靠可信,赢得同事和行业同行的信任,逐渐建立良好口碑。最终,你会被行业发现或朋友推荐,实现自我推销的目标。最近,我看到了一个关于罗振宇老师谈论35岁失业问题的视频,颇为有趣。罗老师指出,大脑在40岁左右才进入成熟阶段,因此理论上说,35岁应该是一个黄金年龄,为何在求职方面却举步维艰?都说35岁的中年人不如狗,网上又是铺天盖地的贩卖35岁中年焦虑各种割韭菜,再加上不稳定的外部环境,种种因素叠加确实会增加中年人的戾气和焦躁。

2024-04-28 09:27:01 354

原创 Flink CDC引起的Mysql元数据锁

记一次Flink CDC引起的Mysql元数据锁事故,总结经验教训。后续在编写Flink CDC任务时,要处理好异常,避免产生长时间的元数据锁。同时出现生产问题时要及时排查,不能抱有侥幸心理。

2024-04-28 09:26:09 933 2

原创 Elasticsearch实现Mysql的Like效果

为实现模糊匹配的搜索效果,通常有两种方式,其中之一是match_phrase,先说说match_phrase。match_phrase短语匹配会对检索内容进行分词,要求这些分词在被检索内容中全部存在,并且顺序必须一致。默认情况下,这些词必须是连续的。Wildcard Query 是使用通配符表达式进行查询匹配。?,使用?来匹配任意字符。*,使用 * 来匹配 0 或多个字符。"query": {"customerName": "*测试*"

2024-04-28 09:24:51 1064

原创 Go语言的匿名字段

Go语言支持一种特殊的字段只需要提供类型而不需要写字段名的字段**,**称之为匿名字段或者嵌套字段。所谓匿名字段实际上是一种结构体嵌套的方式,所以也可以称作嵌套字段。这种方式可以实现组合复用,即通过匿名字段,结构体可以直接访问嵌套结构体的字段和方法,而无需通过字段名或类型进行嵌套。Go语言支持匿名字段或者嵌套字段,通过这种方式可以直接访问嵌套结构体的字段和方法。在多个嵌套类型场景下,如果多个嵌套类型存在相同的字段或者方法,则需要指定具体的类型以避免歧义。本篇完结!!!Go语言的匿名字段。

2024-04-28 09:23:52 249

原创 职场重要技能-解决问题

今天咱们唠一个职场技能-解决问题。许多所谓的前辈指导别人职场技能时,总是把:向上管理、PPT汇报等,放在第一位,对此笔者不以为然。毕竟大部人所在的企业是中小企业,中小企业没有那么多的流程管理和职级,没有那么多的汇报。其次,向上管理等技能知识“术”的东西,不管是在大企业,还是中小企业,打铁还需自身硬,没有过硬的技能傍身,再多的“”都是徒劳。”才是那个1,“”只是后面的N个0,一味的追求术,才是真真的本末倒置了。常言道:“老板请你来是解决问题的”,话糙理不糙。解决问题的能力。

2024-04-28 09:22:41 294

原创 排查网络-几个步骤 几款工具

先抛个问题,如果哪天突然发现IDC机房和公有云之间的服务无法访问了(排除服务本身的问题之外,可能是网络不通,也可能是网络变的很慢使得资源无法及时下载,从而导致服务无法访问)。该如何分析这个问题呢?连通网速宽带宽带VPN通道。

2024-04-28 09:21:26 1025

原创 Go语言的常用基础

Go程序会智能地将 Goroutine 中的任务合理地分配给每个CPU,它在语言层面已经内置了调度和上下文切换的机制,不需要程序员去操作各种方法实现调度。在值接收者的方法中可以获取接收者的成员值,但修改操作只是针对复制出来的副本,无法修改接收者本身。在Go语言中,闭包是一种函数值,它引用了其函数体外部的变量。当一个函数被定义在另一个函数内部时,并且引用了外部函数的变量,就会创建一个闭包。在Go语言中,当需要让某个任务并发执行时,只需要把这个任务包装成一个函数,开启一个Goroutine去执行就可以了。

2024-04-28 09:20:09 664

原创 大白话-设计RocketMQ延迟消息

说到这里,估计你也能猜到,为什么不支持自定义延迟时间了,核心原因还是性能问题。试想一下,如果设计成任意时间,那么就不可能使用18个队列了,更不可能使用无限个队列了,只可能使用单个队列。但是如果使用单个队列,按照先进先出的存放的话,那出现需要后进先出的消息怎么办?那只能对整个队列进行排序,如果消息量很大,每次有消息进来都需要排序,那CPU肯定会被玩爆。而且队列里的消息被消费后,都会记录偏移量,如果每次有消息进来都要排序,那偏移量则失去意义,增加了消息丢失的风险。

2024-04-28 09:18:53 843

原创 Elasticsearch-Alias别名的2个核心场景

先看下官方对ES 的Alias定义:别名是一组索引的辅助名称,一个别名可以指向多个索引,一个索引可以有多个别名。使用别名后,在重建索引数据时,无需停机或更改程序代码。别名有种类似Nginx反向代理的感觉,当访问别名时,相当于访问的实际索引的代理。使用别名代替一组索引,让业务开发变得更简单。重建索引数据时,无需停机或更改程序代码。本篇完结!!!Elasticsearch-Alias别名的2个核心场景。

2024-04-28 09:18:08 602

原创 Elasticsearch与文件描述符的恩恩怨怨

文件描述符(File descriptor)是操作系统为了高效管理文件所创建的一种索引,用于指向被打开的文件,所有I/O操作都是通过文件描述符来实现。有的地方也会说成是文件句柄,他俩有些区别,这里为了方便理解,暂且认为一样。如果以文件句柄(File Handle)来理解的话,也很形象。Handle是门把手的意思,我们用门把手操作门,类似的,进程用文件句柄操作底层操作系统的资源。在Linux中,遵循一切皆是文件的原则,磁盘文件、目录、设备、网络套接字、硬件等都是文件。

2024-04-28 09:17:17 1028

原创 云计算-虚拟化-OpenStack

首先,OpenStack是偏底层的云计算管理工具,用来管理基础设施层的资源池(服务器、存储和网络)。OpenStack的核心任务是管理数量庞大的的虚拟机,次级任务是网络管理、镜像管理、统一身份认证、计算资源管理等,OpenStack被称为是“云操作系统”。之所以称为“云操作系统”,是因为OpenStack管理着大量的物理服务器。类似于:个人笔记本的“操作系统”管理着进程,“云原生操作系统”Kubernetes管理着容器。本文主要介绍了,云计算、虚拟化、OpenStack的一些概念。

2024-04-28 09:13:41 246

原创 Netty入门实践-模拟IM聊天

本文介绍了Netty的核心概念,以及基本使用方法,希望能够帮到你。通信流程Boss线程、Worker线程处理消息的Handler通讯协议、序列化协议、编解码器空闲检测、定时心跳本篇完结!!!Netty入门实践-模拟IM聊天 - 不焦躁的程序员Netty入门实践-模拟IM聊天。

2024-04-28 09:12:30 806

原创 巧记Elasticsearch常用DSL语法

本文主要介绍了常见DSL的用法,主要是帮助记忆,避免一些基本的操作还要去查询文档的尴尬。索引、文档和查询Match、Term和Bool还有翻页和聚合本篇完结!!!巧记Elasticsearch常用DSL语法 - 不焦躁的程序员巧记Elasticsearch常用DSL语法。

2024-04-27 09:41:41 541

原创 Springboot项目中使用Elasticsearch的RestClient

选择RestHighLevelClient作为ES的RestClient。核心步骤:增加properties配置、引入pom、配置conf类。调用API、使用DSL语法。本篇完结!!!Springboot项目中使用Elasticsearch的RestClient - 不焦躁的程序员Springboot项目中使用Elasticsearch的RestClient。

2024-04-27 09:40:35 1070 1

空空如也

空空如也

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

TA关注的人

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