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

Service options

model
string
default: "gpt-4o-mini"

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

{
  "service_options": {
    "openai": {
      "model": "gpt-4o"
    }
  }
}

Configuration options

model
string
default: "gpt-4o-mini"

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

{
  "name": "model",
  "value": "gpt-4o"
}
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"

This feature is in Beta. 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

The maximum number of tokens that can be generated in the completion.

{
  "name": "max_tokens",
  "value": 4096
}
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.

We generally recommend altering this or top_p but not both.

{
  "name": "temperature",
  "value": 0.8
}
top_p
float
default: "1.0"

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.

We generally recommend altering this or temperature but not both.

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

A dictionary that can contain any additional parameters supported by OpenAI that you want to pass to the API. Refer to the OpenAI 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

OpenAI’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. You can call the 'get_weather' function to get weather information. Start by asking me for my location. Then, use 'get_weather' to give me 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.",
          },
        ],
      },
      { name: "run_on_config", value: true },
      {
        name: "tools",
        value: [
          {
            type: "function",
            function: {
              name: "get_current_weather",
              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 city and state, e.g. San Francisco, CA",
                  },
                  format: {
                    type: "string",
                    enum: ["celsius", "fahrenheit"],
                    description:
                      "The temperature unit to use. Infer this from the users location.",
                  },
                },
                required: ["location", "format"],
              },
            },
          },
        ],
      },
    ],
  },
];

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