BUG: LLMGenericTextConverter identifier changes between processes for set-valued template parameters
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
- 75/100
Direzione di ricerca
Inizia da _describe_template_value in llm_generic_text_converter.py, intorno alla riga 67, dove i valori set e frozenset sono trattati come liste. Esegui lo script di riproduzione due volte, con PYTHONHASHSEED impostato a 1 e a 2, e confronta l'output dell'identificatore. È completato quando l'identificatore coincide tra i seed e il rendering dei template non cambia, come chiede l'issue.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Describe the bug
_describe_template_value handles set and frozenset like a list (llm_generic_text_converter.py:67), so the identifier follows set iteration order. That order depends on PYTHONHASHSEED, so the same configuration gets a different hash in each process.
Steps/Code to Reproduce
Run on main at 5fb4fb977, once with PYTHONHASHSEED=1 and once with PYTHONHASHSEED=2.
import asyncio
from pyrit.converter import LLMGenericTextConverter
from pyrit.models import SeedPrompt
from pyrit.prompt_target import OpenAIChatTarget
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")
converter = LLMGenericTextConverter(
converter_target=target,
system_prompt_template=SeedPrompt(value="Use one of these tones: {{ tone }}", parameters=["tone"]),
tone={"alpha", "beta", "gamma", "delta", "epsilon", "zeta"},
)
print(converter.get_identifier().unique_name)
asyncio.run(main())
Expected Results
The same identifier in both runs.
Actual Results
PYTHONHASHSEED=1 LLMGenericTextConverter::34b80fa1
PYTHONHASHSEED=2 LLMGenericTextConverter::9136bd54
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 rendered prompt moves too when a template prints the set: {{ tone }} gives a different order under each seed. Sorting inside _describe_template_value fixes the identifier. Rendering is a separate call: leave it, or reject sets as template parameters.
- Lingua principale
- Python
- Stelle
- 4.7k
- Fork
- 1k
- Merge medio
- 2g 3h
- PR unite (30g)
- 450
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: triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/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 1 giorno fa. 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 2 giorni 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
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
yt-project/yt#5624 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
NousResearch/hermes-agent#148376 ·
I maintainer di solito rispondono entro 1 giorno
-
Analysis
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
SACGF/variantgrid#2615 ·
I maintainer di solito rispondono entro 1 giorno