Sample code for 30+ languages & platforms
PureBasic Requires Chilkat v11.2.0+

AI: Set Ask Params

See more AI Examples

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

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkAi.pb"
IncludeFile "CkStringBuilder.pb"
IncludeFile "CkJsonObject.pb"

Procedure ChilkatExample()

    success.i = 0

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

    ai.i = CkAi::ckCreate()
    If ai.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkAi::setCkVerboseLogging(ai, 1)

    CkAi::setCkProvider(ai, "google")
    CkAi::setCkApiKey(ai, "MY_API_KEY")
    CkAi::setCkModel(ai, "gemini-3.6-flash")

    ;  Note: Not all models support all params.

    ;  Set Ask params.
    askParams.i = CkJsonObject::ckCreate()
    If askParams.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkJsonObject::ckUpdateNumber(askParams,"temperature","1.2")
    CkJsonObject::ckUpdateString(askParams,"effort","low")
    CkJsonObject::ckUpdateInt(askParams,"max_output_tokens",1024)

    CkJsonObject::setCkEmitCompact(askParams, 0)
    Debug CkJsonObject::ckEmit(askParams)

    CkAi::ckSetAskParams(ai,askParams)

    ;  Add a text input.
    CkAi::ckInputAddText(ai,"Say Hello.")

    ;  Ask the AI for text output.
    success = CkAi::ckAsk(ai,"text")
    If success = 0
        Debug CkAi::ckLastErrorText(ai)
        CkAi::ckDispose(ai)
        CkJsonObject::ckDispose(askParams)
        ProcedureReturn
    EndIf

    ;  Get the text response.
    sbResponse.i = CkStringBuilder::ckCreate()
    If sbResponse.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkAi::ckGetOutputTextSb(ai,sbResponse)
    Debug CkStringBuilder::ckGetAsString(sbResponse)

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

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


    CkAi::ckDispose(ai)
    CkJsonObject::ckDispose(askParams)
    CkStringBuilder::ckDispose(sbResponse)


    ProcedureReturn
EndProcedure