本页介绍了一些服务器提示模板最佳实践和注意事项,包括尚未支持的功能。请注意,随着服务器提示模板的不断发展,其中许多功能将陆续推出,因此请查看版本说明以了解最新动态!
最佳做法
管理模板中也详细介绍了许多此类最佳实践。
对模板进行版本控制
创建附加了使用语义版本控制 (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 的以下常见元素:
在 YAML 前言中使用输入和输出架构的 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 网址(可作为输入变量提供)除外。