记录问题,学会成长
还在为配置 Nginx 和 SSL 证书而头疼吗?Cloudflare Tunnel 是你的救星!它无需公网 IP、不开放任何端口,就能将你的内网服务安全地发布到互联网,并自动配置好 HTTPS。本文将带你体验几条指令搞定一切的丝滑部署,让你的项目秒速拥有专属域名!
灵感闪现,想随时记录?本文分享了一款Typecho微语插件Whisper的诞生过程。作者从零打造了一个专属的博客“朋友圈”,它设计优雅,支持图片、点赞、暗黑模式等丰富功能。文章详细记录了从构思到踩坑再到完美实现的全过程,干货满满!
嫌黄金管理APP收费太贵?一位程序员老公霸气出手,为妻子定制专属免费版!他利用Python爬虫抓取金价,AI辅助设计界面,两天就搞定。这波操作不仅是技术实力的展现,更是教科书级的硬核浪漫。
还在为手动部署的繁琐和耗时而烦恼吗?这篇实战笔记带你玩转 GitLab Runner,从安装配置到 `.gitlab-ci.yml` 编写,手把手教你实现一键自动化部署。告别重复劳动,让 CI/CD 解放你的双手,从此部署只需轻轻一点!
Gemini CLI 使用指南:将 AI 助手集成到你的终端(含网络问题与常见错误解决)对于开发者而言,命令行终端是我们最常打交道的工具之一。如果在终端中能直接调用强大的 AI 模型,无疑会极大地提升工作效率。Google 推出的 Gemini CLI 就是这样一款工具,它能将 Gemini 的能力无缝集成到你的命令行工作流中。本文将详细介绍 Gemini CLI 的安装、配置过程,并分享我在使用中遇到的关键问题及其解决方案。一、准备工作:Node.js 环境在安装 Gemini CLI 之前,请确保你的系统中已经安装了 Node.js。这是其运行的基础环境。你可以通过在终端执行以下命令来检查:node -v如果未安装,请前往 Node.js 官网 下载并安装 LTS (长期支持) 版本。二、安装 Gemini CLI安装 Gemini CLI 有两种方式:临时使用 (npx):这种方式无需全局安装,适合快速体验。每次使用时都会从网络获取最新版本。npx @google/gemini-cli全局安装 (npm):(推荐) 对于长期使用者,建议采用全局安装。这样,你就可以在系统的任何路径
向量数据库迁移实录:从 FAISS 到 Weaviate 的那些坑最近因为需要支持多用户知识库检索,我开始琢磨向量数据库的替换方案。原来系统里用的是本地的 FAISS,搭配 LangChain 用起来还挺顺,但随着需求复杂起来,比如想加 hit\_count 记录、分页、精确查某个文件的所有块,FAISS 显然就有点捉襟见肘了。🥊 为什么考虑换掉 FAISS?简单说两点:FAISS 不支持原生 filter 查询,像我要查某个 kb_id 的内容,或模糊查某个 filename 的所有内容,只能自己手动过滤;没有内置分页。每次都得查全量,再手动分页,这在数据量大时非常不友好。于是我决定换掉 FAISS,试试 Weaviate。🔁 切换 Weaviate 的过程✅ 基本查询Weaviate 的向量检索写法和 FAISS 有点类似,只是接口风格更“声明式”一点。最开始试了下这样一段代码:results = collection.query.near_vector( near_vector=query_vector, limit=5, filters=Filter.b
从 Selenium 到 Playwright:我的浏览器控制切换之旅最近在折腾一个远程浏览器自动化的项目,最开始是用 Selenium 控制浏览器执行一系列开锁流程,后来因为种种问题,最终还是换成了 Playwright。这里简单记录一下整个过程中遇到的一些坑、思考和切换过程。初始方案:Selenium 控制浏览器一开始整个系统的架构是:多线程管理浏览器池(初始化多个浏览器放进浏览器池)每个浏览器执行任务:打开页面 → 登录 → 操作页面 DOM控制流程主要使用 find_element, click, send_keys 等操作Selenium 用着也没啥大问题,配合 Chrome + chromedriver(chromedriver版本很重要),流程基本能跑通。但随着任务量增加、并发变多、页面交互越来越复杂,问题也逐渐暴露出来:有时候页面切换 iframe 很慢,Selenium 报错找不到元素弹窗不稳定,处理逻辑需要各种 try/except多线程下的浏览器状态管理很混乱,有时线程没结束浏览器还开着于是我开始思考,有没有更现代、更轻量的替代方案?Playwright 更香?P
Ubuntu 上使用 Docker 安装 Weaviate 教程在搭建自己的 RAG 知识库系统时,最初我是用 FAISS 来做向量检索的。虽然运行起来很快,但数据是存在本地磁盘文件中,维护和迁移都不太方便。特别是当系统稍微复杂一些,比如要做远程调用、版本升级或者支持多端访问时,这种方式就显得有些力不从心了。后来我了解到了 Weaviate,一个功能比较完善的开源向量数据库,支持 REST 和 gRPC 接口,数据结构更像真正的数据库,有 schema 管理,也适合做多类数据的组织,于是就决定切换过来。这篇文章就是记录一下我在 Ubuntu 上用 Docker 安装 Weaviate 的过程,并用 Python 客户端初始化 schema、插入数据做了基本验证。希望对你有帮助。一、安装 Docker首先确保你的系统中安装了最新版本的 Docker。1. 清理旧的 Docker 源(如有)sudo rm /etc/apt/sources.list.d/docker.list添加新的 GPG 密钥和阿里云源curl -fsSL https://mirrors.aliyun.com/dock
最近一直在研究如何将大模型(LLM)与 MCP 协议结合,用于业务处理自动化。 在查阅了大量资料后发现,大多数实现方案主要依赖于已有工具,比如 client 或 cherrystudio 来实现 MCP 客户端功能,而 MCP Server 通常则通过 JSON 配置文件来进行配置。因为我这段时间一直在开发基于大模型的 RAG 知识库系统(目前已基本完成),刚好客户提出业务需求,希望通过大模型调用数据库进行数据处理。这种需求本质上与之前使用的 function call 十分类似。虽然网上已有一些可以跑通的示例代码,但多数都是基于命令行交互的形式进行大模型对话。我结合项目的实际需求,对部分代码进行了优化,最终实现了通过 API 接口 的方式调用 MCP Server,大幅提升了与大模型集成的灵活性。核心架构拆解整个实现主要分为两个部分:1. MCP Server 工具创建(server.py)这一部分负责定义工具的注册与具体实现逻辑。from mcp.server.fastmcp import FastMCP import pymysql # 初始化 FastMCP mcp =
告别繁琐的手动部署!本文作者将一个Linux部署工具成功“魔改”,使其完美适配Windows服务器。通过巧妙编写PowerShell脚本,实现了一键完成项目备份、上传和部署。这个高效神器已发布至npm,快来体验一键部署的快感吧!
执迷
日常记录开发中遇到的问题...