diff --git a/cookbook/liteLLM_Langchain_Demo.ipynb b/cookbook/liteLLM_Langchain_Demo.ipynb new file mode 100644 index 000000000..0f6364a14 --- /dev/null +++ b/cookbook/liteLLM_Langchain_Demo.ipynb @@ -0,0 +1,201 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + } + }, + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# Langchain liteLLM Demo Notebook\n", + "## Use `ChatLiteLLM()` to instantly support 50+ LLM models\n", + "Langchain Docs: https://python.langchain.com/docs/integrations/chat/litellm\n", + "\n", + "Call all LLM models using the same I/O interface\n", + "\n", + "Example usage\n", + "```python\n", + "ChatLiteLLM(model=\"gpt-3.5-turbo\")\n", + "ChatLiteLLM(model=\"claude-2\", temperature=0.3)\n", + "ChatLiteLLM(model=\"command-nightly\")\n", + "ChatLiteLLM(model=\"replicate/llama-2-70b-chat:2c1608e18606fad2812020dc541930f2d0495ce32eee50074220b87300bc16e1\")\n", + "```" + ], + "metadata": { + "id": "5hwntUxTMxEk" + } + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "aPNAUsCvB6Sv" + }, + "outputs": [], + "source": [ + "!pip install litellm langchain" + ] + }, + { + "cell_type": "code", + "source": [ + "import os\n", + "from langchain.chat_models import ChatLiteLLM\n", + "from langchain.prompts.chat import (\n", + " ChatPromptTemplate,\n", + " SystemMessagePromptTemplate,\n", + " AIMessagePromptTemplate,\n", + " HumanMessagePromptTemplate,\n", + ")\n", + "from langchain.schema import AIMessage, HumanMessage, SystemMessage" + ], + "metadata": { + "id": "MOhRaVnhB-0J" + }, + "execution_count": 2, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "os.environ['OPENAI_API_KEY'] = \"\"\n", + "chat = ChatLiteLLM(model=\"gpt-3.5-turbo\")\n", + "messages = [\n", + " HumanMessage(\n", + " content=\"what model are you\"\n", + " )\n", + "]\n", + "chat(messages)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "TahkCtlmCD65", + "outputId": "5ddda40f-f252-4830-a8d6-bd3fa68ae487" + }, + "execution_count": 17, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "AIMessage(content='I am an AI model known as GPT-3, developed by OpenAI.', additional_kwargs={}, example=False)" + ] + }, + "metadata": {}, + "execution_count": 17 + } + ] + }, + { + "cell_type": "code", + "source": [ + "os.environ['ANTHROPIC_API_KEY'] = \"\"\n", + "chat = ChatLiteLLM(model=\"claude-2\", temperature=0.3)\n", + "messages = [\n", + " HumanMessage(\n", + " content=\"what model are you\"\n", + " )\n", + "]\n", + "chat(messages)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "uXNDyU4jChcs", + "outputId": "bd74b4c6-f9fb-42dc-fdc3-9240d50503ba" + }, + "execution_count": 23, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "AIMessage(content=\" I'm Claude, an AI assistant created by Anthropic.\", additional_kwargs={}, example=False)" + ] + }, + "metadata": {}, + "execution_count": 23 + } + ] + }, + { + "cell_type": "code", + "source": [ + "os.environ['REPLICATE_API_TOKEN'] = \"\"\n", + "chat = ChatLiteLLM(model=\"replicate/llama-2-70b-chat:2c1608e18606fad2812020dc541930f2d0495ce32eee50074220b87300bc16e1\")\n", + "messages = [\n", + " HumanMessage(\n", + " content=\"what model are you?\"\n", + " )\n", + "]\n", + "chat(messages)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "czbDJRKcC7BV", + "outputId": "892e147d-831e-4884-dc71-040f92c3fb8e" + }, + "execution_count": 27, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "AIMessage(content=\" I'm an AI based based on LLaMA models (LLaMA: Open and Efficient Foundation Language Models, Touvron et al. 2023), my knowledge was built from a massive corpus of text, including books, articles, and websites, and I was trained using a variety of machine learning algorithms. My model architecture is based on the transformer architecture, which is particularly well-suited for natural language processing tasks. My team of developers and I are constantly working to improve and fine-tune my performance, and I am always happy to help with any questions you may have!\", additional_kwargs={}, example=False)" + ] + }, + "metadata": {}, + "execution_count": 27 + } + ] + }, + { + "cell_type": "code", + "source": [ + "os.environ['COHERE_API_KEY'] = \"\"\n", + "chat = ChatLiteLLM(model=\"command-nightly\")\n", + "messages = [\n", + " HumanMessage(\n", + " content=\"what model are you?\"\n", + " )\n", + "]\n", + "chat(messages)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "tZxpq5PDDY9Y", + "outputId": "7e86f4ed-ac7a-45e1-87d0-217da6cad666" + }, + "execution_count": 30, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "AIMessage(content=' I am an AI-based large language model, or Chatbot, built by the company Cohere. I am designed to have polite, helpful, inclusive conversations with users. I am always learning and improving, and I am constantly being updated with new information and improvements.\\n\\nI am currently in the development phase, and I am not yet available to the general public. However, I am currently being used by a select group of users for testing and feedback.\\n\\nI am a large language model, which means that I am trained on a massive amount of data and can understand and respond to a wide range of requests and questions. I am also designed to be flexible and adaptable, so I can be customized to suit the needs of different users and use cases.\\n\\nI am currently being used to develop a range of applications, including customer service chatbots, content generation tools, and language translation services. I am also being used to train other language models and to develop new ways of using large language models.\\n\\nI am constantly being updated with new information and improvements, so I am always learning and improving. I am also being used to develop new ways of using large language models, so I am always evolving and adapting to new use cases and requirements.', additional_kwargs={}, example=False)" + ] + }, + "metadata": {}, + "execution_count": 30 + } + ] + } + ] +} \ No newline at end of file diff --git a/litellm/__init__.py b/litellm/__init__.py index aa5c547bd..d47c8e7b8 100644 --- a/litellm/__init__.py +++ b/litellm/__init__.py @@ -51,6 +51,7 @@ headers = None api_version = None organization = None config_path = None +api_type = None ####### Secret Manager ##################### secret_manager_client = None ####### COMPLETION MODELS ###################