如何向langchain向量存储提供嵌入函数

我试图使用langchain的add_texts方法将文本嵌入到一个简单的向量存储(chromadb)中,尽管在另一个简单的langchain场景中成功使用了OpenAI包,但我遇到了以下错误:

ValueError: You must provide embeddings or a function to compute them

代码如下:

from langchain.embeddings.openai import OpenAIEmbeddingsfrom langchain.vectorstores import Chromadb = Chroma()texts = [    """    存储和搜索非结构化数据最常见的方式之一是将其嵌入并存储生成的嵌入向量,然后在查询时嵌入非结构化查询并检索与嵌入查询“最相似”的嵌入向量。向量存储负责存储嵌入数据并为您执行向量搜索。    """,    """    今天的应用程序需要高度响应和始终在线。为了实现低延迟和高可用性,这些应用程序的实例需要部署在靠近用户的数据中心。应用程序需要实时响应高峰时段使用量的巨大变化,存储不断增加的数据量,并在毫秒内将这些数据提供给用户。""",]db.add_texts(texts, embedding_function=OpenAIEmbeddings())

回答:

在构建Chroma对象时需要传递embedding_function。来源:Chroma类 类代码

所以您的代码应该是:

from langchain.embeddings.openai import OpenAIEmbeddingsfrom langchain.vectorstores import Chromadb = Chroma(embedding_function=OpenAIEmbeddings())texts = [    """    存储和搜索非结构化数据最常见的方式之一是将其嵌入并存储生成的嵌入向量,然后在查询时嵌入非结构化查询并检索与嵌入查询“最相似”的嵌入向量。向量存储负责存储嵌入数据并为您执行向量搜索。    """,    """    今天的应用程序需要高度响应和始终在线。为了实现低延迟和高可用性,这些应用程序的实例需要部署在靠近用户的数据中心。应用程序需要实时响应高峰时段使用量的巨大变化,存储不断增加的数据量,并在毫秒内将这些数据提供给用户。""",]db.add_texts(texts)

您将看到的结果是

['58f12150-2bc4-11ee-9ff5-ac87a32b530e', '58f12240-2bc4-11ee-9ff5-ac87a32b530e']

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注