langflow Qdrant向量化从Word文档错误构建组件

avwztpqn  于 6个月前  发布在  其他
关注(0)|答案(1)|浏览(68)

Bug描述

TypeError: VectorStore.from_documents() missing 1 required positional argument:
                             'embedding'

复现步骤

前提条件:本地使用docker运行的Qdrant容器

services:
  qdrant:
    image: qdrant/qdrant:latest
    restart: always
    container_name: qdrant
    ports:
      - 6333:6333
      - 6334:6334
    expose:
      - 6333
      - 6334
      - 6335
    volumes:
      - ./qdrant_data:/qdrant_data
  1. 以Vector Store RAG模板为基础,创建一个新项目。
  2. 从两个流程中移除'OpenAI Embeddings'组件,并用'Azure OpenAI Embeddings'替换。
  3. 用您的Azure OpenAI Studio部署端点完成'Azure OpenAI Embeddings'组件。
  4. 将两个流程中的AstraDB组件替换为'Qdrant'向量存储。
  5. 用集合名称完成两个流程中的Qdrant组件,将其他设置保持为本地运行示例的默认值。
  6. 在摄取流程(底部中心画布)中选择一个.docx文件作为文件输入,在File Data组件中进行选择。
  7. 点击File Data组件上的运行按钮。
    观察错误:“构建组件Qdrant时出错:VectorStore.from_documents()缺少一个必需的位置参数:'embedding'”

预期行为

成功构建嵌入流程

谁可以帮忙?

  • 无响应*

操作系统

MacOS Sonoma 14.5 (23F79)

Langflow版本

1.0.7

Python版本

  • 3.12
  • 3.11
  • 3.10
vwhgwdsa

vwhgwdsa1#

你好,@peter-boucher!我在这里帮助你解决任何bug、问题或贡献。让我们一起解决你正在经历的问题。
要解决 TypeError: VectorStore.from_documents() missing 1 required positional argument: 'embedding' 错误,请确保在调用 Qdrant.from_documents 方法时正确提供 embedding 参数。以下是操作步骤:

  1. 确保提供 embedding :当你为 Qdrant 组件调用 build 方法时,请确保包含 embedding 参数。例如:
qdrant_component = QdrantComponent()
vector_store = qdrant_component.build(
    embedding=my_embedding,  # Ensure this is provided
    collection_name="my_collection",
    inputs=my_documents,  # Ensure this is provided
    api_key="my_api_key",
    # other parameters as needed
)
  1. 生成 embedding 参数:embedding 参数应该是 AzureOpenAIEmbeddings 类的示例。以下是如何生成它的方法:
from langchain_community.embeddings import AzureOpenAIEmbeddings

azure_embedding = AzureOpenAIEmbeddings(
    azure_endpoint="your_azure_endpoint",
    azure_deployment="your_azure_deployment",
    api_version="your_api_version",
    api_key="your_api_key"
)
  1. 传递 embedding 参数:在构建 Qdrant 组件时使用生成的 azure_embedding 参数:
qdrant_component = QdrantComponent()
vector_store = qdrant_component.build(
    embedding=azure_embedding,
    collection_name="my_collection",
    inputs=my_documents,
    api_key="my_api_key",
    # other parameters as needed
)

确保 my_documents 是有效的 RecordDocument 对象列表。这应该解决错误并允许嵌入流程成功构建。

  • 要继续与 @dosu 对话,请提及 @dosu。*

相关问题