{
  "cells": [
    {
      "cell_type": "code",
      "execution_count": 1,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "ZwuaylskLxFu",
        "outputId": "d684d6a3-32fe-4beb-c378-c39134bcf8cc"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Collecting litellm==0.1.363\n",
            "  Downloading litellm-0.1.363-py3-none-any.whl (34 kB)\n",
            "Requirement already satisfied: openai<0.28.0,>=0.27.8 in /usr/local/lib/python3.10/dist-packages (from litellm==0.1.363) (0.27.8)\n",
            "Requirement already satisfied: python-dotenv<2.0.0,>=1.0.0 in /usr/local/lib/python3.10/dist-packages (from litellm==0.1.363) (1.0.0)\n",
            "Requirement already satisfied: tiktoken<0.5.0,>=0.4.0 in /usr/local/lib/python3.10/dist-packages (from litellm==0.1.363) (0.4.0)\n",
            "Requirement already satisfied: requests>=2.20 in /usr/local/lib/python3.10/dist-packages (from openai<0.28.0,>=0.27.8->litellm==0.1.363) (2.31.0)\n",
            "Requirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (from openai<0.28.0,>=0.27.8->litellm==0.1.363) (4.65.0)\n",
            "Requirement already satisfied: aiohttp in /usr/local/lib/python3.10/dist-packages (from openai<0.28.0,>=0.27.8->litellm==0.1.363) (3.8.5)\n",
            "Requirement already satisfied: regex>=2022.1.18 in /usr/local/lib/python3.10/dist-packages (from tiktoken<0.5.0,>=0.4.0->litellm==0.1.363) (2022.10.31)\n",
            "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests>=2.20->openai<0.28.0,>=0.27.8->litellm==0.1.363) (3.2.0)\n",
            "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests>=2.20->openai<0.28.0,>=0.27.8->litellm==0.1.363) (3.4)\n",
            "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests>=2.20->openai<0.28.0,>=0.27.8->litellm==0.1.363) (1.26.16)\n",
            "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests>=2.20->openai<0.28.0,>=0.27.8->litellm==0.1.363) (2023.7.22)\n",
            "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->openai<0.28.0,>=0.27.8->litellm==0.1.363) (23.1.0)\n",
            "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.10/dist-packages (from aiohttp->openai<0.28.0,>=0.27.8->litellm==0.1.363) (6.0.4)\n",
            "Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /usr/local/lib/python3.10/dist-packages (from aiohttp->openai<0.28.0,>=0.27.8->litellm==0.1.363) (4.0.2)\n",
            "Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->openai<0.28.0,>=0.27.8->litellm==0.1.363) (1.9.2)\n",
            "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from aiohttp->openai<0.28.0,>=0.27.8->litellm==0.1.363) (1.4.0)\n",
            "Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.10/dist-packages (from aiohttp->openai<0.28.0,>=0.27.8->litellm==0.1.363) (1.3.1)\n",
            "Installing collected packages: litellm\n",
            "  Attempting uninstall: litellm\n",
            "    Found existing installation: litellm 0.1.362\n",
            "    Uninstalling litellm-0.1.362:\n",
            "      Successfully uninstalled litellm-0.1.362\n",
            "Successfully installed litellm-0.1.363\n"
          ]
        }
      ],
      "source": [
        "!pip install litellm==\"0.1.363\""
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 2,
      "metadata": {
        "id": "W216G__XL19Q"
      },
      "outputs": [],
      "source": [
        "# @title Import litellm & Set env variables\n",
        "import litellm\n",
        "import os\n",
        "\n",
        "os.environ[\"ANTHROPIC_API_KEY\"] = \" \" #@param"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 9,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "ff1lKwUMMLJj",
        "outputId": "bfddf6f8-36d4-45e5-92dc-349083fa41b8"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "\n",
            "\n",
            " Result from claude-instant-1 {'choices': [{'finish_reason': 'stop', 'index': 0, 'message': {'role': 'assistant', 'content': \" The Los Angeles Dodgers won the 2020 World Series, defeating the Tampa Bay Rays 4-2. It was the Dodgers' first World Series title since 1988.\"}}], 'created': 1691536677.2676156, 'model': 'claude-instant-1', 'usage': {'prompt_tokens': 30, 'completion_tokens': 32, 'total_tokens': 62}}\n",
            "\n",
            "\n",
            " Result from claude-2 {'choices': [{'finish_reason': 'stop', 'index': 0, 'message': {'role': 'assistant', 'content': ' The Los Angeles Dodgers won'}}], 'created': 1691536677.944753, 'model': 'claude-2', 'usage': {'prompt_tokens': 30, 'completion_tokens': 5, 'total_tokens': 35}}\n"
          ]
        }
      ],
      "source": [
        "# @title Request Claude Instant-1 and Claude-2\n",
        "messages = [\n",
        "  {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n",
        "  {\"role\": \"user\", \"content\": \"Who won the world series in 2020?\"}\n",
        "  ]\n",
        "\n",
        "result = litellm.completion('claude-instant-1', messages)\n",
        "print(\"\\n\\n Result from claude-instant-1\", result)\n",
        "result = litellm.completion('claude-2', messages, max_tokens=5, temperature=0.2)\n",
        "print(\"\\n\\n Result from claude-2\", result)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 7,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "06hWKnNQMrV-",
        "outputId": "7fdec0eb-d4a9-4882-f9c4-987ff9a31114"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            " Here\n",
            "'s\n",
            " a\n",
            " quick\n",
            " overview\n",
            " of\n",
            " how\n",
            " a\n",
            " court\n",
            " case\n",
            " can\n",
            " reach\n",
            " the\n",
            " U\n",
            ".\n",
            "S\n",
            ".\n",
            " Supreme\n",
            " Court\n",
            ":\n",
            "\n",
            "\n",
            "-\n",
            " The\n",
            " case\n",
            " must\n",
            " first\n",
            " be\n",
            " heard\n",
            " in\n",
            " a\n",
            " lower\n",
            " trial\n",
            " court\n",
            " (\n",
            "either\n",
            " a\n",
            " state\n",
            " court\n",
            " or\n",
            " federal\n",
            " district\n",
            " court\n",
            ").\n",
            " The\n",
            " trial\n",
            " court\n",
            " makes\n",
            " initial\n",
            " r\n",
            "ulings\n",
            " and\n",
            " produces\n",
            " a\n",
            " record\n",
            " of\n",
            " the\n",
            " case\n",
            ".\n",
            "\n",
            "\n",
            "-\n",
            " The\n",
            " losing\n",
            " party\n",
            " can\n",
            " appeal\n",
            " the\n",
            " decision\n",
            " to\n",
            " an\n",
            " appeals\n",
            " court\n",
            " (\n",
            "a\n",
            " state\n",
            " appeals\n",
            " court\n",
            " for\n",
            " state\n",
            " cases\n",
            ",\n",
            " or\n",
            " a\n",
            " federal\n",
            " circuit\n",
            " court\n",
            " for\n",
            " federal\n",
            " cases\n",
            ").\n",
            " The\n",
            " appeals\n",
            " court\n",
            " reviews\n",
            " the\n",
            " trial\n",
            " court\n",
            "'s\n",
            " r\n",
            "ulings\n",
            " and\n",
            " can\n",
            " affirm\n",
            ",\n",
            " reverse\n",
            ",\n",
            " or\n",
            " modify\n",
            " the\n",
            " decision\n",
            ".\n",
            "\n",
            "\n",
            "-\n",
            " If\n",
            " a\n",
            " party\n",
            " is\n",
            " still\n",
            " unsat\n",
            "isf\n",
            "ied\n",
            " after\n",
            " the\n",
            " appeals\n",
            " court\n",
            " rules\n",
            ",\n",
            " they\n",
            " can\n",
            " petition\n",
            " the\n",
            " Supreme\n",
            " Court\n",
            " to\n",
            " hear\n",
            " the\n",
            " case\n",
            " through\n",
            " a\n",
            " writ\n",
            " of\n",
            " cert\n",
            "ior\n",
            "ari\n",
            ".\n",
            " \n",
            "\n",
            "\n",
            "-\n",
            " The\n",
            " Supreme\n",
            " Court\n",
            " gets\n",
            " thousands\n",
            " of\n",
            " cert\n",
            " petitions\n",
            " every\n",
            " year\n",
            " but\n",
            " usually\n",
            " only\n",
            " agrees\n",
            " to\n",
            " hear\n",
            " about\n",
            " 100\n",
            "-\n",
            "150\n",
            " of\n",
            " cases\n",
            " that\n",
            " have\n",
            " significant\n",
            " national\n",
            " importance\n",
            " or\n",
            " where\n",
            " lower\n",
            " courts\n",
            " disagree\n",
            " on\n",
            " federal\n",
            " law\n",
            ".\n",
            " \n",
            "\n",
            "\n",
            "-\n",
            " If\n",
            " 4\n",
            " out\n",
            " of\n",
            " the\n",
            " 9\n",
            " Just\n",
            "ices\n",
            " vote\n",
            " to\n",
            " grant\n",
            " cert\n",
            " (\n",
            "agree\n",
            " to\n",
            " hear\n",
            " the\n",
            " case\n",
            "),\n",
            " it\n",
            " goes\n",
            " on\n",
            " the\n",
            " Supreme\n",
            " Court\n",
            "'s\n",
            " do\n",
            "cket\n",
            " for\n",
            " arguments\n",
            ".\n",
            "\n",
            "\n",
            "-\n",
            " The\n",
            " Supreme\n",
            " Court\n",
            " then\n",
            " hears\n",
            " oral\n",
            " arguments\n",
            ",\n",
            " considers\n",
            " written\n",
            " brief\n",
            "s\n",
            ",\n",
            " examines\n",
            " the\n",
            " lower\n",
            " court\n",
            " records\n",
            ",\n",
            " and\n",
            " issues\n",
            " a\n",
            " final\n",
            " ruling\n",
            " on\n",
            " the\n",
            " case\n",
            ",\n",
            " which\n",
            " serves\n",
            " as\n",
            " binding\n",
            " precedent\n"
          ]
        }
      ],
      "source": [
        "# @title Streaming Example: Request Claude-2\n",
        "messages = [\n",
        "  {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n",
        "  {\"role\": \"user\", \"content\": \"how does a court case get to the Supreme Court?\"}\n",
        "  ]\n",
        "\n",
        "result = litellm.completion('claude-2', messages, stream=True)\n",
        "for part in result:\n",
        "    print(part.choices[0].delta.content or \"\")\n",
        "\n"
      ]
    }
  ],
  "metadata": {
    "colab": {
      "provenance": []
    },
    "kernelspec": {
      "display_name": "Python 3",
      "name": "python3"
    },
    "language_info": {
      "name": "python"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}