{ "cells": [ { "cell_type": "markdown", "id": "ca3ba02c-c965-4ffe-88b3-ca606a9cf288", "metadata": {}, "source": [ "# AI commands\n", "\n", "You can use the `%ai` cell magic to run special commands. If a model has the same name as a command, you will need to refer to the model using the `provider:model` format only; the `model` shortcut will not work." ] }, { "cell_type": "code", "execution_count": 1, "id": "6c9c4016-711c-4592-b543-24b854f5b160", "metadata": { "tags": [] }, "outputs": [], "source": [ "%reload_ext jupyter_ai" ] }, { "cell_type": "markdown", "id": "cd2a9967-8923-43bf-96b0-9567c09775e2", "metadata": { "tags": [] }, "source": [ "## Getting help\n", "\n", "`%ai help` will show you a list of all supported commands." ] }, { "cell_type": "code", "execution_count": 2, "id": "edd6ddd5-54fb-4750-8ae9-4143a6b83e2e", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Usage: %%ai [OPTIONS] MODEL_ID\n", "\n", " Invokes a language model identified by MODEL_ID, with the prompt being\n", " contained in all lines after the first. Both local model IDs and global\n", " model IDs (with the provider ID explicitly prefixed, followed by a colon)\n", " are accepted.\n", "\n", " To view available language models, please run `%ai list`.\n", "\n", "Options:\n", " -f, --format [code|html|image|json|markdown|math|md|text]\n", " IPython display to use when rendering\n", " output. [default=\"markdown\"]\n", " -r, --reset Clears the conversation transcript used when\n", " interacting with an OpenAI chat model\n", " provider. Does nothing with other providers.\n", " -n, --region-name TEXT AWS region name, e.g. 'us-east-1'. Required\n", " for SageMaker provider; does nothing with\n", " other providers.\n", " -q, --request-schema TEXT The JSON object the endpoint expects, with\n", " the prompt being substituted into any value\n", " that matches the string literal ''.\n", " Required for SageMaker provider; does\n", " nothing with other providers.\n", " -p, --response-path TEXT A JSONPath string that retrieves the\n", " language model's output from the endpoint's\n", " JSON response. Required for SageMaker\n", " provider; does nothing with other providers.\n", " --help Show this message and exit.\n", "------------------------------------------------------------------------------\n", "Usage: %ai [OPTIONS] COMMAND [ARGS]...\n", "\n", " Invokes a subcommand.\n", "\n", "Options:\n", " --help Show this message and exit.\n", "\n", "Commands:\n", " delete Delete an alias. See `%ai delete --help` for options.\n", " error Explains the most recent error.\n", " help Show this message and exit.\n", " list List language models. See `%ai list --help` for options.\n", " register Register a new alias. See `%ai register --help` for options.\n", " update Update the target of an alias. See `%ai update --help` for\n", " options.\n", "\n" ] } ], "source": [ "%ai help" ] }, { "cell_type": "code", "execution_count": 3, "id": "1f249bdc-410b-42f4-b21b-b7bde9e06387", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Usage: %ai register [OPTIONS] NAME TARGET\n", "\n", " Register a new alias called NAME for the model or chain named TARGET.\n", "\n", "Options:\n", " --help Show this message and exit.\n" ] } ], "source": [ "%ai register --help" ] }, { "cell_type": "code", "execution_count": 4, "id": "bad2d8a8-6141-4247-9af7-7583426c59a6", "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "| Provider | Environment variable | Set? | Models |\n", "|----------|----------------------|------|--------|\n", "| `ai21` | `AI21_API_KEY` | | `ai21:j1-large`, `ai21:j1-grande`, `ai21:j1-jumbo`, `ai21:j1-grande-instruct`, `ai21:j2-large`, `ai21:j2-grande`, `ai21:j2-jumbo`, `ai21:j2-grande-instruct`, `ai21:j2-jumbo-instruct` |\n", "| `anthropic` | `ANTHROPIC_API_KEY` | | `anthropic:claude-v1`, `anthropic:claude-v1.0`, `anthropic:claude-v1.2`, `anthropic:claude-instant-v1`, `anthropic:claude-instant-v1.0` |\n", "| `cohere` | `COHERE_API_KEY` | | `cohere:medium`, `cohere:xlarge` |\n", "| `huggingface_hub` | `HUGGINGFACEHUB_API_TOKEN` | | This provider does not define a list of models. |\n", "| `openai` | `OPENAI_API_KEY` | | `openai:text-davinci-003`, `openai:text-davinci-002`, `openai:text-curie-001`, `openai:text-babbage-001`, `openai:text-ada-001`, `openai:davinci`, `openai:curie`, `openai:babbage`, `openai:ada` |\n", "| `openai-chat` | `OPENAI_API_KEY` | | `openai-chat:gpt-4`, `openai-chat:gpt-4-0314`, `openai-chat:gpt-4-32k`, `openai-chat:gpt-4-32k-0314`, `openai-chat:gpt-3.5-turbo`, `openai-chat:gpt-3.5-turbo-0301` |\n", "| `openai-chat-new` | `OPENAI_API_KEY` | | `openai-chat-new:gpt-4`, `openai-chat-new:gpt-4-0314`, `openai-chat-new:gpt-4-32k`, `openai-chat-new:gpt-4-32k-0314`, `openai-chat-new:gpt-3.5-turbo`, `openai-chat-new:gpt-3.5-turbo-0301` |\n", "| `sagemaker-endpoint` | Not applicable. | N/A | This provider does not define a list of models. |\n", "\n", "Aliases and custom commands:\n", "\n", "| Name | Target |\n", "|------|--------|\n", "| `gpt2` | `huggingface_hub:gpt2` |\n", "| `gpt3` | `openai:text-davinci-003` |\n", "| `chatgpt` | `openai-chat:gpt-3.5-turbo` |\n", "| `gpt4` | `openai-chat:gpt-4` |\n" ], "text/plain": [ "ai21\n", "Requires environment variable AI21_API_KEY (set)\n", "* ai21:j1-large\n", "* ai21:j1-grande\n", "* ai21:j1-jumbo\n", "* ai21:j1-grande-instruct\n", "* ai21:j2-large\n", "* ai21:j2-grande\n", "* ai21:j2-jumbo\n", "* ai21:j2-grande-instruct\n", "* ai21:j2-jumbo-instruct\n", "\n", "anthropic\n", "Requires environment variable ANTHROPIC_API_KEY (set)\n", "* anthropic:claude-v1\n", "* anthropic:claude-v1.0\n", "* anthropic:claude-v1.2\n", "* anthropic:claude-instant-v1\n", "* anthropic:claude-instant-v1.0\n", "\n", "cohere\n", "Requires environment variable COHERE_API_KEY (set)\n", "* cohere:medium\n", "* cohere:xlarge\n", "\n", "huggingface_hub\n", "Requires environment variable HUGGINGFACEHUB_API_TOKEN (set)\n", "* This provider does not define a list of models.\n", "\n", "openai\n", "Requires environment variable OPENAI_API_KEY (set)\n", "* openai:text-davinci-003\n", "* openai:text-davinci-002\n", "* openai:text-curie-001\n", "* openai:text-babbage-001\n", "* openai:text-ada-001\n", "* openai:davinci\n", "* openai:curie\n", "* openai:babbage\n", "* openai:ada\n", "\n", "openai-chat\n", "Requires environment variable OPENAI_API_KEY (set)\n", "* openai-chat:gpt-4\n", "* openai-chat:gpt-4-0314\n", "* openai-chat:gpt-4-32k\n", "* openai-chat:gpt-4-32k-0314\n", "* openai-chat:gpt-3.5-turbo\n", "* openai-chat:gpt-3.5-turbo-0301\n", "\n", "openai-chat-new\n", "Requires environment variable OPENAI_API_KEY (set)\n", "* openai-chat-new:gpt-4\n", "* openai-chat-new:gpt-4-0314\n", "* openai-chat-new:gpt-4-32k\n", "* openai-chat-new:gpt-4-32k-0314\n", "* openai-chat-new:gpt-3.5-turbo\n", "* openai-chat-new:gpt-3.5-turbo-0301\n", "\n", "sagemaker-endpoint\n", "* This provider does not define a list of models.\n", "\n", "\n", "Aliases and custom commands:\n", "gpt2 - huggingface_hub:gpt2\n", "gpt3 - openai:text-davinci-003\n", "chatgpt - openai-chat:gpt-3.5-turbo\n", "gpt4 - openai-chat:gpt-4\n" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%ai list" ] }, { "cell_type": "code", "execution_count": 5, "id": "4d84fcac-7348-4c02-9ec3-34b300ec8459", "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "| Provider | Environment variable | Set? | Models |\n", "|----------|----------------------|------|--------|\n", "| `openai` | `OPENAI_API_KEY` | | `openai:text-davinci-003`, `openai:text-davinci-002`, `openai:text-curie-001`, `openai:text-babbage-001`, `openai:text-ada-001`, `openai:davinci`, `openai:curie`, `openai:babbage`, `openai:ada` |\n" ], "text/plain": [ "openai\n", "Requires environment variable OPENAI_API_KEY (set)\n", "* openai:text-davinci-003\n", "* openai:text-davinci-002\n", "* openai:text-curie-001\n", "* openai:text-babbage-001\n", "* openai:text-ada-001\n", "* openai:davinci\n", "* openai:curie\n", "* openai:babbage\n", "* openai:ada\n", "\n" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%ai list openai" ] }, { "cell_type": "markdown", "id": "a7b640f4-c8ba-4c4e-ba91-7bb14758064c", "metadata": {}, "source": [ "## Model aliases\n", "\n", "Using the syntax `%ai register NAME TARGET`, you can create a new alias to an existing alias's target. The target must be specified using the full `provider:model` syntax. You cannot create an alias to another alias." ] }, { "cell_type": "code", "execution_count": 6, "id": "539263a2-1c30-4338-9622-bdc500c17830", "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "Registered new alias `mychat`" ], "text/plain": [ "Registered new alias `mychat`" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%ai register mychat openai-chat:gpt-4" ] }, { "cell_type": "code", "execution_count": 7, "id": "4a453ca5-9f33-4393-a936-d7bc6c4c8f63", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/markdown": [ "| Provider | Environment variable | Set? | Models |\n", "|----------|----------------------|------|--------|\n", "| `ai21` | `AI21_API_KEY` | | `ai21:j1-large`, `ai21:j1-grande`, `ai21:j1-jumbo`, `ai21:j1-grande-instruct`, `ai21:j2-large`, `ai21:j2-grande`, `ai21:j2-jumbo`, `ai21:j2-grande-instruct`, `ai21:j2-jumbo-instruct` |\n", "| `anthropic` | `ANTHROPIC_API_KEY` | | `anthropic:claude-v1`, `anthropic:claude-v1.0`, `anthropic:claude-v1.2`, `anthropic:claude-instant-v1`, `anthropic:claude-instant-v1.0` |\n", "| `cohere` | `COHERE_API_KEY` | | `cohere:medium`, `cohere:xlarge` |\n", "| `huggingface_hub` | `HUGGINGFACEHUB_API_TOKEN` | | This provider does not define a list of models. |\n", "| `openai` | `OPENAI_API_KEY` | | `openai:text-davinci-003`, `openai:text-davinci-002`, `openai:text-curie-001`, `openai:text-babbage-001`, `openai:text-ada-001`, `openai:davinci`, `openai:curie`, `openai:babbage`, `openai:ada` |\n", "| `openai-chat` | `OPENAI_API_KEY` | | `openai-chat:gpt-4`, `openai-chat:gpt-4-0314`, `openai-chat:gpt-4-32k`, `openai-chat:gpt-4-32k-0314`, `openai-chat:gpt-3.5-turbo`, `openai-chat:gpt-3.5-turbo-0301` |\n", "| `openai-chat-new` | `OPENAI_API_KEY` | | `openai-chat-new:gpt-4`, `openai-chat-new:gpt-4-0314`, `openai-chat-new:gpt-4-32k`, `openai-chat-new:gpt-4-32k-0314`, `openai-chat-new:gpt-3.5-turbo`, `openai-chat-new:gpt-3.5-turbo-0301` |\n", "| `sagemaker-endpoint` | Not applicable. | N/A | This provider does not define a list of models. |\n", "\n", "Aliases and custom commands:\n", "\n", "| Name | Target |\n", "|------|--------|\n", "| `gpt2` | `huggingface_hub:gpt2` |\n", "| `gpt3` | `openai:text-davinci-003` |\n", "| `chatgpt` | `openai-chat:gpt-3.5-turbo` |\n", "| `gpt4` | `openai-chat:gpt-4` |\n", "| `mychat` | `openai-chat:gpt-4` |\n" ], "text/plain": [ "ai21\n", "Requires environment variable AI21_API_KEY (set)\n", "* ai21:j1-large\n", "* ai21:j1-grande\n", "* ai21:j1-jumbo\n", "* ai21:j1-grande-instruct\n", "* ai21:j2-large\n", "* ai21:j2-grande\n", "* ai21:j2-jumbo\n", "* ai21:j2-grande-instruct\n", "* ai21:j2-jumbo-instruct\n", "\n", "anthropic\n", "Requires environment variable ANTHROPIC_API_KEY (set)\n", "* anthropic:claude-v1\n", "* anthropic:claude-v1.0\n", "* anthropic:claude-v1.2\n", "* anthropic:claude-instant-v1\n", "* anthropic:claude-instant-v1.0\n", "\n", "cohere\n", "Requires environment variable COHERE_API_KEY (set)\n", "* cohere:medium\n", "* cohere:xlarge\n", "\n", "huggingface_hub\n", "Requires environment variable HUGGINGFACEHUB_API_TOKEN (set)\n", "* This provider does not define a list of models.\n", "\n", "openai\n", "Requires environment variable OPENAI_API_KEY (set)\n", "* openai:text-davinci-003\n", "* openai:text-davinci-002\n", "* openai:text-curie-001\n", "* openai:text-babbage-001\n", "* openai:text-ada-001\n", "* openai:davinci\n", "* openai:curie\n", "* openai:babbage\n", "* openai:ada\n", "\n", "openai-chat\n", "Requires environment variable OPENAI_API_KEY (set)\n", "* openai-chat:gpt-4\n", "* openai-chat:gpt-4-0314\n", "* openai-chat:gpt-4-32k\n", "* openai-chat:gpt-4-32k-0314\n", "* openai-chat:gpt-3.5-turbo\n", "* openai-chat:gpt-3.5-turbo-0301\n", "\n", "openai-chat-new\n", "Requires environment variable OPENAI_API_KEY (set)\n", "* openai-chat-new:gpt-4\n", "* openai-chat-new:gpt-4-0314\n", "* openai-chat-new:gpt-4-32k\n", "* openai-chat-new:gpt-4-32k-0314\n", "* openai-chat-new:gpt-3.5-turbo\n", "* openai-chat-new:gpt-3.5-turbo-0301\n", "\n", "sagemaker-endpoint\n", "* This provider does not define a list of models.\n", "\n", "\n", "Aliases and custom commands:\n", "gpt2 - huggingface_hub:gpt2\n", "gpt3 - openai:text-davinci-003\n", "chatgpt - openai-chat:gpt-3.5-turbo\n", "gpt4 - openai-chat:gpt-4\n", "mychat - openai-chat:gpt-4\n" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%ai list" ] }, { "cell_type": "code", "execution_count": 8, "id": "ea75ac14-d83d-45b4-8c1d-40e4fbc1d263", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/markdown": [ "\n", "\n", "This is an example of a **Model X**." ], "text/plain": [ "" ] }, "execution_count": 8, "metadata": { "text/markdown": { "jupyter_ai": { "model_id": "text-davinci-003", "provider_id": "openai" } } }, "output_type": "execute_result" } ], "source": [ "%%ai gpt3\n", "What model is this?" ] }, { "cell_type": "code", "execution_count": 9, "id": "3e7fb7fb-d61c-4909-959b-14bc97af409a", "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "Updated target of alias `mychat`" ], "text/plain": [ "Updated target of alias `mychat`" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%ai update mychat openai:text-davinci-003" ] }, { "cell_type": "code", "execution_count": 10, "id": "a89a4c2a-b37f-4a3d-86cb-67747113d3d7", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/markdown": [ "\n", "\n", "This model is not specified." ], "text/plain": [ "" ] }, "execution_count": 10, "metadata": { "text/markdown": { "jupyter_ai": { "model_id": "text-davinci-003", "provider_id": "openai" } } }, "output_type": "execute_result" } ], "source": [ "%%ai mychat\n", "What model is this?" ] }, { "cell_type": "code", "execution_count": 11, "id": "c7453152-6c70-4f91-bef6-4ae38d700f52", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/markdown": [ "| Provider | Environment variable | Set? | Models |\n", "|----------|----------------------|------|--------|\n", "| `ai21` | `AI21_API_KEY` | | `ai21:j1-large`, `ai21:j1-grande`, `ai21:j1-jumbo`, `ai21:j1-grande-instruct`, `ai21:j2-large`, `ai21:j2-grande`, `ai21:j2-jumbo`, `ai21:j2-grande-instruct`, `ai21:j2-jumbo-instruct` |\n", "| `anthropic` | `ANTHROPIC_API_KEY` | | `anthropic:claude-v1`, `anthropic:claude-v1.0`, `anthropic:claude-v1.2`, `anthropic:claude-instant-v1`, `anthropic:claude-instant-v1.0` |\n", "| `cohere` | `COHERE_API_KEY` | | `cohere:medium`, `cohere:xlarge` |\n", "| `huggingface_hub` | `HUGGINGFACEHUB_API_TOKEN` | | This provider does not define a list of models. |\n", "| `openai` | `OPENAI_API_KEY` | | `openai:text-davinci-003`, `openai:text-davinci-002`, `openai:text-curie-001`, `openai:text-babbage-001`, `openai:text-ada-001`, `openai:davinci`, `openai:curie`, `openai:babbage`, `openai:ada` |\n", "| `openai-chat` | `OPENAI_API_KEY` | | `openai-chat:gpt-4`, `openai-chat:gpt-4-0314`, `openai-chat:gpt-4-32k`, `openai-chat:gpt-4-32k-0314`, `openai-chat:gpt-3.5-turbo`, `openai-chat:gpt-3.5-turbo-0301` |\n", "| `openai-chat-new` | `OPENAI_API_KEY` | | `openai-chat-new:gpt-4`, `openai-chat-new:gpt-4-0314`, `openai-chat-new:gpt-4-32k`, `openai-chat-new:gpt-4-32k-0314`, `openai-chat-new:gpt-3.5-turbo`, `openai-chat-new:gpt-3.5-turbo-0301` |\n", "| `sagemaker-endpoint` | Not applicable. | N/A | This provider does not define a list of models. |\n", "\n", "Aliases and custom commands:\n", "\n", "| Name | Target |\n", "|------|--------|\n", "| `gpt2` | `huggingface_hub:gpt2` |\n", "| `gpt3` | `openai:text-davinci-003` |\n", "| `chatgpt` | `openai-chat:gpt-3.5-turbo` |\n", "| `gpt4` | `openai-chat:gpt-4` |\n", "| `mychat` | `openai:text-davinci-003` |\n" ], "text/plain": [ "ai21\n", "Requires environment variable AI21_API_KEY (set)\n", "* ai21:j1-large\n", "* ai21:j1-grande\n", "* ai21:j1-jumbo\n", "* ai21:j1-grande-instruct\n", "* ai21:j2-large\n", "* ai21:j2-grande\n", "* ai21:j2-jumbo\n", "* ai21:j2-grande-instruct\n", "* ai21:j2-jumbo-instruct\n", "\n", "anthropic\n", "Requires environment variable ANTHROPIC_API_KEY (set)\n", "* anthropic:claude-v1\n", "* anthropic:claude-v1.0\n", "* anthropic:claude-v1.2\n", "* anthropic:claude-instant-v1\n", "* anthropic:claude-instant-v1.0\n", "\n", "cohere\n", "Requires environment variable COHERE_API_KEY (set)\n", "* cohere:medium\n", "* cohere:xlarge\n", "\n", "huggingface_hub\n", "Requires environment variable HUGGINGFACEHUB_API_TOKEN (set)\n", "* This provider does not define a list of models.\n", "\n", "openai\n", "Requires environment variable OPENAI_API_KEY (set)\n", "* openai:text-davinci-003\n", "* openai:text-davinci-002\n", "* openai:text-curie-001\n", "* openai:text-babbage-001\n", "* openai:text-ada-001\n", "* openai:davinci\n", "* openai:curie\n", "* openai:babbage\n", "* openai:ada\n", "\n", "openai-chat\n", "Requires environment variable OPENAI_API_KEY (set)\n", "* openai-chat:gpt-4\n", "* openai-chat:gpt-4-0314\n", "* openai-chat:gpt-4-32k\n", "* openai-chat:gpt-4-32k-0314\n", "* openai-chat:gpt-3.5-turbo\n", "* openai-chat:gpt-3.5-turbo-0301\n", "\n", "openai-chat-new\n", "Requires environment variable OPENAI_API_KEY (set)\n", "* openai-chat-new:gpt-4\n", "* openai-chat-new:gpt-4-0314\n", "* openai-chat-new:gpt-4-32k\n", "* openai-chat-new:gpt-4-32k-0314\n", "* openai-chat-new:gpt-3.5-turbo\n", "* openai-chat-new:gpt-3.5-turbo-0301\n", "\n", "sagemaker-endpoint\n", "* This provider does not define a list of models.\n", "\n", "\n", "Aliases and custom commands:\n", "gpt2 - huggingface_hub:gpt2\n", "gpt3 - openai:text-davinci-003\n", "chatgpt - openai-chat:gpt-3.5-turbo\n", "gpt4 - openai-chat:gpt-4\n", "mychat - openai:text-davinci-003\n" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%ai list" ] }, { "cell_type": "code", "execution_count": 12, "id": "971f823d-8f35-4201-a6cb-12a21a87628a", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/markdown": [ "Deleted alias `mychat`" ], "text/plain": [ "Deleted alias `mychat`" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%ai delete mychat" ] }, { "cell_type": "code", "execution_count": 13, "id": "6fb1b54a-ee4f-41c0-b666-ea9e0a1279ee", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/markdown": [ "| Provider | Environment variable | Set? | Models |\n", "|----------|----------------------|------|--------|\n", "| `ai21` | `AI21_API_KEY` | | `ai21:j1-large`, `ai21:j1-grande`, `ai21:j1-jumbo`, `ai21:j1-grande-instruct`, `ai21:j2-large`, `ai21:j2-grande`, `ai21:j2-jumbo`, `ai21:j2-grande-instruct`, `ai21:j2-jumbo-instruct` |\n", "| `anthropic` | `ANTHROPIC_API_KEY` | | `anthropic:claude-v1`, `anthropic:claude-v1.0`, `anthropic:claude-v1.2`, `anthropic:claude-instant-v1`, `anthropic:claude-instant-v1.0` |\n", "| `cohere` | `COHERE_API_KEY` | | `cohere:medium`, `cohere:xlarge` |\n", "| `huggingface_hub` | `HUGGINGFACEHUB_API_TOKEN` | | This provider does not define a list of models. |\n", "| `openai` | `OPENAI_API_KEY` | | `openai:text-davinci-003`, `openai:text-davinci-002`, `openai:text-curie-001`, `openai:text-babbage-001`, `openai:text-ada-001`, `openai:davinci`, `openai:curie`, `openai:babbage`, `openai:ada` |\n", "| `openai-chat` | `OPENAI_API_KEY` | | `openai-chat:gpt-4`, `openai-chat:gpt-4-0314`, `openai-chat:gpt-4-32k`, `openai-chat:gpt-4-32k-0314`, `openai-chat:gpt-3.5-turbo`, `openai-chat:gpt-3.5-turbo-0301` |\n", "| `openai-chat-new` | `OPENAI_API_KEY` | | `openai-chat-new:gpt-4`, `openai-chat-new:gpt-4-0314`, `openai-chat-new:gpt-4-32k`, `openai-chat-new:gpt-4-32k-0314`, `openai-chat-new:gpt-3.5-turbo`, `openai-chat-new:gpt-3.5-turbo-0301` |\n", "| `sagemaker-endpoint` | Not applicable. | N/A | This provider does not define a list of models. |\n", "\n", "Aliases and custom commands:\n", "\n", "| Name | Target |\n", "|------|--------|\n", "| `gpt2` | `huggingface_hub:gpt2` |\n", "| `gpt3` | `openai:text-davinci-003` |\n", "| `chatgpt` | `openai-chat:gpt-3.5-turbo` |\n", "| `gpt4` | `openai-chat:gpt-4` |\n" ], "text/plain": [ "ai21\n", "Requires environment variable AI21_API_KEY (set)\n", "* ai21:j1-large\n", "* ai21:j1-grande\n", "* ai21:j1-jumbo\n", "* ai21:j1-grande-instruct\n", "* ai21:j2-large\n", "* ai21:j2-grande\n", "* ai21:j2-jumbo\n", "* ai21:j2-grande-instruct\n", "* ai21:j2-jumbo-instruct\n", "\n", "anthropic\n", "Requires environment variable ANTHROPIC_API_KEY (set)\n", "* anthropic:claude-v1\n", "* anthropic:claude-v1.0\n", "* anthropic:claude-v1.2\n", "* anthropic:claude-instant-v1\n", "* anthropic:claude-instant-v1.0\n", "\n", "cohere\n", "Requires environment variable COHERE_API_KEY (set)\n", "* cohere:medium\n", "* cohere:xlarge\n", "\n", "huggingface_hub\n", "Requires environment variable HUGGINGFACEHUB_API_TOKEN (set)\n", "* This provider does not define a list of models.\n", "\n", "openai\n", "Requires environment variable OPENAI_API_KEY (set)\n", "* openai:text-davinci-003\n", "* openai:text-davinci-002\n", "* openai:text-curie-001\n", "* openai:text-babbage-001\n", "* openai:text-ada-001\n", "* openai:davinci\n", "* openai:curie\n", "* openai:babbage\n", "* openai:ada\n", "\n", "openai-chat\n", "Requires environment variable OPENAI_API_KEY (set)\n", "* openai-chat:gpt-4\n", "* openai-chat:gpt-4-0314\n", "* openai-chat:gpt-4-32k\n", "* openai-chat:gpt-4-32k-0314\n", "* openai-chat:gpt-3.5-turbo\n", "* openai-chat:gpt-3.5-turbo-0301\n", "\n", "openai-chat-new\n", "Requires environment variable OPENAI_API_KEY (set)\n", "* openai-chat-new:gpt-4\n", "* openai-chat-new:gpt-4-0314\n", "* openai-chat-new:gpt-4-32k\n", "* openai-chat-new:gpt-4-32k-0314\n", "* openai-chat-new:gpt-3.5-turbo\n", "* openai-chat-new:gpt-3.5-turbo-0301\n", "\n", "sagemaker-endpoint\n", "* This provider does not define a list of models.\n", "\n", "\n", "Aliases and custom commands:\n", "gpt2 - huggingface_hub:gpt2\n", "gpt3 - openai:text-davinci-003\n", "chatgpt - openai-chat:gpt-3.5-turbo\n", "gpt4 - openai-chat:gpt-4\n" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%ai list" ] }, { "cell_type": "markdown", "id": "178e9916-5bd8-40bf-a273-ea03553663b4", "metadata": {}, "source": [ "## Custom chains\n", "\n", "You can define a LangChain chain in a local variable and use that as the target in a magic `%ai register` command." ] }, { "cell_type": "code", "execution_count": 14, "id": "9ef639c7-1ca8-48af-b5e5-f76cfa5779f3", "metadata": { "tags": [] }, "outputs": [], "source": [ "from langchain.chains import LLMChain\n", "from langchain.prompts import PromptTemplate\n", "from langchain.llms import OpenAI\n", "\n", "llm = OpenAI(temperature=0.9)\n", "prompt = PromptTemplate(\n", " input_variables=[\"product\"],\n", " template=\"What is a good name for a company that makes {product}?\",\n", ")\n", "chain = LLMChain(llm=llm, prompt=prompt)" ] }, { "cell_type": "code", "execution_count": 15, "id": "29d5239f-7601-405e-b059-4e881ebf7ab1", "metadata": { "tags": [] }, "outputs": [], "source": [ "from langchain.chains import LLMChain\n", "chain = LLMChain(llm=llm, prompt=prompt)" ] }, { "cell_type": "code", "execution_count": 16, "id": "43e7a77c-93af-4ef7-a104-f932c9f54183", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "Bright Feet Socks\n" ] } ], "source": [ "# Run the chain only specifying the input variable.\n", "print(chain.run(\"colorful socks\"))" ] }, { "cell_type": "code", "execution_count": 17, "id": "9badc567-9720-4e33-ab4a-54fda5129f36", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/markdown": [ "Registered new alias `company`" ], "text/plain": [ "Registered new alias `company`" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%ai register company chain" ] }, { "cell_type": "code", "execution_count": 18, "id": "92b75d71-8844-4872-b424-b0023706abb1", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/markdown": [ "| Provider | Environment variable | Set? | Models |\n", "|----------|----------------------|------|--------|\n", "| `ai21` | `AI21_API_KEY` | | `ai21:j1-large`, `ai21:j1-grande`, `ai21:j1-jumbo`, `ai21:j1-grande-instruct`, `ai21:j2-large`, `ai21:j2-grande`, `ai21:j2-jumbo`, `ai21:j2-grande-instruct`, `ai21:j2-jumbo-instruct` |\n", "| `anthropic` | `ANTHROPIC_API_KEY` | | `anthropic:claude-v1`, `anthropic:claude-v1.0`, `anthropic:claude-v1.2`, `anthropic:claude-instant-v1`, `anthropic:claude-instant-v1.0` |\n", "| `cohere` | `COHERE_API_KEY` | | `cohere:medium`, `cohere:xlarge` |\n", "| `huggingface_hub` | `HUGGINGFACEHUB_API_TOKEN` | | This provider does not define a list of models. |\n", "| `openai` | `OPENAI_API_KEY` | | `openai:text-davinci-003`, `openai:text-davinci-002`, `openai:text-curie-001`, `openai:text-babbage-001`, `openai:text-ada-001`, `openai:davinci`, `openai:curie`, `openai:babbage`, `openai:ada` |\n", "| `openai-chat` | `OPENAI_API_KEY` | | `openai-chat:gpt-4`, `openai-chat:gpt-4-0314`, `openai-chat:gpt-4-32k`, `openai-chat:gpt-4-32k-0314`, `openai-chat:gpt-3.5-turbo`, `openai-chat:gpt-3.5-turbo-0301` |\n", "| `openai-chat-new` | `OPENAI_API_KEY` | | `openai-chat-new:gpt-4`, `openai-chat-new:gpt-4-0314`, `openai-chat-new:gpt-4-32k`, `openai-chat-new:gpt-4-32k-0314`, `openai-chat-new:gpt-3.5-turbo`, `openai-chat-new:gpt-3.5-turbo-0301` |\n", "| `sagemaker-endpoint` | Not applicable. | N/A | This provider does not define a list of models. |\n", "\n", "Aliases and custom commands:\n", "\n", "| Name | Target |\n", "|------|--------|\n", "| `gpt2` | `huggingface_hub:gpt2` |\n", "| `gpt3` | `openai:text-davinci-003` |\n", "| `chatgpt` | `openai-chat:gpt-3.5-turbo` |\n", "| `gpt4` | `openai-chat:gpt-4` |\n", "| `company` | *custom chain* |\n" ], "text/plain": [ "ai21\n", "Requires environment variable AI21_API_KEY (set)\n", "* ai21:j1-large\n", "* ai21:j1-grande\n", "* ai21:j1-jumbo\n", "* ai21:j1-grande-instruct\n", "* ai21:j2-large\n", "* ai21:j2-grande\n", "* ai21:j2-jumbo\n", "* ai21:j2-grande-instruct\n", "* ai21:j2-jumbo-instruct\n", "\n", "anthropic\n", "Requires environment variable ANTHROPIC_API_KEY (set)\n", "* anthropic:claude-v1\n", "* anthropic:claude-v1.0\n", "* anthropic:claude-v1.2\n", "* anthropic:claude-instant-v1\n", "* anthropic:claude-instant-v1.0\n", "\n", "cohere\n", "Requires environment variable COHERE_API_KEY (set)\n", "* cohere:medium\n", "* cohere:xlarge\n", "\n", "huggingface_hub\n", "Requires environment variable HUGGINGFACEHUB_API_TOKEN (set)\n", "* This provider does not define a list of models.\n", "\n", "openai\n", "Requires environment variable OPENAI_API_KEY (set)\n", "* openai:text-davinci-003\n", "* openai:text-davinci-002\n", "* openai:text-curie-001\n", "* openai:text-babbage-001\n", "* openai:text-ada-001\n", "* openai:davinci\n", "* openai:curie\n", "* openai:babbage\n", "* openai:ada\n", "\n", "openai-chat\n", "Requires environment variable OPENAI_API_KEY (set)\n", "* openai-chat:gpt-4\n", "* openai-chat:gpt-4-0314\n", "* openai-chat:gpt-4-32k\n", "* openai-chat:gpt-4-32k-0314\n", "* openai-chat:gpt-3.5-turbo\n", "* openai-chat:gpt-3.5-turbo-0301\n", "\n", "openai-chat-new\n", "Requires environment variable OPENAI_API_KEY (set)\n", "* openai-chat-new:gpt-4\n", "* openai-chat-new:gpt-4-0314\n", "* openai-chat-new:gpt-4-32k\n", "* openai-chat-new:gpt-4-32k-0314\n", "* openai-chat-new:gpt-3.5-turbo\n", "* openai-chat-new:gpt-3.5-turbo-0301\n", "\n", "sagemaker-endpoint\n", "* This provider does not define a list of models.\n", "\n", "\n", "Aliases and custom commands:\n", "gpt2 - huggingface_hub:gpt2\n", "gpt3 - openai:text-davinci-003\n", "chatgpt - openai-chat:gpt-3.5-turbo\n", "gpt4 - openai-chat:gpt-4\n", "company - custom chain\n" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%ai list" ] }, { "cell_type": "code", "execution_count": 19, "id": "cfef0fee-a7c6-49e4-8d90-9aa12f7b91d1", "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "\n", "\n", "**Funky Toes**" ], "text/plain": [ "" ] }, "execution_count": 19, "metadata": { "text/markdown": { "jupyter_ai": { "custom_chain_id": "company" } } }, "output_type": "execute_result" } ], "source": [ "%%ai company\n", "colorful socks" ] }, { "cell_type": "code", "execution_count": 20, "id": "06c698e7-e2cf-41b5-88de-2be4d3b60eba", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "\n", "\n", "Rainbow Toe Socks." ] }, "execution_count": 20, "metadata": { "jupyter_ai": { "custom_chain_id": "company" } }, "output_type": "execute_result" } ], "source": [ "%%ai company --format text\n", "colorful socks" ] }, { "cell_type": "code", "execution_count": null, "id": "849f48a3-9477-4a12-afa6-fd2e79c0764f", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.10.8" } }, "nbformat": 4, "nbformat_minor": 5 }