class_docstr: Base data class containing some data to be queried.
  Can contain text snippets, tables, and file paths to images or audios.
  Documents can be sorted by score and saved to/from dictionary and JSON.
  
  :param id: Unique identifier for the document. When not set, it's generated based on the Document fields' values.
  :param content: Text of the document, if the document contains text.
  :param dataframe: Pandas dataframe with the document's content, if the document contains tabular data.
  :param blob: Binary data associated with the document, if the document has any binary data associated with it.
  :param meta: Additional custom metadata for the document. Must be JSON-serializable.
  :param score: Score of the document. Used for ranking, usually assigned by retrievers.
  :param embedding: Vector representation of the document.
class_docstr_tok: ["Base","data","class","containing","some","data","to","be","queried",".","Can","contain","text","snippets",",","tables",",","and","file","paths","to","images","or","audios",".","Documents","can","be","sorted","by","score","and","saved","to\/from","dictionary","and","JSON",".",":","param","id",":","Unique","identifier","for","the","document",".","When","not","set",",","it","'s","generated","based","on","the","Document","fields","'","values",".",":","param","content",":","Text","of","the","document",",","if","the","document","contains","text",".",":","param","dataframe",":","Pandas","dataframe","with","the","document","'s","content",",","if","the","document","contains","tabular","data",".",":","param","blob",":","Binary","data","associated","with","the","document",",","if","the","document","has","any","binary","data","associated","with","it",".",":","param","meta",":","Additional","custom","metadata","for","the","document",".","Must","be","JSON-serializable",".",":","param","score",":","Score","of","the","document",".","Used","for","ranking",",","usually","assigned","by","retrievers",".",":","param","embedding",":","Vector","representation","of","the","document","."]
code: def __repr__(self):
      fields = []
      if self.content is not None:
          fields.append(
              f"content: '{self.content}'"
              if len(self.content) < 100
              else f"content: '{self.content[:100]}...'"
          )
      if self.dataframe is not None:
          fields.append(f"dataframe: {self.dataframe.shape}")
      if self.blob is not None:
          fields.append(f"blob: {len(self.blob.data)} bytes")
      if len(self.meta) > 0:
          fields.append(f"meta: {self.meta}")
      if self.score is not None:
          fields.append(f"score: {self.score}")
      if self.embedding is not None:
          fields.append(
              f"embedding: vector of size {len(self.embedding)}"
          )
      fields_str = ", ".join(fields)
      return f"{self.__class__.__name__}(id={self.id}, {fields_str})"
  
file_path: haystack/haystack/dataclasses/document.py
imports: import io
  import hashlib
  import logging
  from dataclasses import asdict, dataclass, field, fields
  from typing import Any, Dict, List, Optional
  import numpy
  import pandas
  from haystack.dataclasses.byte_stream import ByteStream
label_desc: Use image node_id 1 for calling the Document obj's underlying member method code with example usage: obj.__repr__() and returns: self, str, self, str, fields_str, str