{ "cells": [ { "cell_type": "markdown", "id": "580c85ac", "metadata": {}, "source": [ "# Google Generative AI Example with AgentOps\n", "\n", "This notebook demonstrates how to use AgentOps with Google's Generative AI package for observing both synchronous and streaming text generation." ] }, { "cell_type": "code", "execution_count": null, "id": "d52c7ce5", "metadata": {}, "outputs": [], "source": [ "# Instal necessary packages\n", "%pip install agentops\n", "%pip install google-genai" ] }, { "cell_type": "code", "execution_count": null, "id": "d731924a", "metadata": {}, "outputs": [], "source": [ "from google import genai\n", "import agentops\n", "from dotenv import load_dotenv\n", "import os" ] }, { "cell_type": "code", "execution_count": null, "id": "a94545c9", "metadata": {}, "outputs": [], "source": [ "load_dotenv()\n", "\n", "os.environ[\"AGENTOPS_API_KEY\"] = os.getenv(\"AGENTOPS_API_KEY\", \"your_api_key_here\")\n", "os.environ[\"GEMINI_API_KEY\"] = os.getenv(\"GEMINI_API_KEY\", \"your_gemini_api_key_here\")" ] }, { "cell_type": "code", "execution_count": null, "id": "d632fe48", "metadata": {}, "outputs": [], "source": [ "# Initialize AgentOps and Gemini client\n", "agentops.init(tags=[\"gemini-example\", \"agentops-example\"])\n", "client = genai.Client()" ] }, { "cell_type": "code", "execution_count": null, "id": "3923b6b8", "metadata": {}, "outputs": [], "source": [ "# Test synchronous generation\n", "print(\"Testing synchronous generation:\")\n", "response = client.models.generate_content(model=\"gemini-1.5-flash\", contents=\"What are the three laws of robotics?\")\n", "print(response.text)" ] }, { "cell_type": "code", "execution_count": null, "id": "da54e521", "metadata": {}, "outputs": [], "source": [ "# Test streaming generation\n", "print(\"\\nTesting streaming generation:\")\n", "response_stream = client.models.generate_content_stream(\n", " model=\"gemini-1.5-flash\", contents=\"Explain the concept of machine learning in simple terms.\"\n", ")\n", "\n", "for chunk in response_stream:\n", " print(chunk.text, end=\"\")\n", "print() # Add newline after streaming output\n", "\n", "# Test another synchronous generation\n", "print(\"\\nTesting another synchronous generation:\")\n", "response = client.models.generate_content(\n", " model=\"gemini-1.5-flash\", contents=\"What is the difference between supervised and unsupervised learning?\"\n", ")\n", "print(response.text)" ] }, { "cell_type": "code", "execution_count": null, "id": "fbb2a59c", "metadata": {}, "outputs": [], "source": [ "# Example of token counting\n", "print(\"\\nTesting token counting:\")\n", "token_response = client.models.count_tokens(\n", " model=\"gemini-1.5-flash\", contents=\"This is a test sentence to count tokens.\"\n", ")\n", "print(f\"Token count: {token_response.total_tokens}\")" ] } ], "metadata": { "kernelspec": { "display_name": "agentops (3.11.11)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.11" } }, "nbformat": 4, "nbformat_minor": 5 }