{
 "cells": [
  {
   "attachments": {},
   "cell_type": "markdown",
   "id": "9597802c",
   "metadata": {},
   "source": [
    "# Clarifai\n",
    "\n",
    ">[Clarifai](https://www.clarifai.com/) is a AI Platform that provides the full AI lifecycle ranging from data exploration, data labeling, model building and inference.\n",
    "\n",
    "This example goes over how to use LangChain to interact with `Clarifai` [models](https://clarifai.com/explore/models)."
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "id": "2a773d8d",
   "metadata": {},
   "source": [
    "# Dependencies"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "91ea14ce-831d-409a-a88f-30353acdabd1",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "# Install required dependencies\n",
    "!pip install clarifai"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "id": "426f1156",
   "metadata": {},
   "source": [
    "# Imports\n",
    "Here we will be setting the personal access token. You can find your PAT under settings/security on the platform."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "3f5dc9d7-65e3-4b5b-9086-3327d016cfe0",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "# Please login and get your API key from  https://clarifai.com/settings/security \n",
    "from getpass import getpass\n",
    "\n",
    "CLARIFAI_PAT_KEY = getpass()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "6fb585dd",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "# Import the required modules\n",
    "from langchain.llms import Clarifai\n",
    "from langchain import PromptTemplate, LLMChain"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "id": "16521ed2",
   "metadata": {},
   "source": [
    "# Input\n",
    "Create a prompt template to be used with the LLM Chain"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "035dea0f",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "template = \"\"\"Question: {question}\n",
    "\n",
    "Answer: Let's think step by step.\"\"\"\n",
    "\n",
    "prompt = PromptTemplate(template=template, input_variables=[\"question\"])"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "id": "c8905eac",
   "metadata": {},
   "source": [
    "# Setup\n",
    "Setup the user id and app id where the model resides. You can find a list of public models on https://clarifai.com/explore/models\n",
    "\n",
    "You will have to also initialize the model id and if needed, the model version id. Some models have many versions, you can choose the one appropriate for your task."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "1fe9bf15",
   "metadata": {},
   "outputs": [],
   "source": [
    "USER_ID = 'openai'\n",
    "APP_ID = 'chat-completion'\n",
    "MODEL_ID = 'chatgpt-3_5-turbo'\n",
    "\n",
    "# You can provide a specific model version\n",
    "# model_version_id = \"MODEL_VERSION_ID\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "3f3458d9",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "# Initialize a Clarifai LLM\n",
    "clarifai_llm = Clarifai(clarifai_pat_key=CLARIFAI_PAT_KEY, user_id=USER_ID, app_id=APP_ID, model_id=MODEL_ID)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "a641dbd9",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "# Create LLM chain\n",
    "llm_chain = LLMChain(prompt=prompt, llm=clarifai_llm)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "id": "3e87c71a",
   "metadata": {},
   "source": [
    "# Run Chain"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "9f844993",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'Justin Bieber was born on March 1, 1994. So, we need to look at the Super Bowl that was played in the year 1994. \\n\\nThe Super Bowl in 1994 was Super Bowl XXVIII (28). It was played on January 30, 1994, between the Dallas Cowboys and the Buffalo Bills. \\n\\nThe Dallas Cowboys won the Super Bowl in 1994, defeating the Buffalo Bills by a score of 30-13. \\n\\nTherefore, the Dallas Cowboys are the NFL team that won the Super Bowl in the year Justin Bieber was born.'"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "question = \"What NFL team won the Super Bowl in the year Justin Beiber was born?\"\n",
    "\n",
    "llm_chain.run(question)"
   ]
  }
 ],
 "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.9.16"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
