TypeError: __init__() отсутствует 1 обязательный позиционный аргумент: 'content'
Я использую Haystack для поискового запроса, когда пишу документы в хранилище документов, к сожалению, эта ошибка возникла у меня. Вот мой код:
if __name__ == "__main__":
document_store = ElasticsearchDocumentStore(
host='localhost',
username='', password='',
index='aurelius'
)
df = pd.read_csv('news.csv')
print(df.columns)
data_json = [{
'text': text,
'meta': {
'source': 'news'
}
} for text in df['Text'].values]
document_store.write_documents(data_json)
retriever_elastic = DensePassageRetriever(
document_store=document_store,
query_embedding_model='facebook/dpr-question_encoder-single-nq-base',
passage_embedding_model='facebook/dpr-ctx_encoder-single-nq-base',
embed_title=True
)
document_store.update_embeddings(retriever=retriever_elastic)
print(retriever_elastic.retrieve("german business confidence slides german business confidence fell in february knocking hopes of a speedy recovery in europe s largest economy. "))
1 ответ
На основе ответа @UninformedUser.
Я предполагаю, что это
document.store.write_documents(data_json)
который выдает исключение. Поскольку формат аргумента был изменен с
{ 'text': str, 'meta': obj}
к
{'content': str, 'meta': obj}
.
Таким образом, в основном вам нужно только исправить часть понимания списка вашего кода:
data_json = [{
'content': text,
'meta': {
'source': 'news'
}
} for text in df['Text'].values]
document_store.write_documents(data_json)