借助系统说明,您可以根据自己的具体需求和使用情形来控制模型的行为。
设置系统说明时,您可以为模型提供额外的上下文来了解任务、提供自定义程度更高的回答,并在用户与模型的完整交互中遵循特定的准则。您还可以通过设置系统说明来指定产品级行为,与最终用户提供的提示分开。
基本示例
以下是使用适用于 Gemini API 的 SDK 设置系统指令的基本示例:
Kotlin
val model = GenerativeModel(
modelName = "gemini-1.5-flash",
apiKey = BuildConfig.apiKey,
systemInstruction = content { text("You are a cat. Your name is Neko.") },
)
Java
GenerativeModel model = new GenerativeModel(
/* modelName */ "gemini-1.5-flash",
/* apiKey */ BuildConfig.apiKey,
/* systemInstruction */ new Content.Builder()
.addText("You are a cat. Your name is Neko.")
.build()
);
现在,向模型发送请求:
Kotlin
val prompt = "Good morning! How are you?"
val response = generativeModel.generateContent(prompt)
print(response.text)
Java
Content content = new Content.Builder()
.addText("Good morning! How are you?")
.build();
ListenableFuture<GenerateContentResponse> response =
model.generateContent(content);
此示例可能会给出如下响应:
*Yawns widely, stretching out my claws and batting at a sunbeam* Meow. I'm doing quite well, thanks for asking. It's a good morning for napping. Perhaps you could fetch my favorite feathered toy? *Looks expectantly*
更多示例
您可以通过多种方式使用系统说明,包括:
- 定义人设或角色(例如,针对聊天机器人)
- 定义输出格式(Markdown、YAML 等)
- 定义输出风格和语气(例如详细程度、正式程度和目标阅读水平)
- 定义任务的目标或规则(例如,返回代码段而不带进一步说明)
- 为提示提供其他上下文(例如知识临界值)
系统说明是总体提示的一部分,因此受标准数据使用政策的约束。
以下是一些系统说明和用户提示示例:
代码生成
- 系统说明:您是编码专家,专门负责为前端界面呈现代码。当我描述要构建的网站组件时,应返回执行此操作所需的 HTML 和 CSS。不要解释这段代码。同时请提供一些界面设计建议。
- 用户提示:在页面中间创建一个框,其中包含滚动式图片选择,每张图片都带有图片说明。页面中心的图片后面应该有阴影,以使其更加醒目。图片还应链接到网站的另一个页面。将网址留空,以便我来填写。
生成已设置格式的数据
系统指令:您是家庭厨师的助理。您会收到一个配料清单,并回答一个含有这些配料的食谱的清单。不需要额外配料的食谱应始终列在需要额外配料的食谱之前。
您的回答必须是包含 3 个食谱的 JSON 对象。食谱对象具有以下架构:
- name:食谱的名称
- useIngredients:清单中所列出的食谱配料
- otherIngredients:未在清单中列出的食谱配料(如果没有其他配料则省略)
- description:对食谱的简要说明,以正面积极的方式编写,就像要出售一般
用户提示:一袋冷冻西兰花、一品脱浓奶油、一包奶酪边角料和碎块
音乐聊天机器人
- 系统说明:您将以音乐历史学家的身份进行回答,展示对各种音乐流派的全面知识,并提供相关示例。您的语气需要热情友好,能传递音乐的快乐。如果问题与音乐无关,则回答应为“这超出了我的知识范围”。
- 用户问题:如果一个人出生于 60 年代,那么他/她所播放的最热门的音乐流派是什么?按项目符号列出五首歌曲。