本页面介绍了服务器提示模板的一些最佳实践和注意事项,包括尚不支持的功能。请注意,随着服务器提示模板的发展,其中许多功能都将推出,因此请查看版本说明,了解最新动态!
最佳做法
管理模板中也详细介绍了其中许多最佳实践。
对模板进行版本控制
创建附加了使用语义版本控制 (semver) 的版本的模板 ID。
使用 Firebase Remote Config,以便您可以轻松更改请求中的模板和其他值。
保护您的模板
除非您已对更改进行全面测试,否则请避免修改生产环境中使用的模板。
在进入生产环境之前,请先锁定模板。
锁定模板可防止意外修改,但锁定并不能完全阻止修改。具有适当权限的项目成员始终可以解锁模板以进行修改。
我们建议锁定代码(尤其是生产代码)正在使用的模板。
保护 Gemini API 的使用
为输入变量编写强大的输入验证,这有助于:
- 有助于防范提示词注入。
- 有助于确保请求成功,并获得预期响应。
为您的 Firebase 项目强制执行仅限模板模式,以便通过 Firebase AI Logic 发出的所有 Gemini API 请求都必须使用服务器提示模板。
服务器端提示词模板尚不支持的功能
随着服务器提示模板的不断发展,其中许多功能将陆续推出,请查看版本说明了解最新动态!
模板尚不支持 Firebase AI Logic 的功能
服务器提示模板尚不支持 Firebase AI Logic 的以下标准功能:
- 双向流式传输 (Gemini Live API)
- 混合或设备端推理
- 将输出限制为枚举列表
另请注意,如果您在 Firebase 控制台中使用 AI 监控,则模板 ID 尚未填充到任何记录中。
模板尚不支持的 Dotprompt 常见元素
服务器端提示词模板可能很快就会支持 Dotprompt 的以下常见元素:
在 frontmatter 中使用 JSON 架构规范来定义输入和输出架构。
- 请注意,非服务器模板请求也不支持此规范。 我们目前仅支持 OpenAPI 架构规范。
使用
*声明通配符字段定义。使用
@key或通常迭代对象输入的字段(这是@key相关的情况)。使用
@root,无论当前this是什么,您都可以引用根变量上下文。
服务器提示模板可能不支持 Dotprompt 的以下常见元素:
- 使用局部模板,即可以包含在其他模板中的可重用模板代码段。
其他注意事项
默认情况下,当您在 Firebase 控制台中使用引导式界面时,我们会在支持 Firebase AI Logic 的所有区域中预配模板。如果您使用 Agent Platform Gemini API (formerly Vertex AI),并且您的应用场景需要基于位置的限制,则可以使用 REST API 为模板指定位置。
如果您想以文件形式提供服务器提示模板(而不是使用 Firebase 控制台的引导式界面),可以使用 REST API。请注意,服务器提示模板不支持在应用代码中定义并传递到模板中的架构。
尽管模板位于服务器上,但它无法直接与 Firebase 项目的其他服务器端资源(例如数据库)进行交互,Cloud Storage for Firebase 网址除外(可以作为输入变量提供)。