- 博客(61)
- 收藏
- 关注

原创 Prompt 到底有啥用?为什么写得好能提升 AI 效果这么多?
Prompt 工程不是玄学,而是逻辑 + 套路 + 实验。掌握这些结构和原理,才能真的用好大模型,而不是靠“它运气好、你猜得准”。
2025-06-24 22:17:35
759

原创 RAG 知识库核心模块全解(产品视角 + 技术细节)
关于知识库这块,你有什么能讲的吗?”我一脸懵逼,数据咋清洗,数据格式咋定的不是刚说完吗??🤔复盘了一下,感觉应该是想问下面这些。
2025-06-20 22:04:47
285

原创 语言模型是怎么工作的?通俗版原理解读!
模块功能描述🗂️ 训练数据决定模型“知道啥”📐 向量空间存储语义、关联、情感、抽象知识构建上下文理解、语义联想、推理与表达能力🧮 反向传播+梯度下降训练机制,让模型“知错就改,越改越聪明”🚀 读完这篇文章,你已经大概了解了语言模型的基本原理!
2025-06-15 23:08:33
1138
原创 Dify 是啥,为啥现在这么火?值得学吗?
Dify 是大模型落地时代的“低代码操作系统”,能让产品、运营、开发真正围绕业务逻辑做出 AI 应用,而不是卡在 prompt demo 阶段。
2025-07-16 21:31:41
726
原创 大模型是怎么“用工具”的?一文讲透 Function Calling 策略
当用户说“帮我算一下33加77”,大模型为啥能准确调用函数来算?这背后用的就是 ——。今天我们就把这个机制讲明白。
2025-07-16 18:49:27
274
原创 一文搞懂知识库的“切片”:如何处理 Word、PDF、Excel、HTML 等格式?
把原始文档按段、按块切成小片段,用于后续向量化、入库。可以简单理解为一种“有规则的字符串切割大模型知识库的底层是“向量检索”。向量模型通常对文本长度有限制(比如 512 或 1024 token),太长的信息 embedding 会被截断、语义模糊。所以文档不能整篇扔进去,而要先“切”成信息块。就像做卡片笔记,切得越清晰、语义越完整,大模型召回时就越准确。每片 500 字,步长 200 字。优点:实现简单,适配所有格式。会把语义切断,尤其是标题、表格、逻辑段落等。
2025-07-09 23:04:21
437
原创 一文看懂 LangChain:为什么火?核心模块都干啥?
LangChain = 「Prompt + 模型 + 工具 + 记忆 + 检索」的组件化框架,用来构建多轮对话、文档问答、Agent 应用的乐高积木库。
2025-07-05 18:53:40
747
原创 什么是 Agent?这不是玄学,是你可能早就做过的事
大模型 + 工具 + 流程调度”的组合包。你以前写过prompt 拼接、查接口、上下文管理?那你其实早就在做 Agent 了,只不过那时候没起这个潮名字。Agent 不是新能力,而是老能力的“系统化 + 自主化 + 低代码”封装。你不需要懂大模型底层,只需要告诉它“要干嘛”,它就能自己安排“怎么干”。如果你写过 prompt 拼接 + 多轮对话 + 工具调用,其实你早就是半个 Agent 开发者了。
2025-07-05 11:11:05
837
原创 智能体(Agent)是怎么知道什么时候要调用 Tool 的?
Tool 不是“立刻”被调用的,而是“模型先思考一下”要不要用它模型每次只做一小步:思考 → 执行动作 → 观察 → 再思考提示词驱动的微循环执行器,不是魔法,是 prompt 技巧 + tool 调度。
2025-07-05 11:10:15
380
原创 思维链 ≠ 深度思考,你是不是也分不清?
用有步骤的例子,引导模型一步步推理。比如你在prompt中加入下面的示例Q: 小明有4个梨,吃了1个,还剩多少?A: 小明原来有4个梨,吃了1个。4 - 1 = 3。所以答案是3。你在 prompt 中加了“思考过程”,模型就会模仿这种格式,也开始“看起来像是在认真思考”。(少样本思维链提示)。思维链是你给的提示,深度思考是大模型帮你偷偷加的提示。
2025-06-28 21:39:48
561
原创 从三大方向看AI落地能力:NLP / CV / 多模态全梳理
本推文梳理了 NLP、CV 及多模态方向的 AI 能力,能帮助大家快速了解当前 AI 应用的技术边界,把握发展趋势与产品机会。
2025-06-14 22:04:30
380
原创 MCP 是什么?为何越来越火?如何使用 MCP 协议?一文看懂!
是专为 AI 模型和智能体设计的通信协议。它就像一个“翻译器”,让模型能理解并调用工具接口,实现标准化请求与响应。不再靠“猜”工具怎么用,而是通过语义化协议,把工具真正融入 AI 的推理链中。
2025-06-14 13:08:43
324
原创 gorm 自定义预加载 preload加条件
gorm 自定义预加载 preload加条件// 首页活动模块区域分类表模型type LabelType struct { Model Id int `json:"id";gorm:"primary_key"` MallId int `json:"mall_id"` Status int `json:"-"` Name string `json:"name"` Weigh
2021-07-21 14:50:33
1741
原创 Golang面试题整理
32.并发编程概念是什么?并行是指两个或者多个事件在同一时刻发生;并发是指两个或多个事件在同一时间间隔发生。并行是在不同实体上的多个事件,并发是在同一实体上的多个事件。在一台处理器上“同时”处理多个任务,在多台处理器上同时处理多个任务。如hadoop分布式集群并发偏重于多个任务交替执行,而多个任务之间有可能还是串行的。而并行是真正意义上的“同时执行”。并发编程是指在一台处理器上“同时”处理多个任务。并发是在同一实体上的多个事件。多个事件在同一时间间隔发生。并发编程的目标是充分的利用处理器的每一个核,
2020-09-14 23:13:54
1522
原创 golang面试题(带答案)
1.下面代码输出什么,为什么 //make([]T, length, capacity) s1 := []int{1, 2, 3} fmt.Println(s1, "哈哈") //[1 2 3] s2 := s1 fmt.Println(s1, "哈哈") //[1 2 3] for i := 0; i < 3; i++ { s2[i] = s2[i] + 1 } fmt.Println(s1) //[2 3 4] fmt.Println(s2) //[2 3 4][1 2
2020-09-13 18:15:58
10535
5
原创 time.Time datetime格式时间赋空值零值,判断datetime time.Time是否空值零值golang
赋零值 t := time.Now() nilTime:=time.Time{} var waitConfirmRecordParam model.WaitConfirmRecord waitConfirmRecordParam.CreatedAt = t waitConfirmRecordParam.UpdatedAt = t waitConfirmRecordParam.DeletedAt = nilTime//此处即为零值 waitConfirmRecordParam.ConfirmTi
2020-06-18 21:25:56
20132
原创 Key is invalid. You must supply a key in OpenSSH public key format github
直接赋值粘贴 .ssh的文件会破坏格式需要打开 git bash输入命令clip < ~/.ssh/id_rsa.pub回车后就复制到剪切板了,到github添加ssh keys的地方直接就能粘贴上如图:
2020-06-09 19:54:46
18455
13
原创 gorm FirstOrCreate和受影响行数
FirstOrCreate获取第一个匹配的记录,或创建一个具有给定条件的新记录(仅适用于struct, map条件) db.Where(User{Name: "Jinzhu"}).FirstOrCreate(&user)代码案例:func (tsu *TopicSignUp) TopicSignUpCreate() (bool, int64) { db := Db.Where(tsu).FirstOrCreate(&tsu) if err := db.Error; err !=
2020-05-19 15:08:57
6735
原创 2020年5月12日日期转时间戳golang time.Time格式日期转时间戳
2020年5月12日转时间戳代码如下package mainimport ( "fmt" "strings" "time")//获取当天0点和24点时间戳func dateToTimestamp() (dateTimestamp int64) { date := "2020年5月12日" date = strings.Replace(date, "年", "-", 1) date = strings.Replace(date, "月", "-", 1) date = strin
2020-05-12 13:58:31
2667
1
原创 golang gorm多条件筛选查询
案例:查看陌陌的动态,依次可以按照发布时间,性别,城市进行筛选如图进行筛选gorm链式操作Method Chaining,Gorm 实现了链式操作接口,所以你可以把代码写成这样:// 创建一个查询tx := db.Where("name = ?", "jinzhu")// 添加更多条件if someCondition { tx = tx.Where("age = ?", 20)} else { tx = tx.Where("age = ?", 30)}if yetAnot
2020-05-11 21:48:50
21113
原创 gorm关联一对多关系golang
user_topic表里的id,关联topic_image表里的topicID,//用户在发表话题动态的时候,同时发了多张照片,//查询的时候需要从topic_image表查出用户此条动态发布的所有照片。//是这样子的一对多关系1.model字段部分(加外键关联外键)type UserTopic struct { ID int64 `gorm:"primary_key" json:"id"` UserID int64 `json
2020-05-11 18:23:14
2603
原创 golang gorm 计算字段和 获取sum()值
计算表lb_ytt_user_money_log 中,字段money的和代码如下:var total_money []intsqlstr := `select SUM(money) as total_money from lb_ytt_user_money_log where user_id = ? and l_type = 1 and...
2020-04-26 17:19:16
8391
1
原创 根据当前用户的经纬度,查指定范围的用户(指定性别)golang
查询当前经纬度一千米以内的用户信息代码如下: distance := 1000 sql := fmt.Sprintf(`SELECT ROUND(6378.138 * 2 * ASIN(SQRT(POW(SIN((? * PI() / 180 - lt * PI() / 180) / 2),2) + COS(? * PI() / 180) * COS(lt * PI() / 180) * P...
2020-04-18 15:03:03
590
原创 Goland调节字体大小(编辑区,terminal区,页面字体)
1.调节页面字体File->Settings->Editor->Font2.调节代码编辑区字体Setting->Editor->Color Scheme->Console Scheme Font3.调节terminal区字体Setting->Editor->Color Scheme->Console Font若不生效,重启一下...
2020-04-13 11:51:31
17792
原创 please make sure you have the correct access rights and the repository exists码云
ssh key有问题,连接不上服务器git clone的时候遇到的这个问题,原来是我本地没有设置好ssh1、首先我得重新在git设置一下身份的名字和邮箱git config --global user.name “yourname”git config --global user.email“[email protected]"注:yourname是你要设置的名字,your@email是你要...
2020-04-10 15:55:30
717
原创 golang求连续子数组的最大和
问题描述:给定一个数组 array[1, 4, -5, 9, 8, 3, -6],在这个数字中有多个子数组,子数组和最大的应该是:[9, 8, 3],输出20,再比如数组为[1, -2, 3, 10, -4, 7, 2, -5],和最大的子数组为[3, 10, -4, 7, 2],输出18。代码如下:package mainimport ( "fmt")func getMaxSu...
2020-04-07 10:35:40
627
原创 找出数组中出现奇数次的数golang
问题描述:给定一个含有n个元素的整型数组array,找出其中出现奇数次的数。思路:遍历数组,把数组中的元素作为一个map的key,判断这个key在map中是否已存在,若不存在value=1,若已存在翻转value的值(若value=0翻转成1,若value=1翻转成0),最后value=1的key就是出现奇数次的数。代码如下:package mainimport ( "fmt")...
2020-04-03 16:52:08
622
转载 golang爬虫案例
1.1爬虫步骤1.明确目标(确定在哪个网站搜索)2.爬(爬下内容)3.取(筛选想要的)4.处理数据(按照你的想法去处理)代码如下:package mainimport ( "fmt" "io/ioutil" "net/http" "regexp")//这个只是一个简单的版本只是获取QQ邮箱并且没有进行封装操作,另外爬出来的数据也没有进行去重操作...
2020-04-02 17:11:42
995
原创 golang数组-----寻找数组中缺失的整数
问题:由n-1个整数组成的未排序数组,元素都是1~n的不同整数,找出其中缺失的整数方法一:思路:是原数组的和 减去 丢失元素后的数组的和,就得到丢失的元素了代码如下:package mainimport ( "errors" "fmt")func getMissingElement(arr []int) int { var sumA, sumB int if arr ==...
2020-04-02 11:43:45
352
转载 golang 结构体和方法
1. 定义结构体是将另个或者多个任意类型的命名变量组合在一起的聚合数据类型。2. 成员变量访问控制机制如果一个结构体的成员变量名称是首字母大些的,那么这个变量是可导出的(即在其他包可以访问到)。一个结构体可以同时包含可导出和不可导出的成员变量type A struct { Hour int //可导出 minute int //不可导出}限制命名结构体类...
2020-04-01 17:39:31
1187
原创 golang gin 框架 异步同步 goroutine 并发
goroutine机制可以方便地实现异步处理package mainimport ( "log" "time" "github.com/gin-gonic/gin")func main() { // 1.创建路由 // 默认使用了2个中间件Logger(), Recovery() r := gin.Default() // 1....
2020-03-27 20:24:57
5465
2
原创 golang gin 框架 重定向
代码如下:package mainimport ( "net/http" "github.com/gin-gonic/gin")func main() { r := gin.Default() r.GET("/index", func(c *gin.Context) { c.Redirect(http.StatusMovedPerman...
2020-03-27 20:21:47
1490
原创 golang gin框架获取参数
1.获取URL参数GET请求参数通过URL传递URL参数可以通过DefaultQuery()或Query()方法获取DefaultQuery()若参数不存在,返回默认值,Query()若参数不存在,返回空串user_id := com.StrTo(ctx.Query("user_id")).MustInt64()page := com.StrTo(ctx.DefaultQuery("pa...
2020-03-27 19:04:52
4725
原创 golang gorm增删改查db.Model db.Where db.Table
1. 创建创建记录:user := User{Name: "Jinzhu", Age: 18, Birthday: time.Now()}db.NewRecord(user) // => 主键为空返回`true`db.Create(&user)db.NewRecord(user) // => 创建`user`后返回`false`设置默认值:可以在gorm ...
2020-03-27 14:47:20
13904
2
原创 Unix和UnixNano
Unix将t表示为Unix时间,即从时间点January 1, 1970 UTC到时间点t所经过的时间(单位秒)。在windows下,rand.Seed(time.Now().Unix())作为种子,得出的随机数是随机的func (t Time) Unix() int64UnixNano将t表示为Unix时间,即从时间点January 1, 1970 UTC到时间点t所经过的时间(单位纳秒...
2020-03-24 21:05:22
7683
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人