Sample code for 30+ languages & platforms
C

AI: Set Ask Params

See more AI Examples

Demonstrates how to set the following Ask parameters: temperature, effort, and max_output_tokens.

Chilkat C Downloads

C
#include <C_CkAi.h>
#include <C_CkJsonObject.h>
#include <C_CkStringBuilder.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkAi ai;
    HCkJsonObject askParams;
    HCkStringBuilder sbResponse;

    success = FALSE;

    //  This example assumes the Chilkat API to have been previously unlocked.
    //  See Global Unlock Sample for sample code.

    ai = CkAi_Create();

    CkAi_putVerboseLogging(ai,TRUE);

    CkAi_putProvider(ai,"google");
    CkAi_putApiKey(ai,"MY_API_KEY");
    CkAi_putModel(ai,"gemini-3-flash-preview");

    //  Note: Not all models support all params.

    //  Set Ask params.
    askParams = CkJsonObject_Create();
    CkJsonObject_UpdateNumber(askParams,"temperature","1.2");
    CkJsonObject_UpdateString(askParams,"effort","low");
    CkJsonObject_UpdateInt(askParams,"max_output_tokens",1024);

    CkJsonObject_putEmitCompact(askParams,FALSE);
    printf("%s\n",CkJsonObject_emit(askParams));

    CkAi_SetAskParams(ai,askParams);

    //  Add a text input.
    CkAi_InputAddText(ai,"Say Hello.");

    //  Ask the AI for text output.
    success = CkAi_Ask(ai,"text");
    if (success == FALSE) {
        printf("%s\n",CkAi_lastErrorText(ai));
        CkAi_Dispose(ai);
        CkJsonObject_Dispose(askParams);
        return;
    }

    //  Get the text response.
    sbResponse = CkStringBuilder_Create();
    CkAi_GetOutputTextSb(ai,sbResponse);
    printf("%s\n",CkStringBuilder_getAsString(sbResponse));

    //  Sample output:
    //  Hello! How can I assist you today?

    //  -------------------------------------------------------------
    //  The response is in markdown format.
    //  Also see Markdown to HTML Conversion Examples.
    //  -------------------------------------------------------------


    CkAi_Dispose(ai);
    CkJsonObject_Dispose(askParams);
    CkStringBuilder_Dispose(sbResponse);

    }