Git 学习笔记
🍄 Git 全方位实战手册:从入门到通关 核心概念图解 (The Mental Model) Git 的操作主要在三个区域流转: 工作区 (Working Directory):你实际写代码的地方。 暂存区 (Staging Area/Index):git add 后文件存放的地方(准备提交的包裹)。 本地仓库 (Local Repository):git commit 后版本存档的地方。 远程仓库 (Remote Repository):GitHub/GitLab 等服务器端。 .gitignore只对 未被追踪 untracked 的文件有效,一旦文件之前被 commit 过,git 便会无视该文件的配置,因此需要配合 git rm --cahce 使用。 git rm –cache <文件名> 让 git 停止跟踪某个文件,但是不删除本地的文件 常用语某些“亡羊补牢”的场景,把不该提交的配置文件提到到了 Git,现在需要从仓库中删除,但本地还需要使用,通常配合 . gitignore使用。 git stashgit st...
TODO
Pending Issues [!todo] 配置 dawn-ai 并测试接口连通性 review 代码 Fixed 多级目录时,通过目录定位会出问题 目录名一致,但是层级关系不一致,不会被视为同一目录,建议不要这样设置 Obsidian 双链转 hexo 链接 引用hexo-filter-titlebased-link 库,添加配置项解决该问题 Mermaid 代码块渲染失败,需要引用 JS 语法 引用hexo-filter-mermaid-diagrams 库,但是间歇性还是会渲染不出来,推荐还是使用标签插件 (Tag Plugin) 语法 12{% mermaid %}{% endmermaid %} 本地测试经常性报 fontawesome failure 使用隐私模式访问,大概率没问题 图片多大太大,导致加载缓慢的问题。参考: https://gemini.google.com/share/320865e42713 配置图床(github repo: blog-images),并...
RAG
Retrieval Argument Generation - 检索增强生成 EmbeddingChunking: 语义切分 段落切分 … Retrieval混合检索 (Sparse/BM25 + Dense) [!important]Dense retrieval 向量检索依赖 embedding,擅长做语义相近查询,但遇到这些场景会吃亏: 专有名词 精确术语 编号、关键词 用户 query 很短,只有1-3个 token 左右 因此需要搭配 lexical/sparse 通道,做混合检索。 Dense recall: 把 query 和文档都编码成稠密向量(dense vector),再用向量相似度做召回; Sparse recall: BM25 属于 Sparse recall,因为它依赖的是词项空间里的稀疏表示,大多数维度都是 0,只在出现过的词上有权重。 Fusion: dense 和 sparse 结果融合,由于其检索的体系不同(dense 依赖 cosine similarity, sparse 依赖 bm25或 pgvecto...
dawn-ai
IssuesRAGRAG 召回率偏低 “xxx” 这种很短的人名 query,对 embedding 模型来说语义信息太少 当前 /rag/search 没有关键词精确匹配兜底 阈值 0.7 又偏高 结果就是:明明文本里有“xxx”,但向量相似度没过线,最终返回 0 如果你要这个搜索更符合直觉,最有效的是这三种改法: 把 similarity-threshold 从 0.7 下调到 0.4 到 0.55,先恢复基础召回。 给 /rag/search 增加关键词兜底:向量结果为 0 时,再做一次 content 的精确匹配或 LIKE 检索。 对短 query,尤其是 2 到 6 个字的人名、地名、术语,走混合检索而不是只走向量。 整改方案P0 实现 overlap-text-splitter:由于 springai 自带的 textsplitter 不支持设置 chunk overlap size,需要自实现。 [线程池定制]为 LLM API 调用和 Rerank 模型调用配置专属的“重度 I/O 密集型” Thr...
dawn-ai 企业级 Agent 整改方案
参考 Claude Code 源码架构深度解析 V2.0 提炼的 7 大设计原则,结合 dawn-ai 现状,制定从 prototype 到 enterprise-grade agent 的整改路线。 详细差距分析见 dawn-ai 增强点记录 一、设计原则对标(Claude Code → dawn-ai) 以下 7 条原则提炼自 Claude Code 4756 个源文件的架构解析,每条原则都有对应的源码实现支撑。 原则 1:不信任模型的自觉性 好行为要写成制度。你希望模型先读代码再改代码,就写进 prompt;你希望模型不要乱加功能,就写进 prompt;你希望模型遇到风险操作停下来,就在 runtime 层加权限检查。不要指望一个 LLM 每次都”想到”该怎么做。制度化的行为比临场发挥稳定得多。 Claude Code 对应源码:getSimpleDoingTasksSection()、getActionsSection() dawn-ai 现状:buildSystemPrompt() 已实现动态系统提示词,但行为规范较粗糙,缺乏 Claude Code 级别的细...
dawn-ai 增强点记录
代码与文档差距分析 对照 dawn-ai 仓库代码与规划文档,标注各模块实现状态。 模块 状态 关键代码 备注 Prompt Engineering ✅ 已实现 BeanOutputConverter<RewriteResult>、buildSystemPrompt() 结构化输出通过 Record(PlanStep) 实现,系统提示词动态构建 ReAct ✅ 已实现 AgentOrchestrator、TaskPlanner、application.yml max-steps=10, plan-and-resolve 完整, temperature 差异化(TaskPlanner 0.3, QueryRewriter 0.1) RAG ✅ 已实现 RagService、QueryRewriter、KnowledgeSearchTool Query 重写、Agentic RAG、Chunking(500token/50overlap)、相似度阈值 0.7、max-calls=3、去重机制 向量检索算法 �...
LLM 基础知识
Transformer [!info]在 2007 年由 Google 提出的神经网络架构,基于 Self-Attention 来构建。 Transformer 本质上是一个高并发、无状态、基于权重路由的特征聚合引擎 Transformer 的核心机制是 self-attention LLM 是 Transformer 架构在海量数据和巨大参数量下的工程实现 Self-Attention [!info]Self-Attention是所有现代大模型的“灵魂”。它的核心作用是让模型在处理一个词时,能够同时观察到句子中其他所有的词,并判断哪些词对理解当前词最重要。 联系点: 它解决了长距离依赖问题。比如在句子“猫太胖了,因为它吃得太多”中,Self-Attention 能让模型明确知道“它”指代的是“猫”。 数学逻辑: 它通过计算 Query ($Q$)、Key ($K$) 和 Value ($V$) 的点积来分配权重。公式表达为: $$\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sq...
vibe coding
模板页面:https://variant.com/community
AI-Interview
[!Interview] 项目架构怎么设计? Agent 系统怎么拆分? Planner/Tool/Memory 怎么分层? Memory 怎么搞?短期、长期和用户画像各自怎么处理? 延迟、成本、效果如何平衡?Token 成本、推理延迟、RAG 召回策略怎么权衡? RAG 效果怎么评估?召回率、准确率,线上怎么验证? 高频: Tool Calling Memory RAG LearningAgent & 系统架构 什么是 AI Agent? Agent 和普通 ChatBot 有什么区别? 如何实现多 Agent 协作系统? 什么是 ReAct Agent? AI Chat 系统的整体架构是什么? 如何设计一个 AI 问答系统架构? Agent 如何做任务规划(planning)? Agent workflow 和普通 workflow 有什么区别? Agent 为什么需要 memory? Agent 如何避免无限循环调用工具? RAG 什么是 RAG(R...
ReAct
[!info]Agent 的实现,利用了 ReAct 设计思想。 这张图表直观地展示了 ReAct (Reason + Act),一种用于大型语言模型(LLM)的复杂任务解决和提示技术。它将逻辑推理 (Reasoning) 与执行行动 (Acting) 结合在一个循环中,使模型能够利用外部工具和知识来完成复杂的任务。 主要组件与流程图解: 用户输入 (User Input): 流程始于一个复杂的用户查询(图中最左侧的蓝色方框)。例如:“查找最大国家的首都、人口和密度”。这需要多步规划和外部信息。 ReAct 智能体 (ReAct Agent - LLM): 核心是一个由 LLM 驱动的智能体(中央的大型绿色方框)。它不仅是一个模型,还包含了一个带有示例的提示 (Prompt),用于指导其思考和行动的格式。 循环迭代 (Iterations): 这是 ReAct 的精髓。对于复杂任务,智能体会进行多次循环,每次循环包含: 思考 (Thought - 浅黄色方框): 智能体生成一个推理过程,确定下一步该做什么,规划行动路径。例如,智能体会产生这样的想法:“首先需要查找哪...
