{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "1eZl1oaVUNeC" }, "source": [ "# Elasticsearch\n", "Walkthrough of how to generate embeddings using a hosted embedding model in Elasticsearch\n", "\n", "The easiest way to instantiate the `ElasticsearchEmebddings` class it either\n", "- using the `from_credentials` constructor if you are using Elastic Cloud\n", "- or using the `from_es_connection` constructor with any Elasticsearch cluster" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "6dJxqebov4eU" }, "outputs": [], "source": [ "!pip -q install elasticsearch langchain" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "RV7C3DUmv4aq" }, "outputs": [], "source": [ "import elasticsearch\n", "from langchain.embeddings.elasticsearch import ElasticsearchEmbeddings" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "MrT3jplJvp09" }, "outputs": [], "source": [ "# Define the model ID\n", "model_id = 'your_model_id'" ] }, { "cell_type": "markdown", "metadata": { "id": "j5F-nwLVS_Zu" }, "source": [ "## Testing with `from_credentials`\n", "This required an Elastic Cloud `cloud_id`" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "svtdnC-dvpxR" }, "outputs": [], "source": [ "# Instantiate ElasticsearchEmbeddings using credentials\n", "embeddings = ElasticsearchEmbeddings.from_credentials(\n", " model_id,\n", " es_cloud_id='your_cloud_id', \n", " es_user='your_user', \n", " es_password='your_password'\n", ")\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "7DXZAK7Kvpth" }, "outputs": [], "source": [ "# Create embeddings for multiple documents\n", "documents = [\n", " 'This is an example document.', \n", " 'Another example document to generate embeddings for.'\n", "]\n", "document_embeddings = embeddings.embed_documents(documents)\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "K8ra75W_vpqy" }, "outputs": [], "source": [ "# Print document embeddings\n", "for i, embedding in enumerate(document_embeddings):\n", " print(f\"Embedding for document {i+1}: {embedding}\")\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "V4Q5kQo9vpna" }, "outputs": [], "source": [ "# Create an embedding for a single query\n", "query = 'This is a single query.'\n", "query_embedding = embeddings.embed_query(query)\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "O0oQDzGKvpkz" }, "outputs": [], "source": [ "# Print query embedding\n", "print(f\"Embedding for query: {query_embedding}\")\n" ] }, { "cell_type": "markdown", "metadata": { "id": "rHN03yV6TJ5q" }, "source": [ "## Testing with Existing Elasticsearch client connection\n", "This can be used with any Elasticsearch deployment" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "GMQcJDwBTJFm" }, "outputs": [], "source": [ "# Create Elasticsearch connection\n", "es_connection = Elasticsearch(\n", " hosts=['https://es_cluster_url:port'], \n", " basic_auth=('user', 'password')\n", ")" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "WTYIU4u3TJO1" }, "outputs": [], "source": [ "# Instantiate ElasticsearchEmbeddings using es_connection\n", "embeddings = ElasticsearchEmbeddings.from_es_connection(\n", " model_id,\n", " es_connection,\n", ")" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "4gdAUHwoTJO3" }, "outputs": [], "source": [ "# Create embeddings for multiple documents\n", "documents = [\n", " 'This is an example document.', \n", " 'Another example document to generate embeddings for.'\n", "]\n", "document_embeddings = embeddings.embed_documents(documents)\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "RC_-tov6TJO3" }, "outputs": [], "source": [ "# Print document embeddings\n", "for i, embedding in enumerate(document_embeddings):\n", " print(f\"Embedding for document {i+1}: {embedding}\")\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "6GEnHBqETJO3" }, "outputs": [], "source": [ "# Create an embedding for a single query\n", "query = 'This is a single query.'\n", "query_embedding = embeddings.embed_query(query)\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "-kyUQAXDTJO4" }, "outputs": [], "source": [ "# Print query embedding\n", "print(f\"Embedding for query: {query_embedding}\")\n" ] } ], "metadata": { "colab": { "provenance": [] }, "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.11.3" } }, "nbformat": 4, "nbformat_minor": 1 }