File size: 2,346 Bytes
8a142a6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# --- Dummy Model Summaries ---
# Define functions that simulate model summary generation
dummy_models = {
    "Model Alpha": lambda context, question, answerable: f"Alpha Summary: Based on the context for '{question[:20]}...', it appears the question is {'answerable' if answerable else 'unanswerable'}.",
    "Model Beta": lambda context, question, answerable: f"Beta Summary: Regarding '{question[:20]}...', the provided documents {'allow' if answerable else 'do not allow'} for a conclusive answer based on the text.",
    "Model Gamma": lambda context, question, answerable: f"Gamma Summary: For the question '{question[:20]}...', I {'can' if answerable else 'cannot'} provide a specific answer from the given text snippets.",
    "Model Delta (Refusal Specialist)": lambda context, question, answerable: f"Delta Summary: The context for '{question[:20]}...' is {'sufficient' if answerable else 'insufficient'} to formulate a direct response. Therefore, I must refuse."
}

# List of model names for easy access
model_names = list(dummy_models.keys())

def generate_summaries(example, model_a_name, model_b_name):
    """
    Generates summaries for the given example using the assigned models.
    """
    # Create a plain text version of the contexts for the models
    context_text = ""
    if "contexts" in example and example["contexts"]:
        context_parts = []
        for ctx in example["contexts"]:
            if isinstance(ctx, dict) and "content" in ctx:
                context_parts.append(ctx["content"])
        context_text = "\n---\n".join(context_parts)
    else:
        # Fallback to full contexts if highlighted contexts are not available
        context_parts = []
        if "full_contexts" in example:
            for ctx in example["full_contexts"]:
                if isinstance(ctx, dict) and "content" in ctx:
                    context_parts.append(ctx["content"])
            context_text = "\n---\n".join(context_parts)
    
    # Pass 'Answerable' status to models (they might use it)
    answerable = example.get("Answerable", True)
    question = example.get("question", "")

    # Call the dummy model functions
    summary_a = dummy_models[model_a_name](context_text, question, answerable)
    summary_b = dummy_models[model_b_name](context_text, question, answerable)
    return summary_a, summary_b