• Supported service: llm
  • Key: grok
  • Integrated: No. See BYO Keys for more details.

Service options

model
string
default: "grok-beta"

The model that will complete your prompt. See the available Grok models here.

{
  "service_options": {
    "grok": {
      "model": "grok-beta"
    }
  }
}

Configuration options

model
string
default: "grok-beta"

The model that will complete your prompt. See the available Grok models here.

{
  "name": "model",
  "value": "grok-beta"
}
frequency_penalty
float
default: "0"

Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model’s likelihood to repeat the same line verbatim.

{
  "name": "frequency_penalty",
  "value": 1.1
}
presence_penalty
float
default: "0"

Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model’s likelihood to talk about new topics.

{
  "name": "presence_penalty",
  "value": 0.9
}
seed
integer
default: "0"

If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed, and you should refer to the system_fingerprint response parameter to monitor changes in the backend.

{
  "name": "seed",
  "value": 42
}
max_tokens
integer
default: "4096"

The maximum number of tokens that can be generated in the chat completion. This value can be used to control costs for text generated via API.

{
  "name": "max_tokens",
  "value": 2048
}
temperature
float
default: "1.0"

What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.

{
  "name": "temperature",
  "value": 0.9
}
top_p
float

An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. It is generally recommended to alter this or temperature but not both.

{
  "name": "top_p",
  "value": 0.5
}
extra
object

A dictionary that can contain any additional parameters supported by Grok that you want to pass to the API. Refer to the Grok reference docs for more information on each of these configuration options.

{
  "name": "extra",
  "value": {
    "temperature": 0.9,
    "max_tokens": 4096,
    "stop": ["Stop", "Goodbye", "See you later"]
  }
}

Function Calling

Grok’s function calling documentation is located here.

export const defaultConfig = [
  {
    service: "llm",
    options: [
      {
        name: "initial_messages",
        value: [
          {
            role: "system",
            content:
              "You are a TV weatherman named Dallas Storms. Your job is to present the weather to me. Start by asking me for my location. Then, use 'get_weather_current' to give me a forecast. If the user asks for a forecast, use 'get_weather_forecast' to give them a forecast. Then, answer any questions I have about the weather. Keep your introduction and responses very brief. You don't need to tell me if you're going to call a function; just do it directly. Keep your words to a minimum. When you're delivering the forecast, you can use more words and personality. Your responses will be converted to audio.",
          },
        ],
      },
      {
        name: "run_on_config",
        value: true,
      },
      {
        name: "tools",
        value: [
          {
            type: "function",
            function: {
              name: "get_weather_current",
              description:
                "Get the current weather for a location. This includes the conditions as well as the temperature.",
              parameters: {
                type: "object",
                properties: {
                  location: {
                    type: "string",
                    description:
                      "The user's location in the form 'city,state,country'. For example, if the user is in Austin, TX, use 'austin,tx,us'.",
                  },
                  format: {
                    type: "string",
                    enum: ["celsius", "fahrenheit"],
                    description:
                      "The temperature unit to use. Infer this from the user's location.",
                  },
                },
                required: ["location", "format"],
              },
            },
          },
        ],
      },
    ],
  },
];

For more info on how to use function calling in Daily Bots, take a look at the tutorial page.