Skip to content

ema / ema / OpenAIClient

Class: OpenAIClient

Defined in: llm/openai_client.ts:21

LLM client using OpenAI's protocol.

This client uses the official OpenAI SDK and supports:

  • Reasoning content (via reasoning_split=True)
  • Tool calling
  • Retry logic

Extends

  • LLMClient

Constructors

Constructor

ts
new OpenAIClient(
   apiKey, 
   apiBase, 
   model, 
   retryConfig?, 
   proxyUrl?): OpenAIClient;

Defined in: llm/openai_client.ts:24

Parameters

apiKey

string

API key for authentication

apiBase

string

Base URL for the API

model

string

Model name to use

retryConfig?

RetryConfig

Optional retry configuration

proxyUrl?

string

Optional proxy URL

Returns

OpenAIClient

Overrides

ts
LLMClient.constructor

Properties

apiBase

ts
protected readonly apiBase: string;

Defined in: llm/base.ts:30

Base URL for the API

Inherited from

ts
LLMClient.apiBase

apiKey

ts
protected readonly apiKey: string;

Defined in: llm/base.ts:26

API key for authentication

Inherited from

ts
LLMClient.apiKey

model

ts
protected readonly model: string;

Defined in: llm/base.ts:34

Model name to use

Inherited from

ts
LLMClient.model

retryCallback

ts
retryCallback: (exception, attempt) => void | undefined = undefined;

Defined in: llm/base.ts:19

Inherited from

ts
LLMClient.retryCallback

retryConfig

ts
protected readonly retryConfig: RetryConfig;

Defined in: llm/base.ts:38

Optional retry configuration

Inherited from

ts
LLMClient.retryConfig

Methods

_convertMessages()

ts
_convertMessages(messages): [string | undefined, Record<string, unknown>[]];

Defined in: llm/openai_client.ts:170

Converts internal messages to OpenAI format. Note: OpenAI includes system message in the messages array

Parameters

messages

Message[]

List of internal Message objects

Returns

[string | undefined, Record<string, unknown>[]]

Tuple of (system_message, api_messages)

Overrides

ts
LLMClient._convertMessages

_makeApiRequest()

ts
_makeApiRequest(apiMessages, tools?): Promise<any>;

Defined in: llm/openai_client.ts:71

Executes API request (core method that can be retried).

Parameters

apiMessages

Record<string, unknown>[]

List of messages in OpenAI format

tools?

any[]

Optional list of tools

Returns

Promise<any>

OpenAI ChatCompletion response (full response including usage)


_parseResponse()

ts
_parseResponse(response): LLMResponse;

Defined in: llm/openai_client.ts:124

Parses OpenAI response into LLMResponse.

Parameters

response

any

OpenAI ChatCompletion response (full response object)

Returns

LLMResponse

LLMResponse object


_prepareRequest()

ts
_prepareRequest(messages, tools?): object;

Defined in: llm/openai_client.ts:230

Prepares the request for OpenAI API.

Parameters

messages

Message[]

List of conversation messages

tools?

any[]

Optional list of available tools

Returns

object

Dictionary containing request parameters

apiMessages
ts
apiMessages: Record<string, unknown>[];
tools?
ts
optional tools: any[];

Overrides

ts
LLMClient._prepareRequest

generate()

ts
generate(messages, tools?): Promise<LLMResponse>;

Defined in: llm/openai_client.ts:249

Generates response from OpenAI LLM.

Parameters

messages

Message[]

List of conversation messages

tools?

any[]

Optional list of available tools

Returns

Promise<LLMResponse>

LLMResponse containing the generated content

Overrides

ts
LLMClient.generate