Sample code for 30+ languages & platforms
PureBasic

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-flash-preview")

    ; 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