RAG不是万能的,附常见误解与澄清

AI

RAG不是万能的,附常见误解与澄清

能给人理清目前 AI 在生产落地的问题,是一件难能可贵的事情,AI 在生产落地会有哪些阻碍的讲解,讲干货的真的是很少,至少我自己曾经在这个问题上困惑了很久。 因为之前我在 AI 电商团队,做具体的 AI Sass 落地的时候,团队经常会沟通做到生产级可用的 AI,需要哪些东西,大概的门槛还是了解到一些的,我的能力也顶多在应用层面去做一些工作量的定制与代码衔接,涉及到模型层面,一概歇菜,很多人估计只是想着,写一个 Prompt ,就是真正的拥抱 AI 了。 当我看到自媒体里面铺天盖地的在讲 AI 如何帮助企业提效,如果重塑行业的时候,有种很复杂的感觉,他们真的懂 AI 吗,甚至他们真的懂软件吗? 基本上现在大家接触到的方式就几种: * 割韭菜卖课,讲概念,前景,这些基本上都是拿别人的产品来给自己做嫁衣,自己顶多是个工具的使用者和营销者,比如用 Midjourney,Kimi,豆包,海螺什么的,告诉大家用了就能提效,获得流量,

Shopify 构建商城页面的几种方式

Shopify 构建商城页面的几种方式

当用户需要对 Shopify 商城页面有自定义的需求时,一般会选择: 1、直接使用官方商城的 theme 来构建,可以使用,但是免费模板较少,只有 13 个。 2、使用第三方 theme 来构建,也有很多的模板可以选择,比如 envato 上有数百个 shopify 的模板,这是个非常大的市场。 3、完全自定义开发,自由度最高 当用户对 Shopify 商城页面,有完全自定义的需求,通常是常规主题无法满足需求,推荐使用 Shopify Hydrogen 的官方方案,开发人员可以对商城进行完全的页面级别的自定义。 而对于开发人员来说,官方的 Shopify Liquid 开发起来的效率和体验,是不如 Shopify Hydrogen 来的舒服,而且使用 Shopify Hydrogen ,还可以对性能有提升,

Meepo 要找一份远程前端(全栈)开发的工作

Meepo 要找一份远程前端(全栈)开发的工作

为什么找远程岗位 我一直是比较喜欢远程合作的方式,基本上从事远程开发的团队,都是奔着做事去的,大家能筛选到一起,为一个目标而努力,是一件很难得的事情,远程协作的方式,在自由度和产出之间能保持非常好的平衡,没有必要在通勤以及办公室的无效沟通上浪费太多的时间。 技术特点如何 前端: React + TypeScript 生态体系,常规的网页开发,浏览器插件,Electron 客户端开发都 OK,对各种前端技术方案有一定的沉淀和实践。 后端: Nextjs + Nestjs 开发全栈站点及后端 API 服务 个人特点 即插即用,对于大多数的前端场景和技术方案,都有所涉及。 多年的开发经验,对企业自有产品开发,大客户定制,以及独立开发,有一定的观察和沉淀。 拥抱 AI,对当下比较热门的 AI 技术有一定的了解和沉淀。 喜欢分享和交流,对技术和业务,以及营销都感兴趣。 之前接触的一些业务形态 公司层面: 主要是国内客服领域,涉及到全流程客服,IM,音视频等

从事 SEO 12 年的大佬总结的要点

SEO

从事 SEO 12 年的大佬总结的要点

从事 SEO 12 年后,以下是我能想到的所有 SEO 技巧: 1. 在 H1、H2 和 URL 部分中使用主要关键词。 2. 停止追逐虚荣指标。流量固然重要,但转化率才是最重要的。 3. 内部链接可以将“几乎完成”的页面转变为表现最佳的页面。 4. 定期检查你的网站是否有坏链接,这是一个简单的 SEO 胜利。 5. Google Search Console 是您最好的朋友,使用它来重新优化排名在第 3-7 位的页面。 6. 90% 的反向链接应来自相关的高权威网站。 7. 速度决定一切——或许应该说,速度不足会扼杀一切。确保加载时间在 2 秒以内。 8. 持续更新内容将帮助你的页面保持更高的排名。 9. 使用 NLP

