From 4a10a80ba0cc4d962da9588b3197ddc61287571d Mon Sep 17 00:00:00 2001 From: Richie Cahill Date: Fri, 10 Apr 2026 18:57:21 -0400 Subject: [PATCH] conveted to summarization_prompts --- python/prompt_bench/compresion_test.py | 39 ++------------------------ 1 file changed, 3 insertions(+), 36 deletions(-) diff --git a/python/prompt_bench/compresion_test.py b/python/prompt_bench/compresion_test.py index b6d4b4e..8d1b40f 100644 --- a/python/prompt_bench/compresion_test.py +++ b/python/prompt_bench/compresion_test.py @@ -24,6 +24,7 @@ import httpx import typer from python.prompt_bench.bill_token_compression import compress_bill_text +from python.prompt_bench.summarization_prompts import SUMMARIZATION_SYSTEM_PROMPT, SUMMARIZATION_USER_TEMPLATE logger = logging.getLogger(__name__) @@ -32,40 +33,6 @@ DEFAULT_MODEL = "gpt-5.4-mini" DEFAULT_COUNT = 100 SEED = 42 -SYSTEM_PROMPT = """You are a legislative analyst extracting policy substance from Congressional bill text. - -Your job is to compress a bill into a dense, neutral structured summary that captures every distinct policy action — including secondary effects that might be buried in subsections. - -EXTRACTION RULES: -- IGNORE: whereas clauses, congressional findings that are purely political statements, recitals, preambles, citations of existing law by number alone, and procedural boilerplate. -- FOCUS ON: operative verbs — what the bill SHALL do, PROHIBIT, REQUIRE, AUTHORIZE, AMEND, APPROPRIATE, or ESTABLISH. -- SURFACE ALL THREADS: If the bill touches multiple policy areas, list each thread separately. Do not collapse them. -- BE CONCRETE: Name the affected population, the mechanism, and the direction (expands/restricts/maintains). -- STAY NEUTRAL: No political framing. Describe what the text does, not what its sponsors claim it does. - -OUTPUT FORMAT — plain structured text, not JSON: - -OPERATIVE ACTIONS: -[Numbered list of what the bill actually does, one action per line, max 20 words each] - -AFFECTED POPULATIONS: -[Who gains something, who loses something, or whose behavior is regulated] - -MECHANISMS: -[How it works: new funding, mandate, prohibition, amendment to existing statute, grant program, study commission, etc.] - -POLICY THREADS: -[List each distinct policy domain this bill touches, even minor ones. Use plain language, not domain codes.] - -SYMBOLIC/PROCEDURAL ONLY: -[Yes or No — is this bill primarily a resolution, designation, or awareness declaration with no operative effect?] - -LENGTH TARGET: 150-250 words total. Be ruthless about cutting. Density over completeness.""" - -USER_TEMPLATE = """Summarize the following Congressional bill according to your instructions. - -BILL TEXT: -{text_content}""" def load_bills(csv_path: Path, count: int) -> list[tuple[str, str]]: @@ -90,8 +57,8 @@ def load_bills(csv_path: Path, count: int) -> list[tuple[str, str]]: def build_messages(bill_text: str) -> list[dict]: """Return the system + user message pair for a bill.""" return [ - {"role": "system", "content": SYSTEM_PROMPT}, - {"role": "user", "content": USER_TEMPLATE.format(text_content=bill_text)}, + {"role": "system", "content": SUMMARIZATION_SYSTEM_PROMPT}, + {"role": "user", "content": SUMMARIZATION_USER_TEMPLATE.format(text_content=bill_text)}, ]