Skip to content

EvolveComplexity

EvolveComplexity is a Singleton task that increases the complexity of a given instruction.

Inputs

  • instruction (str): The original instruction to be evolved.

Outputs

  • evolved_instruction (str): The more complex version of the original instruction.
  • instruction (str): The original instruction.
  • model (str): The model used for generation.

Example

Increase the complexity of a given instruction. This example uses the GEMMA2_9B_FP16 model.

import os
import asyncio
from dria.factory import EvolveComplexity
from dria.client import Dria
from dria.models import Task, Model

dria = Dria(rpc_token=os.environ["DRIA_RPC_TOKEN"])


async def evaluate():
    evolve = EvolveComplexity()
    res = await dria.execute(
        Task(
            workflow=evolve.workflow(instruction="Write a short story about a cat.").model_dump(),
            models=[Model.GEMMA2_9B_FP16],
        ),
        timeout=45,
    )
    return evolve.parse_result(res)


def main():
    result = asyncio.run(evaluate())
    print(result)


if __name__ == "__main__":
    main()

Expected output

{
   "evolved_instruction":"Write a short story about a cat who, unbeknownst to its human family, communicates with other cats in a secret language that revolves around solving mysteries within the neighborhood. The cat must navigate between two worlds: the simple life of domesticity and the complex web of feline intrigue, all while trying not to reveal their dual life to their human companions.",
   "instruction":"Write a short story about a cat.",
   "model":"qwen2.5:32b-instruct-fp16"
}

References