Mutator that rewrites code using a language model.
Source code in peagen/plugins/mutators/llm_prog_rewrite.py
| 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)
|