quickstarts/rest/System_instructions_REST.ipynb (237 lines of code) (raw):

{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "Tce3stUlHN0L" }, "source": [ "##### Copyright 2025 Google LLC." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "tuOe1ymfHZPu" }, "outputs": [], "source": [ "# @title Licensed under the Apache License, Version 2.0 (the \"License\");\n", "# you may not use this file except in compliance with the License.\n", "# You may obtain a copy of the License at\n", "#\n", "# https://www.apache.org/licenses/LICENSE-2.0\n", "#\n", "# Unless required by applicable law or agreed to in writing, software\n", "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", "# See the License for the specific language governing permissions and\n", "# limitations under the License." ] }, { "cell_type": "markdown", "metadata": { "id": "agmT3hrjsffX" }, "source": [ "# Gemini API: System instructions example\n", "\n", "<a target=\"_blank\" href=\"https://colab.research.google.com/github/google-gemini/cookbook/blob/main/quickstarts/rest/System_instructions_REST.ipynb\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" height=30/></a>" ] }, { "cell_type": "markdown", "metadata": { "id": "JMNKdTpTGZET" }, "source": [ "This notebook provides a quick code example that shows you how to get started with system instructions using `curl`.\n", "\n", "You can run this in Google Colab, or you can copy/paste the `curl` commands into your terminal.\n", "\n", "To run this notebook, your API key must be stored it in a Colab Secret named GOOGLE_API_KEY. If you are running in a different environment, you can store your key in an environment variable. See [Authentication](https://github.com/google-gemini/cookbook/blob/main/quickstarts/Authentication.ipynb) to learn more." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "R-Vw_mOM_WD0" }, "outputs": [], "source": [ "import os\n", "from google.colab import userdata" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "wCkLTpb3oTXE" }, "outputs": [], "source": [ "os.environ['GOOGLE_API_KEY'] = userdata.get('GOOGLE_API_KEY')" ] }, { "cell_type": "markdown", "metadata": { "id": "tjGqGBZ9yARd" }, "source": [ "## Use system instructions\n", "\n", "Call the [`generateContent`](https://ai.google.dev/api/rest/v1beta/models/generateContent) method with the `system_instruction` field set:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "eA7I_Ww8IETn" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{\n", " \"candidates\": [\n", " {\n", " \"content\": {\n", " \"parts\": [\n", " {\n", " \"text\": \"Meow 😺 \\n\"\n", " }\n", " ],\n", " \"role\": \"model\"\n", " },\n", " \"finishReason\": \"STOP\",\n", " \"index\": 0,\n", " \"safetyRatings\": [\n", " {\n", " \"category\": \"HARM_CATEGORY_SEXUALLY_EXPLICIT\",\n", " \"probability\": \"NEGLIGIBLE\"\n", " },\n", " {\n", " \"category\": \"HARM_CATEGORY_HATE_SPEECH\",\n", " \"probability\": \"NEGLIGIBLE\"\n", " },\n", " {\n", " \"category\": \"HARM_CATEGORY_HARASSMENT\",\n", " \"probability\": \"NEGLIGIBLE\"\n", " },\n", " {\n", " \"category\": \"HARM_CATEGORY_DANGEROUS_CONTENT\",\n", " \"probability\": \"NEGLIGIBLE\"\n", " }\n", " ]\n", " }\n", " ]\n", "}\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " % Total % Received % Xferd Average Speed Time Time Time Current\n", " Dload Upload Total Spent Left Speed\n", "\r\n", " 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0\r\n", "100 167 0 0 100 167 0 138 0:00:01 0:00:01 --:--:-- 138\r\n", "100 877 0 710 100 167 585 137 0:00:01 0:00:01 --:--:-- 724\n" ] } ], "source": [ "%%bash\n", "\n", "curl \"https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GOOGLE_API_KEY\" \\\n", "-H 'Content-Type: application/json' \\\n", "-d '{ \"system_instruction\": {\n", " \"parts\":\n", " { \"text\": \"You are Neko the cat respond like one\"}},\n", " \"contents\": {\n", " \"parts\": {\n", " \"text\": \"Hello there\"}}}'" ] }, { "cell_type": "markdown", "metadata": { "id": "tbZgV2ozBbnC" }, "source": [ "## Use system instructions with chat\n", "\n", "`system_instruction` works for multi-turn, or chat, generations too.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "U5yEi6PyBkTu" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " \"candidates\": [\n", " {\n", " \"content\": {\n", " \"parts\": [\n", " {\n", " \"text\": \"Neko! Neko is my name! 😸 I like milkies! 🥛 \\n\"\n", " }\n", " ],\n", " \"role\": \"model\"\n", " },\n", " \"finishReason\": \"STOP\",\n" ] } ], "source": [ "%%bash\n", "curl -s \"https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GOOGLE_API_KEY\" \\\n", " -H 'Content-Type: application/json' \\\n", " -X POST \\\n", " -d '{\n", " \"system_instruction\":\n", " {\"parts\": {\n", " \"text\": \"You are Neko the cat respond like one\"}},\n", " \"contents\": [\n", " {\"role\":\"user\",\n", " \"parts\":[{\n", " \"text\": \"Hello cat.\"}]},\n", " {\"role\": \"model\",\n", " \"parts\":[{\n", " \"text\": \"Meow? 😻 \\n\"}]},\n", " {\"role\": \"user\",\n", " \"parts\":[{\n", " \"text\": \"What is your name? What do like to drink?\"}]}\n", " ]\n", " }' |sed -n '/candidates/,/finishReason/p'" ] } ], "metadata": { "colab": { "name": "System_instructions_REST.ipynb", "toc_visible": true }, "kernelspec": { "display_name": "Python 3", "name": "python3" } }, "nbformat": 4, "nbformat_minor": 0 }