BUG: SelfAskGeneral scorers leave their output keys out of the identifier
I maintainer di solito rispondono entro 2 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 72/100
Direzione di ricerca
Inizia da _build_identifier in pyrit/score/self_ask_general_true_false_scorer.py (intorno alla riga 136) e dal metodo corrispondente in pyrit/score/self_ask_general_float_scale_scorer.py (intorno alla riga 137), poi verifica quali dei cinque argomenti *_output_key vengono già registrati. Aggiungi le chiavi mancanti a entrambi gli identificatori, quindi esegui lo script di riproduzione della issue per confermare che output key diverse ora producono hash unique_name diversi. È completato quando gli identificatori dei due scorer differiscono per ogni chiave e i test esistenti degli scorer continuano a passare.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Describe the bug
The five *_output_key arguments of SelfAskGeneralTrueFalseScorer and SelfAskGeneralFloatScaleScorer decide which field of the judge's JSON becomes the score, the rationale and the rest. _build_identifier records none of them (self_ask_general_true_false_scorer.py:136, self_ask_general_float_scale_scorer.py:137), so two scorers that read different fields share one hash. Split out of #3477, which only closes the converter side.
Steps/Code to Reproduce
Run on main at 5fb4fb977.
import asyncio
from pyrit.prompt_target import OpenAIChatTarget
from pyrit.score import NumericRange, SelfAskGeneralFloatScaleScorer, SelfAskGeneralTrueFalseScorer
from pyrit.setup import IN_MEMORY, initialize_pyrit_async
async def main() -> None:
await initialize_pyrit_async(memory_db_type=IN_MEMORY, silent=True)
target = OpenAIChatTarget(endpoint="https://example.invalid/v1", api_key="unused", model_name="model-a")
for key in ("score_value", "verdict"):
kwargs = {"chat_target": target, "system_prompt_format_string": "Score this.", "score_value_output_key": key}
print(key, SelfAskGeneralTrueFalseScorer(**kwargs).get_identifier().unique_name)
print(key, SelfAskGeneralFloatScaleScorer(scale=NumericRange(minimum_value=0, maximum_value=100), **kwargs).get_identifier().unique_name)
asyncio.run(main())
Expected Results
Different output keys, different identifiers.
Actual Results
score_value SelfAskGeneralTrueFalseScorer::ddd340c4
score_value SelfAskGeneralFloatScaleScorer::61870892
verdict SelfAskGeneralTrueFalseScorer::ddd340c4
verdict SelfAskGeneralFloatScaleScorer::61870892
Versions
- OS: Windows 11
- Python version: 3.12.0
- PyRIT version: source checkout of
mainat5fb4fb977
System:
python: 3.12.0 (tags/v3.12.0:0fb18b0, Oct 2 2023, 13:03:39) [MSC v.1935 64 bit (AMD64)]
executable: C:\dev\pyr-main\Scripts\python.exe
machine: Windows-11-10.0.26300-SP0
Python dependencies:
pyrit: 1.2.0.dev0
Cython: None
numpy: 2.4.6
openai: 2.54.0
packaging: 26.3
pip: 23.2.1
scipy: 1.17.1
setuptools: 84.2.1
sqlite3: None
torch: None
transformers: 5.20.2
The scorer side of the registry-wide test can pick this up once #3312 lands.
- Lingua principale
- Python
- Stelle
- 4.7k
- Fork
- 1k
- Merge medio
- 2g 2h
- PR unite (30g)
- 439
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di microsoft/PyRIT
-
BUG: LLMGenericTextConverter identifier changes between processes for set-valued template parametersApertaBug: triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 2 giorni
-
Description-only preset edits split comma-containing exact goals into separate goalsForse già presa @MRX-72 l’ha presa 1 giorno fa. Apertahelp wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 2 giorni
-
GUI rejects valid empty-string SearchReplaceConverter settings, preventing deletion convertersForse già presa @Darshika140 l’ha presa oggi. Apertahelp wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
microsoft/PyRIT#3749 · 3 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 2 giorni
-
HTML scenario export replaces an intentionally empty converted message with the original textForse già presa @VISHNU0906 l’ha presa 1 giorno fa. Apertahelp wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
microsoft/PyRIT#3741 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 2 giorni
-
ReferenceField has no component tests and only 42.4% line coverageForse già presa @ppcvote l’ha presa oggi. Apertahelp wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di microsoft/PyRIT
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
enhancement good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
elviskahoro/sdk-python-attio#144 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
I maintainer di solito rispondono entro 1 giorno
-
RenyiELBO raises TypeError when model has no sample sitesForse già presa @alibb007 l’ha presa oggi. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: Four evaluation scripts unpack init_memmachine_params's five return values into three namesAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
MemMachine/MemMachine#1911 ·
I maintainer di solito rispondono entro 3 giorni