{ "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 --upgrade --quiet 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": null, "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 = getpass()" ] }, { "cell_type": "code", "execution_count": 3, "id": "6fb585dd", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Import the required modules\n", "from langchain.chains import LLMChain\n", "from langchain.prompts import PromptTemplate\n", "from langchain_community.embeddings import ClarifaiEmbeddings" ] }, { "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.from_template(template)" ] }, { "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": 6, "id": "1fe9bf15", "metadata": {}, "outputs": [], "source": [ "USER_ID = \"clarifai\"\n", "APP_ID = \"main\"\n", "MODEL_ID = \"BAAI-bge-base-en-v15\"\n", "MODEL_URL = \"https://clarifai.com/clarifai/main/models/BAAI-bge-base-en-v15\"\n", "\n", "# Further you can also 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(user_id=USER_ID, app_id=APP_ID, model_id=MODEL_ID)\n", "\n", "# Initialize a clarifai embedding model using model URL\n", "embeddings = ClarifaiEmbeddings(model_url=MODEL_URL)\n", "\n", "# Alternatively you can initialize clarifai class with pat argument." ] }, { "cell_type": "code", "execution_count": 5, "id": "a641dbd9", "metadata": { "tags": [] }, "outputs": [], "source": [ "text = \"roses are red violets are blue.\"\n", "text2 = \"Make hay while the sun shines.\"" ] }, { "cell_type": "markdown", "id": "14544fbb-76df-43c9-b5ec-88941ff12889", "metadata": {}, "source": [ "You can embed single line of your text using embed_query function !" ] }, { "cell_type": "code", "execution_count": 8, "id": "32b4d5f4-2b8e-4681-856f-19a3dd141ae4", "metadata": {}, "outputs": [], "source": [ "query_result = embeddings.embed_query(text)" ] }, { "cell_type": "markdown", "id": "ab9140c7-19c7-48fd-9a28-0c2351e5d2c5", "metadata": {}, "source": [ "Further to embed list of texts/documents use embed_documents function." ] }, { "cell_type": "code", "execution_count": 9, "id": "47076457-1880-48ac-970f-872ead6f0d94", "metadata": {}, "outputs": [], "source": [ "doc_result = embeddings.embed_documents([text, text2])" ] } ], "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.10" } }, "nbformat": 4, "nbformat_minor": 5 }