Pnpm 构建 Monorepo

技术总结

Pnpm 构建 Monorepo

最近开始搭建 monorepo 的项目,了解到以下方案: * lerna 有强大完善的依赖管理和构建、打包发布流程,而且 v5 版本将 nx 与 lerna 整合了,提升了性能和速度 * 业界大多使用 lerna + yarn workspace 的方式来管理,yarn 用来管理依赖,lerna 用于管理发布 之前简单使用过 lerna ,不过再加上 yarn workspace , 学习容多、配置多又得折腾,太费劲🤪,暂时搁置。 最终尝试使用单一的 pnpm workspace + changesets 的方式来构建 monorepo,本身我就使用 pnpm 作为包管理工具,目前我的场景简单,pnpm 就已足够。 本文记录自己使用 pnpm workspace 搭建 monorepo

HTTP Web 缓存总结

技术总结

HTTP Web 缓存总结

友情提示:缓存什么的,是完全依赖相关http header头信息来标记和判断的 缓存读取顺序: 首先读取本地缓存,如果条件满足就取本地缓存,否则往后走代理缓存,同理,条件满足就是从代理缓存取资源(可能存在多级代理缓存) 如果一条链路上的资源都不符合,那么就去源服务器获取 缓存优先级:Cache-Control > Expires > Etag > Last-Modified 缓存的分类和优先级 * 强缓存 状态码 200 (比如 200 (from cache)) * Expires 服务器下发的绝对时间,而判断的时候以浏览器时间为准,客户端和服务器有可能会不一样 * Cache-Control 相对时间,以客户端相对时间为准 * 协商缓存 状态码 304 * Last-Modified If-Modified-Since * Etag If-None-Match 强缓存优先级高于协商缓存,强缓存不会询问服务器,直接使用缓存。协商缓存会询问服务器关于文件的可用性 对于传输过程中的中间节点,本文都称为代理服务器,包括proxy、

关于 Webpack 使用 Babel 与 Vite 使用 ESBuild 的一些思考

技术总结

关于 Webpack 使用 Babel 与 Vite 使用 ESBuild 的一些思考

虽然 Vite 是基于 esbuild 构建的,并且 esbuild 在构建速度上有显著优势,但 Webpack 目前并没有直接使用 esbuild 构建的原因涉及多个方面,主要是 架构设计差异、功能需求 和 兼容性 等问题。下面是一些关键的原因: 1. Webpack 的复杂性与扩展性 • Webpack 的高度可扩展性:Webpack 的设计目标是一个 高度可配置和可扩展的打包工具。它提供了丰富的插件和 loader 机制,支持各种复杂的构建需求(如代码分割、热更新、各种资源处理等)。这些功能要求 Webpack 必须具备更细粒度的控制能力,而 esbuild 的设计理念相对简化,主要关注高速构建和基本的模块转换功能。 • Loader 和 Plugin 系统:Webpack 的强大之处在于其 loader 和

Latest

Dokploy 一键部署 Plausible

Dokploy 一键部署 Plausible

Plausible 是一款与 Google Analytics 类似的 Web 流量分析工具,相比 Google Analytics 对比如下: * 功能复杂度:GA 功能更强大,适合需要深入分析的用户;Plausible 提供基础的流量分析,简单易用。 * 自托管:Plausible 可以自托管,GA 不支持;GA 存储数据在 Google 服务器上。 * 性能:Plausible 更轻量,只有几 KB,加载更快;GA 可能影响网站性能。 * 隐私保护:Plausible 更注重隐私,不追踪用户数据;GA 会使用 cookies 并可能共享数据给 Google。 我是用 Plausible 来监控我的个人的一些站点,这里使用 Dokploy 来一键部署

Dokploy 托管你的全栈应用

Dokploy 托管你的全栈应用

我是一名开发者,平时会用到以下场景,都可以交由 Dokploy 托管: * 反向代理,之前用 Nginx,现在交给 Dokploy ,用 Traefik 托管 * 常规网站静态部署,比如打包一个 React 项目部署到服务器静态目录 * Nextjs 项目部署,之前依赖 Vercel,现在改为 Dokploy 托管 * NestJS 后端项目托管,直接将服务 Docker 化交给 Dokploy,之前我是用 Railway 托管或者直接在服务器进行 Docker 管理,现在也交给 Dokploy,并且用 Docker 替代 PM2 * 数据库安装与备份,如 Mysql,Postgresql,MongoDB, Redis * 其他: 如 Sentry

