内联引用
一个可悬停的引用组件,在文本中内联显示来源信息和引用,非常适合带有引用的 AI 生成内容。
InlineCitation 组件提供了一种在文本内容中内联显示引用的方法,类似于学术论文或研究文档。它由一个引用标签组成,悬停时显示详细的来源信息,非常适合需要引用来源的 AI 生成内容。
Install using CLI
Install Manually
Copy and paste the following files into the same folder.
特性
- 悬停交互以显示详细的引用信息
- 轮播导航,用于多个引用,带有上一个/下一个控件
- 实时索引跟踪,显示当前幻灯片位置(例如,"1/5")
- 支持来源标题、URL 和描述
- 可选的相关摘录引用块
- 可组合架构,用于灵活的引用格式
- 可访问的设计,具有适当的键盘导航
- 与 AI 生成内容无缝集成
- 简洁的视觉设计,不会中断阅读流程
- 智能徽章显示,显示来源主机名和计数
与 AI SDK 一起使用
使用 experimental_generateObject 为 AI 生成内容构建引用。
将以下组件添加到你的前端:
pages/index.vue
Add the following route to your backend:
server/api/citation.ts
目前,Streamdown 或 Response 组件没有官方支持内联引用。这是因为:
- 没有好的 Markdown 语法用于内联引用
- 语言模型不会自然地使用内联引用语法响应
- AI SDK 没有内置的内联引用支持
潜在方法
虽然这些方法是假设性的,并且没有官方支持,但有两种概念性的方式可以让内联引用与 Streamdown 一起工作:
- 脚注转换:GitHub Flavored Markdown (GFM) 使用
[^1]语法处理脚注。你可以假设删除默认的脚注渲染,而是将脚注转换为内联引用。 - 自定义 HTML 语法:你可以添加一个系统提示,指示模型使用特殊的 HTML 语法,如
<citation />,并将其作为自定义组件传递给 Streamdown。
这些方法需要自定义实现,目前不支持开箱即用。我们将在未来调查此用例的官方支持。
目前,推荐的方法是使用 experimental_useObject(如上面的使用示例所示)生成结构化引用数据,然后手动解析和渲染内联引用。
Props
<InlineCitation />
classstring
''<InlineCitationText />
classstring
''<InlineCitationCard />
closeDelaynumber
0openDelaynumber
0<InlineCitationCardTrigger />
sourcesstring[]
classstring
''<InlineCitationCardBody />
classstring
''<InlineCitationCarousel />
classstring
''<InlineCitationCarouselContent />
classstring
''<InlineCitationCarouselItem />
classstring
''<InlineCitationCarouselHeader />
classstring
''<InlineCitationCarouselIndex />
classstring
''<InlineCitationCarouselPrev />
classstring
''<InlineCitationCarouselNext />
classstring
''<InlineCitationSource />
titlestring
urlstring
descriptionstring
classstring
''<InlineCitationQuote />
classstring
''