mirror of
https://github.com/hwchase17/langchain.git
synced 2025-05-12 02:26:23 +00:00
- **Description:** Add samba nova cloud embeddings docs, only samabastudio embeddings were supported, now in the latest release of langchan_sambanova sambanova cloud embeddings is also available
253 lines
7.0 KiB
Plaintext
253 lines
7.0 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "raw",
|
|
"id": "afaf8039",
|
|
"metadata": {
|
|
"vscode": {
|
|
"languageId": "raw"
|
|
}
|
|
},
|
|
"source": [
|
|
"---\n",
|
|
"sidebar_label: SambaNovaCloud\n",
|
|
"---"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "9a3d6f34",
|
|
"metadata": {},
|
|
"source": [
|
|
"# SambaNovaCloudEmbeddings\n",
|
|
"\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** [SambaNova Cloud](https://cloud.sambanova.ai/) is a platform for performing inference with 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 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",
|
|
"```\n",
|
|
"\n",
|
|
"### Credentials\n",
|
|
"\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 SAMBANOVA_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(\"SAMBANOVA_API_KEY\"):\n",
|
|
" os.environ[\"SAMBANOVA_API_KEY\"] = getpass.getpass(\"Enter your SambaNova API key: \")"
|
|
]
|
|
},
|
|
{
|
|
"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[\"LANGSMITH_TRACING\"] = \"true\"\n",
|
|
"# os.environ[\"LANGSMITH_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 SambaNovaCloudEmbeddings\n",
|
|
"\n",
|
|
"embeddings = SambaNovaCloudEmbeddings(\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 `SambaNovaCloud` features and configuration options, please refer to the [API reference](https://docs.sambanova.ai/cloud/docs/get-started/overview).\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
|
|
}
|