haystack HuggingFaceAPI文档嵌入器错误:列表索引必须是整数或切片,而不是字符串,

k97glaaz  于 4个月前  发布在  其他
关注(0)|答案(1)|浏览(48)

#8052中讨论

原帖由hodge-jai于2024年7月21日发布

你好,

我在尝试使用HuggingFace上的专用推理端点时遇到了一个问题。我不确定错误出在哪里,因为我确实确认将文档列表传递给了组件。嵌入器初始化得很好,但当我运行它时,我收到了一个400 Bad Request错误。

document_embedder = HuggingFaceAPIDocumentEmbedder(
    api_type="inference_endpoints",
    api_params={"url": "<my_dedicated_endpoint"},
    token=Secret.from_token(HF_TOKEN),
    batch_size=32
)
documents = [Document(content="My name is Wolfgang and I live in Berlin"),
             Document(content="I saw a black horse running"),
             Document(content="Germany has many big cities")]
document_embedder.run(documents=documents)

返回

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/ragstackapp/fast_api/IndexingPipeline.py", line 130, in <module>
    pool.map(index_html_files, chunks)
  File "/usr/lib/python3.10/multiprocessing/pool.py", line 367, in map
    return self._map_async(func, iterable, mapstar, chunksize).get()
  File "/usr/lib/python3.10/multiprocessing/pool.py", line 774, in get
    raise self._value
huggingface_hub.utils._errors.BadRequestError:  (Request ID: HOp5U9)

Bad request:
list indices must be integers or slices, not str

不知道这是否是Haystack或HuggingFace的问题,所以如果有人能提供指导,我会非常感激!

t5zmwmid

t5zmwmid1#

你好,@hodge-jai。我尝试了我们文档页面上的代码示例:https://docs.haystack.deepset.ai/docs/huggingfaceapidocumentembedder#using-free-serverless-inference-api,它对我有效。

from haystack.components.embedders import HuggingFaceAPIDocumentEmbedder
from haystack.utils import Secret
from haystack.dataclasses import Document

doc = Document(content="I love pizza!")

document_embedder = HuggingFaceAPIDocumentEmbedder(api_type="serverless_inference_api",
                                              api_params={"model": "BAAI/bge-small-en-v1.5"},
                                              token=Secret.from_token("<your-api-key>"))

result = document_embedder.run([doc])
print(result["documents"][0].embedding)

# [0.017020374536514282, -0.023255806416273117, ...]

(只是需要将doc_embedder重命名为document_embedder,为此我创建了一个问题 here )。
所以你描述的Bad Request错误似乎仅限于付费推理端点和 api_type="inference_endpoints" 。我会检查我们是否可以在下一个冲刺中进一步调查。这可能是HuggingFace方面的问题 https://github.com/huggingface/huggingface_hub

相关问题