人工智能技术文章
-
大模型流式响应偶尔重复半句,通常不是模型把同一句生成了两遍,而是客户端重复消费增量块、混淆事件边界或把结束事件再次当成正文。本文从流式传输、UTF-8 解码和结束标记三个边界拆开排查方法。222 收藏 -
MCP Tasks 把耗时工具调用变成可查询的任务,但取消不是简单发一个通知。本文按能力协商、任务状态、tasks/cancel 请求和客户端收口拆开可取消流程,说明如何处理竞态与终态边界。426 收藏 -
AI 接口返回结构化结果时,空对象不一定代表没有数据。本文用 finish_reason、拒答字段和 JSON Schema 校验拆开拒答、截断、合法空结果三种状态,并给出可落地的用户提示策略。363 收藏 -
RAG 不是把检索结果越多越好。长文档切块过粗、候选混杂或没有在重排后裁剪上下文,模型就会被无关段落淹没。本文用 Go 拆开分块元数据、dense 与 sparse 候选、重排 top 10 和上下文预算,给出可回放的验收路径。312 收藏 -
Qdrant 中删除文档后仍被检索到,通常不是删除接口失效,而是写入确认、索引可见性、分布式顺序或应用缓存处在不同阶段。本文用一条可复查的排查链定位并修复这个问题。482 收藏 -
多模态模型返回的 JSON 即使能解析,也可能缺字段、类型漂移或混入不该出现的值。本文用一条可复现的处理链说明如何先解析、再校验、按错误类型决定修复或重试,并划清模型约束与业务校验的边界。102 收藏 -
Embedding 模型切换后,向量维度、距离度量和索引构建参数可能同时变化,旧索引不能靠改字段继续复用。本文用 pgvector 的 vector(1536)、vector(3072) 与 HNSW 示例,给出双写迁移、验收和可回滚方案。222 收藏 -
大模型以流式方式返回 JSON 时,任意一个分片都可能停在字符串或对象中间。本文用 Go 写一个增量缓冲器,以括号配对判断候选完整度,最后再用标准 JSON 解析和业务字段校验收口。284 收藏 -
把整张长图直接交给视觉模型,常见结果是文字区域太小、成本偏高且难以复核。本文用 OCR 返回的 boundingPoly 先定位目标区域,再把归一化坐标映射为像素矩形,最后用二次识别确认裁剪没有偏移。425 收藏 -
长文切片容易在 RAG 召回中占满候选集。本文用 Go 演示按来源分桶、限制每桶配额,再把候选交给 rerank,最后按 token 预算组装上下文,并给出可复查的召回指标。118 收藏 -
批量推理入口如果直接为每个请求创建 goroutine,短时间内就会把下游模型服务和本地内存一起推高。本文用 Go 的 channel 信号量限制并发,配合 context 取消、结果回收和失败清理,给出一条可以验收的控制路径。331 收藏 -
批量推理服务把长任务和短任务混在一个先进先出队列里时,小请求会被大任务拖住。本文用 Go 的 heap.Interface、优先级字段和 worker 调度,拆出一条可验证的隔离路径,并说明公平性与取消边界。274 收藏 -
多模态模型处理长截图或复杂表格时,整图输入常把小字号和列关系一起压缩掉。本文用区域裁剪、坐标记录和字段映射三步,搭建一套可复核的表格识别流程,避免只看最终文本猜错位置。221 收藏 -
AI 接口采用流式输出后,JSON 可能被拆在多个数据块里,直接逐块反序列化会遇到半截对象和重复消费。本文用 Go 的缓冲区、边界扫描和字段完整性检查,构造一条可复现的流式解析链路。395 收藏 -
多模型推理服务常见的问题不是请求发不出去,而是任务一拥而上把显存和上游连接同时压满。本文用 Python asyncio.Semaphore 限制并发入口,配合 TaskGroup、超时和结果核对,给出一套可验证的推理任务调度写法。260 收藏