{ "cells": [ { "cell_type": "markdown", "source": [ "# Tigris\n", "\n", "> [Tigris](htttps://tigrisdata.com) is an open source Serverless NoSQL Database and Search Platform designed to simplify building high-performance vector search applications.\n", "> Tigris eliminates the infrastructure complexity of managing, operating, and synchronizing multiple tools, allowing you to focus on building great applications instead." ], "metadata": { "collapsed": false } }, { "cell_type": "markdown", "source": [ "This notebook guides you how to use Tigris as your VectorStore" ], "metadata": { "collapsed": false } }, { "cell_type": "markdown", "source": [ "**Pre requisites**\n", "1. An OpenAI account. You can sign up for an account [here](https://platform.openai.com/)\n", "2. [Sign up for a free Tigris account](https://console.preview.tigrisdata.cloud). Once you have signed up for the Tigris account, create a new project called `vectordemo`. Next, make a note of the *Uri* for the region you've created your project in, the **clientId** and **clientSecret**. You can get all this information from the **Application Keys** section of the project." ], "metadata": { "collapsed": false } }, { "cell_type": "markdown", "source": [ "Let's first install our dependencies:" ], "metadata": { "collapsed": false } }, { "cell_type": "code", "execution_count": null, "outputs": [], "source": [ "!pip install tigrisdb openapi-schema-pydantic openai tiktoken" ], "metadata": { "collapsed": false } }, { "cell_type": "markdown", "source": [ "We will load the `OpenAI` api key and `Tigris` credentials in our environment" ], "metadata": { "collapsed": false } }, { "cell_type": "code", "execution_count": null, "outputs": [], "source": [ "import os\n", "import getpass\n", "\n", "os.environ['OPENAI_API_KEY'] = getpass.getpass('OpenAI API Key:')\n", "os.environ['TIGRIS_PROJECT'] = getpass.getpass('Tigris Project Name:')\n", "os.environ['TIGRIS_CLIENT_ID'] = getpass.getpass('Tigris Client Id:')\n", "os.environ['TIGRIS_CLIENT_SECRET'] = getpass.getpass('Tigris Client Secret:')" ], "metadata": { "collapsed": false } }, { "cell_type": "code", "execution_count": null, "outputs": [], "source": [ "from langchain.embeddings.openai import OpenAIEmbeddings\n", "from langchain.text_splitter import CharacterTextSplitter\n", "from langchain.vectorstores import Tigris\n", "from langchain.document_loaders import TextLoader" ], "metadata": { "collapsed": false } }, { "cell_type": "markdown", "source": [ "### Initialize Tigris vector store\n", "Let's import our test dataset:" ], "metadata": { "collapsed": false } }, { "cell_type": "code", "execution_count": null, "outputs": [], "source": [ "loader = TextLoader('../../../state_of_the_union.txt')\n", "documents = loader.load()\n", "text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)\n", "docs = text_splitter.split_documents(documents)\n", "\n", "embeddings = OpenAIEmbeddings()" ], "metadata": { "collapsed": false } }, { "cell_type": "code", "execution_count": null, "outputs": [], "source": [ "vector_store = Tigris.from_documents(docs, embeddings, index_name=\"my_embeddings\")" ], "metadata": { "collapsed": false } }, { "cell_type": "markdown", "source": [ "### Similarity Search" ], "metadata": { "collapsed": false } }, { "cell_type": "code", "execution_count": null, "outputs": [], "source": [ "query = \"What did the president say about Ketanji Brown Jackson\"\n", "found_docs = vector_store.similarity_search(query)\n", "print(found_docs)" ], "metadata": { "collapsed": false } }, { "cell_type": "markdown", "source": [ "### Similarity Search with score (vector distance)" ], "metadata": { "collapsed": false } }, { "cell_type": "code", "execution_count": null, "outputs": [], "source": [ "query = \"What did the president say about Ketanji Brown Jackson\"\n", "result = vector_store.similarity_search_with_score(query)\n", "for (doc, score) in result:\n", " print(f\"document={doc}, score={score}\")" ], "metadata": { "collapsed": false } } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.6" } }, "nbformat": 4, "nbformat_minor": 0 }