Skip to content

convert

Contains functions to convert API responses to text generation parameters.

convert_text_job_pop_response_to_parameters

convert_text_job_pop_response_to_parameters(
    api_response: TextGenerateJobPopResponse,
) -> tuple[
    KoboldAITextGenerationParameters,
    AIHordeDispatchParameters,
]

Convert a text API response to the parameters for a generation.

Source code in horde_sdk/worker/dispatch/ai_horde/text/convert.py
def convert_text_job_pop_response_to_parameters(
    api_response: TextGenerateJobPopResponse,
) -> tuple[KoboldAITextGenerationParameters, AIHordeDispatchParameters]:
    """Convert a text API response to the parameters for a generation."""
    dispatch_parameters = AIHordeDispatchParameters(
        generation_ids=[str(id_) for id_ in api_response.ids],
        dispatch_source=KNOWN_DISPATCH_SOURCE.AI_HORDE_API_OFFICIAL,
        ttl=api_response.ttl,
        inference_backend=KNOWN_INFERENCE_BACKEND.IN_MODEL_NAME,
        requested_backend_constraints=REQUESTED_BACKEND_CONSTRAINTS.ANY,
        no_valid_request_found_reasons=api_response.skipped,
    )

    generation_parameters = KoboldAITextGenerationParameters(
        result_ids=[str(id_) for id_ in api_response.ids],
        base_params=BasicTextGenerationParameters(
            model=api_response.model,
            prompt=api_response.payload.prompt,
            soft_prompt=api_response.softprompt,
            max_context_length=api_response.payload.max_context_length,
            max_length=api_response.payload.max_length,
            stop_sequence=api_response.payload.stop_sequence,
            temperature=api_response.payload.temperature,
            dynamic_temp_exponent=api_response.payload.dynatemp_exponent,
            dynamic_temp_range=api_response.payload.dynatemp_range,
            tfs=api_response.payload.tfs,
            typical=api_response.payload.typical,
            sampler_order=api_response.payload.sampler_order,
            smoothing_factor=api_response.payload.smoothing_factor,
            top_a=api_response.payload.top_a,
            top_k=api_response.payload.top_k,
            top_p=api_response.payload.top_p,
            min_p=api_response.payload.min_p,
            rep_pen=api_response.payload.rep_pen,
            rep_pen_range=api_response.payload.rep_pen_range,
            rep_pen_slope=api_response.payload.rep_pen_slope,
        ),
        format_params=BasicTextGenerationFormatParameters(
            frmtadsnsp=api_response.payload.frmtadsnsp,
            frmtrmblln=api_response.payload.frmtrmblln,
            frmtrmspch=api_response.payload.frmtrmspch,
            frmttriminc=api_response.payload.frmttriminc,
            singleline=api_response.payload.singleline,
        ),
        use_default_bad_words_ids=api_response.payload.use_default_badwordsids,
    )

    return generation_parameters, dispatch_parameters