class_docstr: Schema for the records of a `FeedbackDataset`.
  
  Args:
      fields: Fields that match the `FeedbackDataset` defined fields. So this attribute
          contains the actual information shown in the UI for each record, being the
          record itself.
      metadata: Metadata to be included to enrich the information for a given record.
          Note that the metadata is not shown in the UI so you'll just be able to see
          that programmatically after pulling the records. Defaults to None.
      responses: Responses given by either the current user, or one or a collection of
          users that must exist in Argilla. Each response corresponds to one of the
          `FeedbackDataset` questions, so the values should match the question type.
          Defaults to None.
      suggestions: A list of `SuggestionSchema` that contains the suggestions
          for the current record. Every suggestion is linked to only one
          question. Defaults to an empty list.
      external_id: The external ID of the record, which means that the user can
          specify this ID to identify the record no matter what the Argilla ID is.
          Defaults to None.
  
  Examples:
      >>> from argilla.client.feedback.schemas.records import FeedbackRecord, ResponseSchema, SuggestionSchema, ValueSchema
      >>> FeedbackRecord(
      ...     fields={"text": "This is the first record", "label": "positive"},
      ...     metadata={"first": True, "nested": {"more": "stuff"}},
      ...     responses=[ # optional
      ...         ResponseSchema(
      ...             user_id="user-1",
      ...             values={
      ...                 "question-1": ValueSchema(value="This is the first answer"),
      ...                 "question-2": ValueSchema(value=5),
      ...             },
      ...             status="submitted",
      ...         ),
      ...     ],
      ...     suggestions=[ # optional
      ...         SuggestionSchema(
      ...            question_name="question-1",
      ...            type="model",
      ...            score=0.9,
      ...            value="This is the first suggestion",
      ...            agent="agent-1",
      ...         ),
      ...     external_id="entry-1",
      ... )
class_docstr_tok: ["Schema","for","the","records","of","a","`","FeedbackDataset","`",".","Args",":","fields",":","Fields","that","match","the","`","FeedbackDataset","`","defined","fields",".","So","this","attribute","contains","the","actual","information","shown","in","the","UI","for","each","record",",","being","the","record","itself",".","metadata",":","Metadata","to","be","included","to","enrich","the","information","for","a","given","record",".","Note","that","the","metadata","is","not","shown","in","the","UI","so","you","'ll","just","be","able","to","see","that","programmatically","after","pulling","the","records",".","Defaults","to","None",".","responses",":","Responses","given","by","either","the","current","user",",","or","one","or","a","collection","of","users","that","must","exist","in","Argilla",".","Each","response","corresponds","to","one","of","the","`","FeedbackDataset","`","questions",",","so","the","values","should","match","the","question","type",".","Defaults","to","None",".","suggestions",":","A","list","of","`","SuggestionSchema","`","that","contains","the","suggestions","for","the","current","record",".","Every","suggestion","is","linked","to","only","one","question",".","Defaults","to","an","empty","list",".","external_id",":","The","external","ID","of","the","record",",","which","means","that","the","user","can","specify","this","ID","to","identify","the","record","no","matter","what","the","Argilla","ID","is",".","Defaults","to","None",".","Examples",":",">",">",">","from","argilla.client.feedback.schemas.records","import","FeedbackRecord",",","ResponseSchema",",","SuggestionSchema",",","ValueSchema",">",">",">","FeedbackRecord","(","...","fields=","{","``","text","''",":","``","This","is","the","first","record","''",",","``","label","''",":","``","positive","''","}",",","...","metadata=","{","``","first","''",":","True",",","``","nested","''",":","{","``","more","''",":","``","stuff","''","}","}",",","...","responses=","[","#","optional","...","ResponseSchema","(","...","user_id=","''","user-1","''",",","...","values=","{","...","``","question-1","''",":","ValueSchema","(","value=","''","This","is","the","first","answer","''",")",",","...","``","question-2","''",":","ValueSchema","(","value=5",")",",","...","}",",","...","status=","''","submitted","''",",","...",")",",","...","]",",","...","suggestions=","[","#","optional","...","SuggestionSchema","(","...","question_name=","''","question-1","''",",","...","type=","''","model","''",",","...","score=0.9",",","...","value=","''","This","is","the","first","suggestion","''",",","...","agent=","''","agent-1","''",",","...",")",",","...","external_id=","''","entry-1","''",",","...",")"]
code: def update(
      self,
      suggestions: Union[
          SuggestionSchema,
          List[SuggestionSchema],
          Dict[str, Any],
          List[Dict[str, Any]],
      ],
  ) -> None:
      if isinstance(suggestions, (dict, SuggestionSchema)):
          suggestions = [suggestions]
      parsed_suggestions = []
      for suggestion in suggestions:
          if not isinstance(suggestion, SuggestionSchema):
              suggestion = SuggestionSchema(**suggestion)
          parsed_suggestions.append(suggestion)
  
      suggestions_dict = {
          suggestion.question_name: suggestion
          for suggestion in self.suggestions
      }
      for suggestion in parsed_suggestions:
          if suggestion.question_name in suggestions_dict:
              warnings.warn(
                  f"A suggestion for question `{suggestion.question_name}` has already"
                  " been provided, so the provided suggestion will overwrite it.",
                  category=UserWarning,
              )
          suggestions_dict[suggestion.question_name] = suggestion
  
      self.__dict__["suggestions"] = tuple(suggestions_dict.values())
  
imports: import warnings
  from typing import TYPE_CHECKING, Any, Dict, List, Literal, Optional, Tuple, Union
  from uuid import UUID
  from argilla.client.feedback.schemas.enums import RecordSortField, ResponseStatus, SortOrder
  from argilla.pydantic_v1 import BaseModel, Extra, Field, PrivateAttr, StrictInt, StrictStr, conint, validator
label_desc: Use image node_id 3 for calling the FeedbackRecord obj's underlying member method code with example usage: obj.update(suggestions) without return types