基本信息

来源摘要/节选

公开展示已截断至最多 800 个字符;请访问原始来源查看完整上下文。

在构建 AI 聊天应用时,我们经常需要传递一些 不属于消息内容本身 的额外信息。例如: 🕒 时间戳 :消息生成的时间。 🤖 模型信息 :使用的是 GPT-4 还是 Claude 3.5。 💰 Token 用量 :当前对话消耗了多少 Token。 🆔 用户上下文 :Session ID 或用户 ID。 Vercel AI SDK 提供了 Message Metadata(消息元数据) 功能来解决这个问题。它允许我们在消息级别(Message Level)附加自定义数据,这些数据不会作为 prompt 的一部分发送给大模型,而是专门用于 UI 展示或逻辑处理。 本文将带你通过三个步骤,实现一个带有时间戳和 Token 统计功能的聊天应用。

  1. 定义类型 (Type Safety) 为了在前后端获得完整的 TypeScript 类型提示,我们首先需要定义元数据的 Schema。这里使用 zod 来定义结构。 新建 app/types.ts : TypeScript // app/types.ts import { UIMessage } from ‘ai’ ; import { z } from ‘zod’ ; // 1. 定义元数据 Schema // 这里我们定义了创建时间、模型名称和 Token 用量 export const messageMetadataSchema = z. object ({ createdAt : z. number (). optional (), model : z. string (). optional (), totalTokens : z. number (). optional (), }); // 2.…

来源说明

当前只保存了公开页面节选,不代表原文全文。请以原始来源为准。

本页只呈现已做哈希绑定的来源证据,不包含基于旧正文或缺失原文的扩展推断。