{ "cells": [ { "attachments": {}, "cell_type": "markdown", "id": "9597802c", "metadata": {}, "source": [ "# Clarifai\n", "\n", ">[Clarifai](https://www.clarifai.com/) is an AI Platform that provides the full AI lifecycle ranging from data exploration, data labeling, model training, evaluation, and inference.\n", "\n", "This example goes over how to use LangChain to interact with `Clarifai` [models](https://clarifai.com/explore/models). Text embedding models in particular can be found [here](https://clarifai.com/explore/models?page=1&perPage=24&filterData=%5B%7B%22field%22%3A%22model_type_id%22%2C%22value%22%3A%5B%22text-embedder%22%5D%7D%5D).\n", "\n", "To use Clarifai, you must have an account and a Personal Access Token (PAT) key. \n", "[Check here](https://clarifai.com/settings/security) to get or create a PAT." ] }, { "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](https://clarifai.com/settings/security) in your Clarifai account." ] }, { "cell_type": "code", "execution_count": 2, "id": "3f5dc9d7-65e3-4b5b-9086-3327d016cfe0", "metadata": { "tags": [] }, "outputs": [ { "name": "stdin", "output_type": "stream", "text": [ " ········\n" ] } ], "source": [ "# Please login and get your API key from https://clarifai.com/settings/security\n", "from getpass import getpass\n", "\n", "CLARIFAI_PAT = getpass()" ] }, { "cell_type": "code", "execution_count": 3, "id": "6fb585dd", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Import the required modules\n", "from langchain.embeddings import ClarifaiEmbeddings\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": 4, "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", "Set the user id and app id to the application in which 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": 5, "id": "1fe9bf15", "metadata": {}, "outputs": [], "source": [ "USER_ID = \"salesforce\"\n", "APP_ID = \"blip\"\n", "MODEL_ID = \"multimodal-embedder-blip-2\"\n", "\n", "# You can provide a specific model version as the model_version_id arg.\n", "# MODEL_VERSION_ID = \"MODEL_VERSION_ID\"" ] }, { "cell_type": "code", "execution_count": 7, "id": "3f3458d9", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Initialize a Clarifai embedding model\n", "embeddings = ClarifaiEmbeddings(\n", " pat=CLARIFAI_PAT, user_id=USER_ID, app_id=APP_ID, model_id=MODEL_ID\n", ")" ] }, { "cell_type": "code", "execution_count": 8, "id": "a641dbd9", "metadata": { "tags": [] }, "outputs": [], "source": [ "text = \"This is a test document.\"" ] }, { "cell_type": "code", "execution_count": 9, "id": "32b4d5f4-2b8e-4681-856f-19a3dd141ae4", "metadata": {}, "outputs": [], "source": [ "query_result = embeddings.embed_query(text)" ] }, { "cell_type": "code", "execution_count": 10, "id": "47076457-1880-48ac-970f-872ead6f0d94", "metadata": {}, "outputs": [], "source": [ "doc_result = embeddings.embed_documents([text])" ] } ], "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 }