Skip to main content

Search: #AInative

无原创,纯转发
  1. 用 Payload CMS + Vercel AI SDK 搭建“可运营”的 AI 应用

    把 AI 做到生产可用,更多是架构问题:提示词不该写死在代码里,长任务要能可靠重试,Embedding 要能查询,输出要结构化可校验,更关键的是——要能看见系统到底“说了什么、做了什么”。

    这篇文章分享了 InnoPeak 在 FinSureTech 场景下的一套实践组合:用 Payload CMS 做“可视化、可配置的 AI 后端”,用 Vercel AI SDK 做“结构化生成与工具调用的运行层”,形成一条从配置、执行到观测的闭环。

    1) 用 Payload 管理 Prompt 与模型选择(不发版也能调)

    • 把系统/用户提示词做成模板(如 Handlebars),集中放在 Payload 的 globals
    • 模型 ID 用受控下拉选项管理,避免随意输入造成线上不可控
    • 非开发同事也能在后台安全修改提示词与模型策略,应用逻辑保持稳定

    2) 在后台“可视化”JSON Schema,提升结构化输出可靠性

    做结构化输出(JSON schema)时,最大的成本在测试与迭代。作者的做法是:

    • 在 Payload Admin 里直接渲染/展示 schema
    • 让开发者一键复制到测试对话或本地 LLM 环境验证

    这样能更快发现:字段缺失、类型不匹配、约束不被遵守等问题。

    3) 用 Payload Jobs Queue 跑长任务:重试、编排、定时都省了

    AI 工作流常有“慢”和“不稳定”:Embedding 生成、文档扫描、分段处理、失败重试……在 serverless 环境尤其麻烦。Payload 的 Jobs Queue 提供:

    • 任务与工作流编排
    • 重试与调度
    • 可用 Vercel CRON 或其他调度器触发

    把“队列基础设施”从应用里剥离出来,专注业务流程。

    4) Embedding 直接存进 Payload 的 Postgres(pgvector),再用 Drizzle 查

    Payload 本身不内建向量字段与索引,但可以用 schema hooks 扩展:

    beforeSchemaInit 增加 vector 列,让生成的 Drizzle schema 也包含它(全类型化)
    afterSchemaInit 创建 HNSW 向量索引、以及 GIN 文本索引(便于混合检索)

    随后即可在 API route / server action / task 里做相似度检索与排序,实现 RAG 的“数据库内闭环”。

    5) 记录 Token 与完整消息:成本可控、行为可追溯

    为了线上可观测性,作者在 Payload 里建了 TokenUsage 集合,保存:

    • 输入/输出/总 token(含缓存、推理 token 等)
    • 与模型交互的完整 messages(包含 tool calls)

    并通过 Vercel AI SDK 的 onFinish 钩子自动落库。好处是:复盘提示词与输出、定位异常、优化成本都有依据。

    结论很明确:AI 应用要“能跑、能改、能查、能追踪”,需要的不只是模型能力,更是把配置、数据与运行时纳入同一套可运营系统。

    原文链接:https://finly.ch/engineering-blog/916926-building-ai-native-applications-with-payload-cms-and-the-vercel-ai-sdk

    #PayloadCMS #VercelAISDK #AInative #RAG #可观测性 Finly - Building AI-Native Applications with Payload CMS and the Vercel AI SDK
1px