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)
Другие вопросы по тегам