《AI Agent 开发入门》9.1 嵌入与向量存储:本地可离线方案
本节用标准库展示固定维数、归一化、索引和余弦相似度,避免让核心项目依赖 NumPy。HashingEmbedder 不具备训练出的语义理解。VectorStore 检查维数、有限数值和重复 id;search 计算余弦,未归一化输入也能比较。空索引返回空,k 必须为正;排序同分时保持插入次序。
tag
本节用标准库展示固定维数、归一化、索引和余弦相似度,避免让核心项目依赖 NumPy。HashingEmbedder 不具备训练出的语义理解。VectorStore 检查维数、有限数值和重复 id;search 计算余弦,未归一化输入也能比较。空索引返回空,k 必须为正;排序同分时保持插入次序。
深入多模态检索系统(图搜、文生图检索、RAG 检索层、向量数据库)的测试工程:检索正确性验证(召回率/精确率/MRR)、向量索引测试(HNSW/IVF 召回完整性与近邻正确性)、嵌入质量评估(语义一致性/跨模态对齐)、检索管线回归、数据污染与更新测试、多模态检索 CI 门禁设计。
系统覆盖把 WebAssembly 运行时嵌入宿主应用的实践:嵌入(embedding)是什么、为什么服务器/桌面/移动应用需要嵌入 WASM、Rust 生态的官方嵌入 API(wasmtime crate:Engine/Store/Module/Instance/Config)、C 稳定 ABI(wasmtime-c-api 与 wasm_c_api_t)、Go 与 Python 的绑定(wasmtime-go/wasmer-python)、host 函数(自定义 imports)如何让 WASM 调用宿主能力、线性内存访问与数据传递模式、多语言绑定底层都是 C ABI 的原理、Wasmtime/Wasmer 嵌入 API 的差异对比、以及进程内嵌入 vs 进程外隔离的工程取舍,帮助读者在任何语言里安全、高效地嵌入 WASM 作为「可插拔执行沙箱」。
Go 用组合而非继承来复用代码。本节给 TaskAPI 引入子任务 Subtask,用结构体嵌入复用 Task 的字段与方法,讲清提升规则、嵌入字段名、方法冲突消歧、值嵌入与指针嵌入的差别、多级嵌入的传播,并说明何时该用具名嵌套而非结构体嵌入。
详解 Lua 与 C 语言的双向交互:通过 C API 在 C 程序中嵌入 Lua 虚拟机、用 C 编写 Lua 扩展模块、栈操作与数据交换的核心机制,附完整代码示例。