跳至主要內容
pptg

pptg

费大厨辣椒炒肉真是太好吃了!

ppNginx
nginx命令行工具 by Golang
youi
个人todo软件 by Flutter
ppMenu
个人Mac的便捷菜单栏 by Swift
ppBlog
个人主页
lookAtMe
悬浮提醒桌面小助手
pp宇宙
无聊画画
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 分钟
NLP基础

1. 词表示

在NLP任务中,首先要考虑词如何在计算机中表示。

1.1 one-hot

one-hot根据词语的数量N,生成长度为N的序列,只需要在当前词的位置标记为1即可。

  • 缺点:
    • 维度灾难:词数量大,导致维度过大
    • 无法度量相似性:词之间的cos计算均为0
one hot

1.2 词向量

词向量用有限的维度,表示无限的词语。


pptg大约 2 分钟
Ollama部署

1. 部署

直接在linux上用docker启动

version: '3.8'
services:
  ollama:
    image: ollama/ollama:latest
    container_name: ollama
    ports:
      - "11434:11434"
    environment:
      - OLLAMA_HOST=0.0.0.0:11434  # 允许局域网访问
    volumes:
      - ollama_data:/root/.ollama
    restart: unless-stopped

volumes:
  ollama_data:

pptg小于 1 分钟
EasyImage

EasyImage搭建

在开发小程序的时候,演示版不能超过4MB的大小,为了能顺利的演示只能把图片放到图床上了。

发现很多图床都需要MySQL才能跑,而我只是想要应付一下演示,所以就找了一个不需要数据库的,docker-compose文件如下:

services:
  easyimage:
    image: ddsderek/easyimage:latest
    container_name: easyimage
    ports:
      - '8080:80'
    environment:
      - TZ=Asia/Shanghai
      - PUID=1000
      - PGID=1000
      - DEBUG=false
    volumes:
      - '/root/data/docker_data/easyimage/config:/app/web/config'
      - '/root/data/docker_data/easyimage/i:/app/web/i'
    restart: unless-stopped

pptg小于 1 分钟
Vue的Jenkins自动构建配置

1. 配置步骤

  1. 配置项目地址,这个地址用于在构建时选择需要构建项目分支,请填写真实的项目地址。
项目地址
  1. 配置脚本地址,这里会从远程的jenkins-file中读取构建的过程,所以写jenkins-file的地址,Credentials写可以正常拉这个jenkins-file的git账户、密码

  2. 配置脚本路径,配置jenkins-file项目下的文件路径


pptg大约 2 分钟