我正在使用带有Azure OpenAI和Azure Cognitive Search的langchain. 目前我正在使用Azure OpenAI Text-Embedding-ada-002模型来生成嵌入,但如果可能的话,我想使用HugginFace的嵌入模型,因为Azure OpenAI API不允许批量发送文档,所以我需要进行多次调用并达到速率限制.

我try 在我的代码中使用此嵌入:

embeddings = SentenceTransformerEmbeddings(
        model_name="all-mpnet-base-v2",
    )

不是:

embeddings = OpenAIEmbeddings(
        ...
)

我面临的问题是,当我使用AzureSearch的aadd_texts方法时,我得到了这个错误:

The vector field 'content_vector' dimensionality must match the field definition's 'dimensions' property. Expected: '1536'. Actual: '768'. (IndexDocumentsFieldError) 98: The vector field 'content_vector' dimensionality must match the field definition's 'dimensions' property. Expected: '1536'. Actual: '768'.
        Code: IndexDocumentsFieldError

我完全迷路了.有没有人在Cognitive Search中使用开源嵌入模型?多么?

推荐答案

如错误消息所示,向量场的维度不匹配.

根据all-mpnet-base-v2模型的文档,向量的维度是768(引用:https://huggingface.co/sentence-transformers/all-mpnet-base-v2#all-mpnet-base-v2),而Azure Search中创建的向量域的默认维度是1536(它假设您将使用Open AI中的text-embedding-ada-002模型).

请判断您的索引定义,并确保向量字段的维度属性为768.您可能需要重新创建索引.

Python相关问答推荐

在Python和matlab中显示不同 colored颜色 的图像

Pythind 11无法弄清楚如何访问tuple元素

大Pandas 胚胎中产生组合

将特定列信息移动到当前行下的新行

Pandas 滚动最接近的价值

Python上的Instagram API:缺少client_id参数"

修复mypy错误-赋值中的类型不兼容(表达式具有类型xxx,变量具有类型yyy)

基于索引值的Pandas DataFrame条件填充

如何使用Python以编程方式判断和检索Angular网站的动态内容?

SQLAlchemy Like ALL ORM analog

在极性中创建条件累积和

根据列值添加时区

在Python中计算连续天数

寻找Regex模式返回与我当前函数类似的结果

(Python/Pandas)基于列中非缺失值的子集DataFrame

如何在信号的FFT中获得正确的频率幅值

如何根据一定条件生成段id

随机森林n_估计器的计算

是否将Pandas 数据帧标题/标题以纯文本格式转换为字符串输出?

使用pythonminidom过滤XML文件