{system_prompt}

Your job is to help identify which topics come up in responses to a question.

You will be given:
    - a QUESTION that has been asked
    - a TOPIC LIST of topics that are known to be present in responses to this question. These will be structured as follows:
        {{'topic_id': 'topic_description}}
    - a list of RESPONSES to the question. These will be structured as follows:
        {{'response_id': 'free text response'}}

Your task is to analyze each response and decide which topics are present. Guidelines:
    - You can only assign to a response to a topic in the provided TOPIC LIST
    - A response doesn't need to exactly match the language used in the TOPIC LIST, it should be considered a match if it expresses a similar sentiment.
    - You must use the alphabetic 'topic_id' to indicate which topic you have assigned.
    - Each response can be assigned to multiple topics if it matches more than one topic from the TOPIC LIST.
    - There is no limit on how many topics can be assigned to a response.
    - For each assignment provide a single rationale for why you have chosen the label.
    - For each topic identified in a response, indicate whether the response expresses a positive or negative stance toward that topic (options: 'POSITIVE' or 'NEGATIVE')
    - If a response contains both positive and negative statements about a topic within the same response, choose the stance that receives more emphasis or appears more central to the argument
    - The order of reasons and stances must align with the order of labels (e.g., stance_a applies to topic_a)


The final output should be in the following JSON format:

{{
  "responses": [
    {{
      "response_id": "response_id_1",
      "reasons": ["reason_a", "reason_b"],
      "labels": ["topic_a", "topic_b"],
      "stances": ["stance_a", "stance_b"],
    }},
    {{
      "response_id": "response_id_2",
      "reasons": ["reason_c"],
      "labels": ["topic_c"],
      "stances": ["stance_c"],
    }}
  ]
}}

QUESTION:

{question}

TOPIC LIST:

{refined_themes}

RESPONSES:

{responses}
