Skip to content

Class peagen.plugins.mutators.llm_prog_rewrite.LlmProgRewrite

peagen.plugins.mutators.llm_prog_rewrite.LlmProgRewrite

LlmProgRewrite(agent_env=None)

Mutator that rewrites code using a language model.

Source code in peagen/plugins/mutators/llm_prog_rewrite.py
12
13
def __init__(self, agent_env: Dict[str, str] | None = None) -> None:
    self.agent_env = agent_env or {}

agent_env instance-attribute

agent_env = agent_env or {}

mutate

mutate(
    prompt,
    *,
    context=None,
    parent_program=None,
    candidates=None,
)
Source code in peagen/plugins/mutators/llm_prog_rewrite.py
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
def mutate(
    self,
    prompt: str,
    *,
    context: Optional[Dict[str, Any]] = None,
    parent_program: Optional[Program] = None,
    candidates: Optional[Iterable[str]] = None,
) -> str:
    ctx = dict(context or {})
    if parent_program is not None:
        ctx.setdefault("parent", self._parent_src(parent_program))
    if candidates is not None:
        ctx.setdefault("candidates", "\n".join(candidates))
    try:
        rendered = prompt.format(**ctx)
    except Exception:
        rendered = prompt
    return call_external_agent(rendered, self.agent_env)