跳至主要內容
LangChain基础

主要模块

LangChain主要模块包括ModelPromptChainRetrievalAgentTool,在基础部分可以节省很多时间,但是对于Chain这块的LCEL写法,感觉完全没必要,自己封装反而更容易Debug。

1. Model

Model模块提供了对接不同大模型的功能,主要包括大模型LLMChatModel和向量化模型Embedding


pptg大约 3 分钟
LangGraph持久化报错

1. 使用MySQL作为CheckPoint后端时报错

1.1 问题

asyncmy.errors.OperationalError: (1267, "Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operation '='")`

pptg大约 2 分钟
Dify对话机制解析

写AI真好玩,能自己决定技术栈真好。可以接触到很多非CRUD的东西。

Dify版本:1.4.3

1. 前言

Dify作为一个快速验证思路的工具,还是非常不错的。但是也正因为可视化的拖拽,导致灵活性大大降低。所以最近一直在用langchain/langgraph自研AI平台。

在Dify这里还是吸收了不少经验,最开始Chat这块我是打算一路yield到底的,后面流程复杂了之后,发现各种消息乱飘,调试起来非常复杂。于是参考了Dify的架构进行了重构。


pptg大约 2 分钟
LangChain部署报错

1. 请求openaipublic.blob.cor.windows.net超时

1.1 问题

今天把镜像推到服务器上,出现了openaipublic.blob.cor.windows.net,继Dify离线报错出过这个类似问题之后,LangChain也出现了。

1.2 原因

原因是LangChain在用langchain_openai的时候,依旧会去openaipublic.blob.cor.windows.net上拉tiktoken分词器。


pptg大约 1 分钟
Embedding选型

数据准备

最近试了几个文本嵌入模型,可视化到二维看看效果 数据量比较小,纯主观判断了

准备了一组数据:

  • 知识库是从4个文档里提取的,一共切割成24个chunk
    • 商务视频彩铃产品介绍
    • 云录音产品介绍
    • 智能语音云售后文档
    • 商务视频彩铃售后文档
  • 然后准备了7个问题
    • 售后类:2个(xxx不生效、xxx不好用...)
    • 介绍类:3个(xxx是什么...)
    • 多跳:1个(云录音和商务视频彩铃的区别是什么...)
    • 其他(混淆):1个(转人工)

pptg小于 1 分钟
lookAtMe

为什么要做这个?

有的时候上班不太忙,晚上到点打卡就下班 正好路过女朋友的单位,想一块吃个饭再回家 但是她可能在努力coding,没及时看消息,导致错过了 于是乎,就想弄一个直接在桌面弹出来的消息通知小工具

哈哈,被老妹盗了,拿去参加什么创意大赛了


pptg大约 1 分钟
表格检索的RAG和MCP方案对比

1. 测试表

对于一个表格类型的数据,上传到知识库中之后,如果行列不大,那还好说。一旦需要切块,就会将原本数据中的纵向信息丢失,导致数据跨度很大、或者全局性问题的回答效果较差。

上表中,每一行分别意味着XXX场景,都适用于哪些行业。

2. RAG测试(准确率50%)

直接放到Dify的知识库中,对其进行切片,结果如下:

进行简单的对话测试:


pptg大约 3 分钟
Dify报错

1. 请求openaipublic.blob.cor.windows.net超时

1.1 问题

img.png

1.2 原因

是tiktoken的锅,tiktoken_ext/openai_public.py#L17会去下载gpt2的分词器

而dify在python/dify_plugin/interfaces/model/ai_model.py#L281引用了gpt2的分词器

1.3 解决

进入plugin容器的挂载目录,将openai的相关文件离线下载下来


pptg小于 1 分钟
工作两年有感

来到国企上班真是太坎坷了TAT,虽然是专业公司,算半个国企吧。

其实最喜欢的应该是iOS开发了,毕竟我可是有全家桶的🤣

最擅长的是Matlab,用这玩意,本科闲鱼兼职赚过1w+。门槛高竞争对手少,就是没啥公司用啊

现在感觉弄点AI也不错,我比较喜欢思路 > 编码。就和搞Matlab一样,要不天天crud遭不住了

  • 23.6 安卓开发工程师

  • 23.7 后端工程师

    • ->-> 组里面后端的人走了,给我原地转岗了hh 😭
    • 谁有后端的活,愿意干安卓啊 😅
  • 23.9 后端+前端工程师

    • 家人们,也没人说前端也得干啊 😅
    • 但是好歹能学点vue什么的
    • 对!没有这段经历,就没有这个Blog了
  • 24.4 后端+前端

    • 家人们,后端的小组长(我滴学长)也走了,这下子啥都得一个人担着
    • 善战者无赫赫之功啊,学长走了,很多研发的环境也得我来维护
  • 24.9 杂活小兵

    • 诶领导说要接触下业务,有个新的立项的东西,拉我去集团一起写材料、做规划了
    • 现在想想还是非常感激领导的,去集团半年多,确实感觉锻炼的不错 😁
  • 24.12 产品经理 + 项目经理

    • 集团的领导留了一个人,在那边支撑做IT需求,没想到这个人就是我
    • 每天工作处理4个大网产品的事情,外加盯着3家平台/系统的开发进度
    • 虽然比较累,路远 + 加班 + 自费吃饭,但是集团领导人真好,教会了我很多工作的方法、还养了一些好习惯,极大的提升了综合能力
    • 这段经历千金难换 😁
  • 25.6 AI工程师

    • 公司的北大姐姐要走了,她好厉害。后面要由弱弱的我来接手AI工作
    • 别人问,你是干什么AI的。“就是那个,那个大家都弄的那个,Agent!”
    • 干回老本行了(研究生是人工智能毕业的)😄
    • 希望多多学习,快快成长

pptg大约 2 分钟
Dify部署

1. 部署

# 拉取dify代码
git clone https://github.com/langgenius/dify

# 创建env等文件
# 在dify/docker下
cp .env.example .env

# 进入 .env 修改配置,可以跳过
vim .env

# 启动
docker compose up -d

pptg小于 1 分钟