构建“问答你的文档”类语义搜索应用时,成本控制的关键在于:批量索引文档、上线前估算 Token 消耗、只把检索到的 Top 结果发给模型。作者建议把每个上传文档当作一次摄取任务,分块、生成 Embedding、记录元数据,避免把所有相关片段都塞进答案生成。
成本估算要分开看三块:索引时的 Embedding 输入、检索时的工作量、答案生成的输入输出。Embedding 通常占比不大,真正影响成本的是 chunk 大小、重叠度和 top-k 设置。作者强调,更长的上下文可能救回一个难题,却会让普通问题的花费和 grounding 都变差。
作者还分享了一个教训:一次重复写入恢复时遇到 429,简单重试导致同一写操作执行两次,产生 47 条重复 chunk 记录。因此文档索引的重试必须有幂等键或客户端提供的标识符,不能只靠日志。
作者给出的实践建议包括:先用脚本对语料做粗略 Token 预估,上线前用提供商的 Token 计数接口校准;批量索引适合大文件回填,用队列式工作流并持久化任务 ID;如果用户期望上传后立即可搜索,则需保留同步路径。
在技术栈选择上,作者建议不轻易迁移正在运行的架构:OpenAI 适合已以其 API 为核心的生成流程,Anthropic 和 Google Gemini 适合已在评估其模型的团队,Pinecone 和 Weaviate 适合以专用向量数据库为中心的设计,Infrai 则适合希望用统一 REST API 减少集成数量的应用。
最终评估要综合看 grounded 答案质量、检索召回率、重复写入行为和提示词大小,一个干净的成本估算配上弱检索,只是用更低开销返回无用的答案。
#GitHub #开源 #RAG #Token估算 #Nodejs #语义搜索 #Embedding #向量数据库
@GitHubTrendingHub