Dokploy 部署 Ghost 博客

Dokploy 部署 Ghost 博客

我的博客站点是基于 Ghost 开源部署的,最初是用 Nginx + Docker 进行部署管理,后来接触到了 Dokploy,就把所有的服务都统一交由 Dokploy 部署了,体验很丝滑,本文介绍使用 Dokploy 部署 Ghost 博客的详细操作。 首先在 Dokploy 面板,创建一个 Project 因为 Ghost 直接就在 Dokploy 的模板市场里面,所以直接 Create Service -> Template 在模板市场,搜索 Ghost,然后创建 创建完成之后,可以看到已经展示在 Service 列表了,点击进入 直接点击 Deploy 即可,如果需要更改配置,在 Raw 里面进行

Ghost 博客数据迁移

Ghost 博客数据迁移

数据迁移导出 我的博客是基于 Ghost 部署的,开源免费,部署在个人服务器的,但是有时候会迁移或者重置服务器,就涉及到博客内容的迁移了。 迁移主要涉及两块,博文内容的导出,以及图片等资源文件的导出。 博文内容导出 在管理后台的 Advanced -> Import/Export -> Migration tools -> Export 里面,点击 Export content,会导出一个 JSON 文件,这个文件里面就是你的博文内容了。 图片媒体资源导出 对于博文里面的图片,视频等媒体文件,主题配置之类的,需要到存放这些内容的目录进行导出。 因为我之前是通过 Docker 部署的 Ghost,在 Docker 配置中可以看到挂载的内容目录。 然后从服务器上对应位置,把资源下载到本地备份 在服务器上先将 content-volumes 目录压缩

Obsidian, Typora 图床自动上传 By Cloudflare R2 + Picgo

Obsidian, Typora 图床自动上传 By Cloudflare R2 + Picgo

我主要是为了写博客,以及内容同步到其他平台时,无需迁移图片资源,而且能分担服务器带宽压力,图片直接通过 Picgo 上传到 Cloudflare R2,然后在 Obsidian 或者 Typora 写完文章,复制 Markdown 文本到我的博客直接发布即可,我的博客是使用 Ghost 部署的,地址 meepo.me。 Cloudflare R2 Cloudflare 一直被称为赛博活佛,R2 10G 的 Storage,用不完,根本用不完,而且不用搞备案验证(你们知道我在说什么) 创建 API Token R2 是 Cloudflare 的对象存储服务,首先需要注册 Cloudflare,注意开通 R2 需要绑定信用卡,不用担心,并不是绑定就扣费。 首先进入

从零搭建 ubuntu 服务器及 nodejs项目部署

从零搭建 ubuntu 服务器及 nodejs项目部署

