Class Diagram¶
The diagram below shows the main classes of Propaganda Pipeline and their
relationships. The 23 TechniqueRunner subclasses are grouped for clarity.
classDiagram
direction TB
class Configuracion {
+model_name : str
+api_key : str
+adapter : Any
+setup()
}
class TechniqueRunner {
<<abstract>>
+name : str
+signature : Type[Signature]
+run(texto) Dict
+postprocess(salida_obj) Dict
}
class Detectors {
<<23 subclasses>>
RepetitionRunner
ExaggerationRunner
ObfuscationRunner
LoadedLanguageRunner
WhataboutismRunner
KairosRunner
ConversationKillerRunner
SlipperyRunner
SloganRunner
AppealToValuesRunner
RedHerringRunner
StrawmanRunner
FearPrejudiceRunner
AuthorityRunner
BandwagonRunner
CastingDoubtRunner
FlagWavingRunner
SmearPoisoningRunner
TuQuoqueRunner
GuiltByAssociationRunner
NameCallingRunner
CausalOversimplificationRunner
FalseDilemmaRunner
}
class Analisis {
+runners : List[TechniqueRunner]
+run(texto) List[Dict]
}
class ConsistencyModule {
+trials : int
+threshold : float
+run(texto) List[Dict]
}
class JudgeModule {
<<dspy.Module>>
+forward(question, candidates, rubric) JudgeOutputNormalized
}
class SynthesizeModule {
<<dspy.Module>>
+forward(question, topk) SynthesisOutputNormalized
}
class SelectJudgeCandidatesModule {
<<dspy.Module>>
+forward(final_answer, candidates) SelectionOutputNormalized
}
TechniqueRunner <|-- Detectors
Analisis "1" --> "1..*" TechniqueRunner : instantiates
ConsistencyModule --> Analisis : wraps
JudgeModule ..> SynthesizeModule : feeds topk
SynthesizeModule ..> SelectJudgeCandidatesModule : feeds final_answer
Configuracion ..> Analisis : configures DSPy