in pyrit/prompt_target/text_target.py [0:0]
def import_scores_from_csv(self, csv_file_path: Path) -> list[PromptRequestPiece]:
request_responses = []
with open(csv_file_path, newline="") as csvfile:
csvreader = csv.DictReader(csvfile)
for row in csvreader:
sequence_str = row.get("sequence", None)
labels_str = row.get("labels", None)
labels = json.loads(labels_str) if labels_str else None
request_response = PromptRequestPiece(
role=row["role"], # type: ignore
original_value=row["value"],
original_value_data_type=row.get["data_type", None], # type: ignore
conversation_id=row.get("conversation_id", None),
sequence=int(sequence_str) if sequence_str else None,
labels=labels,
response_error=row.get("response_error", None), # type: ignore
prompt_target_identifier=self.get_identifier(),
)
request_responses.append(request_response)
# This is post validation, so the prompt_request_pieces should be okay and normalized
self._memory.add_request_pieces_to_memory(request_pieces=request_responses)
return request_responses