提示词是代码。Genkit让运行时可以被审查。 笔记

提示词是代码。Genkit让运行时可以被审查。

生产环境中的提示词(prompts)与模型游乐场中的提示词存在显著差异,可能导致潜在失败。Genkit 通过将提示词与流(flows)、模式(schemas)、工具、上下文、追踪和评估集成到统一的应用模型中来解决这一问题。提示词应作为版本化工件使用 Genkit 的 Dotprompt 格式进行存储,封装模板内容、模型配置和模式定义。这确保了提示词变更可在 Git 中进行审查,且设置随模板一同传递。提示词应封装在带类型的流中,建立具有稳定名称、经过验证的输入和输出以及追踪身份的应用边界。这种分离确保了生成前的业务规则和生成后的验证独立于模型的核心功能。执行上下文(如身份验证令牌)应通过 Genkit 的上下文对象传递,而非直接插值到提示词本身,从而增强安全性。模型输出必须被视为不可信数据,通过模式验证其可解析性,并通过其他控制措施处理其主张、语气和交付方式。Genkit 追踪整个流,提供对操作、模型调用、工具及潜在失败的视图。该遥测数据基于 OpenTelemetry,有助于调试和可观测性。变更应针对数据集(包括各种边缘情况)进行评估,以确保工作流满足其产品契约,而不仅仅是匹配单个句子。开发人员应部署整个流,而不仅仅是零散的提示词,从而实现协调的回滚、一致的评估和安全部署。最终,完整的工作流——涵盖提示词、流、上下文、工具、模式、追踪和评估——构成了可维护的产品。