# OpenAIChatBuilder

## Overview

OpenAiChatBuilder is a builder for configuring and creating OpenAI chat clients.\
Allows setting API key, model name, temperature, and memory token limits for the OpenAI model.

## Methods Summarized

| Type                                                                                                        | Name                                                                                     | Summary                                                                              |
| ----------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ |
| void                                                                                                        | [addSystemMessage(message)](#addsystemmessage-message)                                   | Adds a system message to the chat context.                                           |
| [OpenAiChatBuilder](https://docs.servoy.com/reference/servoyextensions/server-plugins/ai/openaichatbuilder) | [apiKey(key)](#apikey-key)                                                               | Sets the OpenAI API key.                                                             |
| [ChatClient](https://docs.servoy.com/reference/servoyextensions/server-plugins/ai/chatclient)               | [build()](#build)                                                                        | Builds and returns a ChatClient configured with the specified OpenAI model settings. |
| [ToolBuilder](https://docs.servoy.com/reference/servoyextensions/server-plugins/ai/toolbuilder)             | [createTool(toolFunction, name, description)](#createtool-toolfunction-name-description) | Creates a new ToolBuilder for defining a custom tool for the AI agent.               |
| [OpenAiChatBuilder](https://docs.servoy.com/reference/servoyextensions/server-plugins/ai/openaichatbuilder) | [maxMemoryTokens(tokens)](#maxmemorytokens-tokens)                                       | Sets the maximum number of memory tokens for chat history.                           |
| [OpenAiChatBuilder](https://docs.servoy.com/reference/servoyextensions/server-plugins/ai/openaichatbuilder) | [modelName(modelName)](#modelname-modelname)                                             | Sets the OpenAI model name.                                                          |
| [OpenAiChatBuilder](https://docs.servoy.com/reference/servoyextensions/server-plugins/ai/openaichatbuilder) | [temperature(temperature)](#temperature-temperature)                                     | Sets the temperature for the OpenAI model.                                           |
| void                                                                                                        | [useBuiltInTools(useBuiltInTools)](#usebuiltintools-usebuiltintools)                     | Injects the built-in Servoy tools (such as user info) into the AI agent.             |

## Methods Detailed

### addSystemMessage(message)

Adds a system message to the chat context.\
This can be a message how the model must behave for this chat session.

**Parameters**

* [String](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/string) **message** The system message to add.

**Returns:** voidThis builder instance for chaining.

### apiKey(key)

Sets the OpenAI API key.

**Parameters**

* [String](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/string) **key** The API key.

**Returns:** [OpenAiChatBuilder](https://docs.servoy.com/reference/servoyextensions/server-plugins/ai/openaichatbuilder) This builder instance.

### build()

Builds and returns a ChatClient configured with the specified OpenAI model settings.

**Returns:** [ChatClient](https://docs.servoy.com/reference/servoyextensions/server-plugins/ai/chatclient) A configured ChatClient instance.

### createTool(toolFunction, name, description)

Creates a new ToolBuilder for defining a custom tool for the AI agent.

**Parameters**

* [Function](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/function) **toolFunction** the function representing the tool's logic
* [String](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/string) **name** the name of the tool
* [String](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/string) **description** the description of the tool

**Returns:** [ToolBuilder](https://docs.servoy.com/reference/servoyextensions/server-plugins/ai/toolbuilder) a ToolBuilder instance for further configuration

### maxMemoryTokens(tokens)

Sets the maximum number of memory tokens for chat history.

**Parameters**

* [Number](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/number) **tokens** The maximum number of tokens.

**Returns:** [OpenAiChatBuilder](https://docs.servoy.com/reference/servoyextensions/server-plugins/ai/openaichatbuilder) This builder instance.

### modelName(modelName)

Sets the OpenAI model name.

**Parameters**

* [String](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/string) **modelName** The model name.

**Returns:** [OpenAiChatBuilder](https://docs.servoy.com/reference/servoyextensions/server-plugins/ai/openaichatbuilder) This builder instance.

### temperature(temperature)

Sets the temperature for the OpenAI model.

**Parameters**

* [Number](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/number) **temperature** The temperature value.

**Returns:** [OpenAiChatBuilder](https://docs.servoy.com/reference/servoyextensions/server-plugins/ai/openaichatbuilder) This builder instance.

### useBuiltInTools(useBuiltInTools)

Injects the built-in Servoy tools (such as user info) into the AI agent.

**Parameters**

* [Boolean](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/boolean) **useBuiltInTools** Boolean to indicate whether to use built-in tools.

**Returns:** voidThis builder instance for chaining.

***