大概好几年前写的了,现在搬到博客上,防止丢失😄 **目标:**nodejs服务器配置及本地项目部署到线上的每一个业务流程,把本地可以跑通的nodejs项目,无论是微信小程序的后台,微信公众号的后台,还是手机app的后台,或是网站后台,都可以部署到线上,如果依赖的有数据库(mongodb),以及支持https服务,都可以做到! **服务器版本:**阿里云ECS ubuntu 14.04 64位,1核1G大概能提供2-3w的请求量 服务器地址: 60.205.249.111 服务器用户: captainjack 一、流程 * 域名: 购买域名 -> 域名备案 * 购买服务器 -> 阿里云ECS -> 服务器版本选择ubuntu 14.04 64位 * 配置新用户,禁用root及默认端口 * 配置ssh本地到服务器之间链接(为了不泄露个人信息,

Mac 本机配置远程服务器的免密 SSH 登录

Mac 本机配置远程服务器的免密 SSH 登录

在本地电脑上针对服务器进行远程登录配置,是非常必要的操作,不仅可以快速登录服务器,而且在使用 Datagrip 连接远程数据库时,也可以通过 SSH 配置文件的方式,快速进行认证并且连接。  id_ed25519 作为 SSH 密钥对是一种更安全且现代的认证方式,相比传统的 RSA 密钥,它在性能和安全性上都更好。 首先,在阿里云控制台上,进入 ECS -> 网络与安全 -> 安全组,确保它允许来自你 IP 地址的 22端口(TCP) 访问。 生成 SSH 密钥对(id_ed25519) 1. 打开终端,输入以下命令生成 SSH 密钥对: ssh-keygen -t ed25519 -C "

关于微信支付千二、千六手续费

关于微信支付千二、千六手续费

申请微信支付,需要先进入微信商户平台开通微信商户,而这里面涉及到一个交易手续费的关键环节。 一般自己注册商户平台时,交易手续费很多都是千6,也就是入账 1000块,就得给微信 6 块钱,如图,通过服务商注册,会能提供千 2 的账号,差距惊人。 我之前有朋友花了 6 万块,让小程序公司给上架了一个商城,也是千 6 的手续费,其实很多人是不知道这里面的细节的。 千二非常普遍,只要通过服务商给你开,千六到千二区间随便调整,而且服务商注册没有任何门槛,只是调整到千二的话,服务商就没有任何佣金了,不过行业里面大家现在基本都是默认千二。 需要注意的是,服务商帮忙开千二,实际上没什么成本,如果他们要收取昂贵的手续费,那么就有些不地道了。 千二代开需要哪些资料 1、营业执照照片, 2、法人身份证正反面 3、商户名称 4、公司对公户账号及具体位置开户行 5、手机号一个(能接验证码的) 6、邮箱号一个(

🤗不上班之后,收获很大

🤗不上班之后,收获很大

首先不再想着通过一个产品暴富,这种虽然很吸引人,但很多人都没看到成功者背后的努力,市面上很多产品都有竞品,为什么是他成功了呢 很多拿到结果的独立开发者也好,卖课的也好,他们付出了非常多的努力,并不是如表面所说“割韭菜”那么简单,很多人在很早之前就非常牛逼了,单纯的依靠运气起飞,我现在已经不信了,大力出奇迹,才是王道。 不再想着别人非常需要一个程序员的代码,代码就是快消品,不再执着于细节,不如等到产品有用户了,再为了优化用户真实的体验而开发。 要做产品的话,遍地都是点子,去 X 看一天,你能收获一年都做不完的产品的点子,至于是否能挣钱,另说 将自己当做一个销售,将产品卖给用户,才是最屌的,我彻底摆脱掉了程序员觉得自己技术牛逼就则怎么怎么滴的想法了 坚定的做个人 IP,水滴石穿,持续输出有价值的内容,积累粉丝,是这个时代,每个人都应该做的事情 处理好家庭关系,稳定的家庭关系,是一切事业开始的基础。 保持乐观,这点很难,国内教育,感觉根本没有教人们如何放松,反正我感觉是没学会,因为我这边房子不贵,我在没有房贷压力的情况下,

Plausible 开源版本部署

Plausible 自部署

Google Analytics 用起来不是太习惯,就弄个 Plausible 在自己的 VPS 上部署一下。 官方部署文档可以参考: community-edition ,官方文档是使用 Let's Encrypt 生成证书的,我这里使用的是 Nginx 配置自己的 SSL 证书,记录一下过程。 $ git clone -b v2.1.4 --single-branch https://github.com/plausible/community-edition plausible-ce ​ $ cd plausible-ce ​ $ touch .env ​ $ echo "BASE_URL=https://plausible.domain" >> .env

数据库 Migration

数据库 Migration

记录一下最近开发项目时,使用 typeorm + postgresql 开发业务,用版本化的方式来管理数据库结构的变化,这样数据进行更新时才会安全可控,而且还可以回滚迁移。 typeorm 是如何跟踪这些变化的呢,所有的变动都能通过 migrate 的方式记录下来,主要是依赖数据库自身底层的机制,尤其是二进制日志,即 Binary Log,简称 binlog 记录结构变更(DDL): 当执行 CREATE TABLE、ALTER TABLE、DROP TABLE 等数据定义语言(DDL)语句时,都会被 binlog 详细记录下来 记录数据变更(DML): 当执行 INSERT、UPDATE、DELETE 等数据操作语言(DML)语句时,binlog 也会记录修改前和修改后的数据 我使用 typeorm 来执行这些 migrate,