在 Astro 中构建感知 Pipeline 内容的经验总结

你可以为不同的模型类型创建特定的内容,而无需在每次页面浏览时都调用 AI API。

我使用 Astro 构建了一个 AI 工具目录。起初,每个模型页面看起来都一样。摘要是唯一的,但指导部分却是通用的。音频模型的页面和文本模型的页面显示的都是同样的空白占位文本。

这对用户体验不好,对 SEO 也不利。

我通过使用 HuggingFace 的一个单一元数据字段解决了这个问题:pipeline_tag。

系统工作原理如下:

  • 数据存储:我的 ETL 流程在获取步骤中将 pipeline_tag 保存到数据库中。
  • 构建时逻辑:Astro 在静态网站生成过程中加载此标签。
  • 决策路径:我使用简单的代码来检查标签。如果标签是 "text-generation",页面会显示 LLM 建议;如果标签是 "audio",则显示语音建议。
  • 零运行时成本:所有这些逻辑都在构建期间完成。用户接收到的是纯 HTML。当他们访问网站时,不会有任何 API 调用或额外的处理。

我还利用这些数据创建了更好的可用性信号:

• 下载层级:我不再只是显示一个数字,而是将模型分类为“成熟型”、“活跃使用型”或“小众型”。这可以告诉用户是否能找到社区支持。 • 相关联署:LLM 页面显示 GPU 租赁链接。Embedding 页面则显示不同且更相关的链接。 • 索引控制:如果某个模型的数据较差或缺少标签,我会使用 "noindex" 标签。这可以防止低质量页面出现在 Google 搜索结果中。

权衡之处:

  • 标签不准确:有些作者对模型的标记不正确。我通过回退到通用指导来处理这个问题。
  • 代码复杂度:页面组件现在变长了。我计划随着规模扩大,将其重构为辅助函数。

最终结果是一个感觉为用户量身定制的网站,且无需承担实时 AI 生成带来的巨大成本。

来源:https://dev.to/morinaga/what-i-learned-building-pipeline-aware-content-variants-in-a-static-astro-directory-1op4