Documentation Index
Fetch the complete documentation index at: https://nvd-54.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
本指南将帮助您开始使用 Nomic 向量嵌入模型 using LangChain. For detailed documentation on NomicEmbeddings 功能和配置选项的详细文档,请参阅 API reference.
集成详情
要访问 Nomic embedding 模型,您需要创建一个 Nomic 账户,获取 API 密钥,并安装 langchain-nomic 集成包。
前往 https://atlas.nomic.ai/ 注册 Nomic 并生成 API 密钥。 完成后设置 NOMIC_API_KEY 环境变量:
import getpass
import os
if not os.getenv("NOMIC_API_KEY"):
os.environ["NOMIC_API_KEY"] = getpass.getpass("Enter your Nomic API key: ")
要启用模型调用的自动追踪,请设置您的 LangSmith API key:
os.environ["LANGSMITH_TRACING"] = "true"
os.environ["LANGSMITH_API_KEY"] = getpass.getpass("请输入您的 LangSmith API 密钥: ")
LangChain 的 Nomic 集成位于 langchain-nomic 包中:
pip install -qU langchain-nomic
实例化
现在我们可以实例化模型对象并生成聊天补全:
from langchain_nomic import NomicEmbeddings
embeddings = NomicEmbeddings(
model="nomic-embed-text-v1.5",
# dimensionality=256,
# Nomic's `nomic-embed-text-v1.5` model was [trained with Matryoshka learning](https://blog.nomic.ai/posts/nomic-embed-matryoshka)
# to enable variable-length embeddings with a single model.
# This means that you can specify the dimensionality of the embeddings at inference time.
# The model supports dimensionality from 64 to 768.
# inference_mode="remote",
# One of `remote`, `local` (Embed4All), or `dynamic` (automatic). Defaults to `remote`.
# api_key=... , # if using remote inference,
# device="cpu",
# The device to use for local embeddings. Choices include
# `cpu`, `gpu`, `nvidia`, `amd`, or a specific device name. See
# the docstring for `GPT4All.__init__` for more info. Typically
# defaults to CPU. Do not use on macOS.
)
索引与检索
向量嵌入模型常用于检索增强生成 (RAG) 流程中, 既用于索引数据,也用于后续检索数据。 更详细的说明请参阅我们的 RAG tutorials.
下面展示如何使用 embeddings 对象来索引和检索数据。 在此示例中,我们将在 InMemoryVectorStore.
# 使用示例文本创建向量存储
from langchain_core.vectorstores import InMemoryVectorStore
text = "LangChain is the framework for building context-aware reasoning applications"
vectorstore = InMemoryVectorStore.from_texts(
[text],
embedding=embeddings,
)
# Use the vectorstore as a retriever
retriever = vectorstore.as_retriever()
# Retrieve the most similar text
retrieved_documents = retriever.invoke("What is LangChain?")
# show the retrieved document's content
retrieved_documents[0].page_content
'LangChain is the framework for building context-aware reasoning applications'
直接使用
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.
You can directly call these methods to get embeddings for your own use cases.
Embed single texts
You can embed single texts or documents with embed_query:
single_vector = embeddings.embed_query(text)
print(str(single_vector)[:100]) # Show the first 100 characters of the vector
[0.024642944, 0.029083252, -0.14013672, -0.09082031, 0.058898926, -0.07489014, -0.0138168335, 0.0037
Embed multiple texts
You can embed multiple texts with embed_documents:
text2 = (
"LangGraph is a library for building stateful, multi-actor applications with LLMs"
)
two_vectors = embeddings.embed_documents([text, text2])
for vector in two_vectors:
print(str(vector)[:100]) # Show the first 100 characters of the vector
[0.012771606, 0.023727417, -0.12365723, -0.083740234, 0.06530762, -0.07110596, -0.021896362, -0.0068
[-0.019058228, 0.04058838, -0.15222168, -0.06842041, -0.012130737, -0.07128906, -0.04534912, 0.00522
API 参考
For detailed documentation on NomicEmbeddings 功能和配置选项的详细文档,请参阅 API reference.