diff --git a/docs/docs/integrations/providers/sambanova.ipynb b/docs/docs/integrations/providers/sambanova.ipynb index 585948248c7..1027cf6609e 100644 --- a/docs/docs/integrations/providers/sambanova.ipynb +++ b/docs/docs/integrations/providers/sambanova.ipynb @@ -114,6 +114,25 @@ "## Embedding Models" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from langchain_sambanova import SambaNovaCloudEmbeddings\n", + "\n", + "embeddings = SambaNovaCloudEmbeddings(model=\"E5-Mistral-7B-Instruct\")\n", + "embeddings.embed_query(\"What is the meaning of life?\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For a more detailed walkthrough of the SambaStudioEmbeddings component, see [this notebook](https://python.langchain.com/docs/integrations/text_embedding/sambanova/)" + ] + }, { "cell_type": "code", "execution_count": null, @@ -130,7 +149,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "For a more detailed walkthrough of the SambaStudioEmbeddings component, see [this notebook](https://python.langchain.com/docs/integrations/text_embedding/sambanova/)" + "For a more detailed walkthrough of the SambaStudioEmbeddings component, see [this notebook](https://python.langchain.com/docs/integrations/text_embedding/sambastudio/)" ] }, { diff --git a/docs/docs/integrations/text_embedding/sambanova.ipynb b/docs/docs/integrations/text_embedding/sambanova.ipynb index b166eda648b..e3b19b28a59 100644 --- a/docs/docs/integrations/text_embedding/sambanova.ipynb +++ b/docs/docs/integrations/text_embedding/sambanova.ipynb @@ -10,7 +10,7 @@ }, "source": [ "---\n", - "sidebar_label: SambaStudio\n", + "sidebar_label: SambaNovaCloud\n", "---" ] }, @@ -19,11 +19,11 @@ "id": "9a3d6f34", "metadata": {}, "source": [ - "# SambaStudioEmbeddings\n", + "# SambaNovaCloudEmbeddings\n", "\n", - "This will help you get started with SambaNova's SambaStudio embedding models using LangChain. For detailed documentation on `SambaStudioEmbeddings` features and configuration options, please refer to the [API reference](https://docs.sambanova.ai/sambastudio/latest/index.html).\n", + "This will help you getting started with SambaNovaCloud embedding models using LangChain. For detailed documentation on `SambaNovaCloudEmbeddings` features and configuration options, please refer to the [API reference](https://docs.sambanova.ai/cloud/docs/get-started/overview).\n", "\n", - "**[SambaNova](https://sambanova.ai/)'s** [SambaStudio](https://sambanova.ai/technology/full-stack-ai-platform) is a platform for running your own open-source models\n", + "**[SambaNova](https://sambanova.ai/)'s** [SambaNova Cloud](https://cloud.sambanova.ai/) is a platform for performing inference with open-source models\n", "\n", "## Overview\n", "### Integration details\n", @@ -34,7 +34,7 @@ "\n", "## Setup\n", "\n", - "To access ChatSambaStudio models you will need to [deploy an endpoint](https://docs.sambanova.ai/sambastudio/latest/language-models.html) in your SambaStudio platform, install the `langchain_sambanova` integration package.\n", + "To access ChatSambaNovaCloud models you will need to create a [SambaNovaCloud](https://cloud.sambanova.ai/) account, get an API key, install the `langchain_sambanova` integration package.\n", "\n", "```bash\n", "pip install langchain-sambanova\n", @@ -42,11 +42,10 @@ "\n", "### Credentials\n", "\n", - "Get the URL and API Key from your SambaStudio deployed endpoint and add them to your environment variables:\n", + "Get an API Key from [cloud.sambanova.ai](https://cloud.sambanova.ai/apis) and add it to your environment variables:\n", "\n", "``` bash\n", - "export SAMBASTUDIO_URL=\"sambastudio-url-key-here\"\n", - "export SAMBASTUDIO_API_KEY=\"your-api-key-here\"\n", + "export SAMBANOVA_API_KEY=\"your-api-key-here\"\n", "```" ] }, @@ -60,10 +59,8 @@ "import getpass\n", "import os\n", "\n", - "if not os.getenv(\"SAMBASTUDIO_API_KEY\"):\n", - " os.environ[\"SAMBASTUDIO_API_KEY\"] = getpass.getpass(\n", - " \"Enter your SambaNova API key: \"\n", - " )" + "if not os.getenv(\"SAMBANOVA_API_KEY\"):\n", + " os.environ[\"SAMBANOVA_API_KEY\"] = getpass.getpass(\"Enter your SambaNova API key: \")" ] }, { @@ -122,10 +119,10 @@ "metadata": {}, "outputs": [], "source": [ - "from langchain_sambanova import SambaStudioEmbeddings\n", + "from langchain_sambanova import SambaNovaCloudEmbeddings\n", "\n", - "embeddings = SambaStudioEmbeddings(\n", - " model=\"e5-mistral-7b-instruct\",\n", + "embeddings = SambaNovaCloudEmbeddings(\n", + " model=\"E5-Mistral-7B-Instruct\",\n", ")" ] }, @@ -227,7 +224,7 @@ "source": [ "## API Reference\n", "\n", - "For detailed documentation on `SambaStudio` features and configuration options, please refer to the [API reference](https://docs.sambanova.ai/sambastudio/latest/api-ref-landing.html).\n" + "For detailed documentation on `SambaNovaCloud` features and configuration options, please refer to the [API reference](https://docs.sambanova.ai/cloud/docs/get-started/overview).\n" ] } ], diff --git a/docs/docs/integrations/text_embedding/sambastudio.ipynb b/docs/docs/integrations/text_embedding/sambastudio.ipynb new file mode 100644 index 00000000000..e8f36dfaa98 --- /dev/null +++ b/docs/docs/integrations/text_embedding/sambastudio.ipynb @@ -0,0 +1,260 @@ +{ + "cells": [ + { + "cell_type": "raw", + "id": "afaf8039", + "metadata": { + "vscode": { + "languageId": "raw" + } + }, + "source": [ + "---\n", + "sidebar_label: SambaStudio\n", + "---" + ] + }, + { + "cell_type": "markdown", + "id": "9a3d6f34", + "metadata": {}, + "source": [ + "# SambaStudioEmbeddings\n", + "\n", + "This will help you get started with SambaNova's SambaStudio embedding models using LangChain. For detailed documentation on `SambaStudioEmbeddings` features and configuration options, please refer to the [API reference](https://docs.sambanova.ai/sambastudio/latest/index.html).\n", + "\n", + "**[SambaNova](https://sambanova.ai/)'s** [SambaStudio](https://sambanova.ai/technology/full-stack-ai-platform) is a platform for running your own open-source models\n", + "\n", + "## Overview\n", + "### Integration details\n", + "\n", + "| Provider | Package |\n", + "|:--------:|:-------:|\n", + "| [SambaNova](/docs/integrations/providers/sambanova/) | [langchain-sambanova](https://python.langchain.com/docs/integrations/providers/sambanova/) |\n", + "\n", + "## Setup\n", + "\n", + "To access SambaStudio models you will need to [deploy an endpoint](https://docs.sambanova.ai/sambastudio/latest/language-models.html) in your SambaStudio platform, install the `langchain_sambanova` integration package.\n", + "\n", + "```bash\n", + "pip install langchain-sambanova\n", + "```\n", + "\n", + "### Credentials\n", + "\n", + "Get the URL and API Key from your SambaStudio deployed endpoint and add them to your environment variables:\n", + "\n", + "``` bash\n", + "export SAMBASTUDIO_URL=\"sambastudio-url-key-here\"\n", + "export SAMBASTUDIO_API_KEY=\"your-api-key-here\"\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "36521c2a", + "metadata": {}, + "outputs": [], + "source": [ + "import getpass\n", + "import os\n", + "\n", + "if not os.getenv(\"SAMBASTUDIO_URL\"):\n", + " os.environ[\"SAMBASTUDIO_URL\"] = getpass.getpass(\n", + " \"Enter your SambaStudio endpoint URL: \"\n", + " )\n", + "\n", + "if not os.getenv(\"SAMBASTUDIO_API_KEY\"):\n", + " os.environ[\"SAMBASTUDIO_API_KEY\"] = getpass.getpass(\n", + " \"Enter your SambaStudio API key: \"\n", + " )" + ] + }, + { + "cell_type": "markdown", + "id": "c84fb993", + "metadata": {}, + "source": [ + "If you want to get automated tracing of your model calls you can also set your [LangSmith](https://docs.smith.langchain.com/) API key by uncommenting below:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "39a4953b", + "metadata": {}, + "outputs": [], + "source": [ + "# os.environ[\"LANGCHAIN_TRACING_V2\"] = \"true\"\n", + "# os.environ[\"LANGCHAIN_API_KEY\"] = getpass.getpass(\"Enter your LangSmith API key: \")" + ] + }, + { + "cell_type": "markdown", + "id": "d9664366", + "metadata": {}, + "source": [ + "### Installation\n", + "\n", + "The LangChain SambaNova integration lives in the `langchain-sambanova` package:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "64853226", + "metadata": {}, + "outputs": [], + "source": [ + "%pip install -qU langchain-sambanova" + ] + }, + { + "cell_type": "markdown", + "id": "45dd1724", + "metadata": {}, + "source": [ + "## Instantiation\n", + "\n", + "Now we can instantiate our model object and generate chat completions:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9ea7a09b", + "metadata": {}, + "outputs": [], + "source": [ + "from langchain_sambanova import SambaStudioEmbeddings\n", + "\n", + "embeddings = SambaStudioEmbeddings(\n", + " model=\"e5-mistral-7b-instruct\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "77d271b6", + "metadata": {}, + "source": [ + "## Indexing and Retrieval\n", + "\n", + "Embedding models are often used in retrieval-augmented generation (RAG) flows, both as part of indexing data as well as later retrieving it. For more detailed instructions, please see our [RAG tutorials](/docs/tutorials/).\n", + "\n", + "Below, see how to index and retrieve data using the `embeddings` object we initialized above. In this example, we will index and retrieve a sample document in the `InMemoryVectorStore`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d817716b", + "metadata": {}, + "outputs": [], + "source": [ + "# Create a vector store with a sample text\n", + "from langchain_core.vectorstores import InMemoryVectorStore\n", + "\n", + "text = \"LangChain is the framework for building context-aware reasoning applications\"\n", + "\n", + "vectorstore = InMemoryVectorStore.from_texts(\n", + " [text],\n", + " embedding=embeddings,\n", + ")\n", + "\n", + "# Use the vectorstore as a retriever\n", + "retriever = vectorstore.as_retriever()\n", + "\n", + "# Retrieve the most similar text\n", + "retrieved_documents = retriever.invoke(\"What is LangChain?\")\n", + "\n", + "# show the retrieved document's content\n", + "retrieved_documents[0].page_content" + ] + }, + { + "cell_type": "markdown", + "id": "e02b9855", + "metadata": {}, + "source": [ + "## Direct Usage\n", + "\n", + "Under the hood, the vectorstore and retriever implementations are calling `embeddings.embed_documents(...)` and `embeddings.embed_query(...)` to create embeddings for the text(s) used in `from_texts` and retrieval `invoke` operations, respectively.\n", + "\n", + "You can directly call these methods to get embeddings for your own use cases.\n", + "\n", + "### Embed single texts\n", + "\n", + "You can embed single texts or documents with `embed_query`:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0d2befcd", + "metadata": {}, + "outputs": [], + "source": [ + "single_vector = embeddings.embed_query(text)\n", + "print(str(single_vector)[:100]) # Show the first 100 characters of the vector" + ] + }, + { + "cell_type": "markdown", + "id": "1b5a7d03", + "metadata": {}, + "source": [ + "### Embed multiple texts\n", + "\n", + "You can embed multiple texts with `embed_documents`:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2f4d6e97", + "metadata": {}, + "outputs": [], + "source": [ + "text2 = (\n", + " \"LangGraph is a library for building stateful, multi-actor applications with LLMs\"\n", + ")\n", + "two_vectors = embeddings.embed_documents([text, text2])\n", + "for vector in two_vectors:\n", + " print(str(vector)[:100]) # Show the first 100 characters of the vector" + ] + }, + { + "cell_type": "markdown", + "id": "98785c12", + "metadata": {}, + "source": [ + "## API Reference\n", + "\n", + "For detailed documentation on `SambaStudio` features and configuration options, please refer to the [API reference](https://docs.sambanova.ai/sambastudio/latest/api-ref-landing.html).\n" + ] + } + ], + "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.10.5" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}