Models Module#

class isek.models.base.Model(id: str, name: str | None = None, provider: str | None = None)[source]#

Bases: ABC

Ultra-simplified abstract base model class.

abstractmethod async ainvoke(messages: List[SimpleMessage], **kwargs) Any[source]#

Async invoke the model with messages.

Parameters:
  • messages -- List of messages to send to the model

  • **kwargs -- Additional arguments

Returns:

Raw response from the model

async aresponse(messages: List[SimpleMessage], **kwargs) SimpleModelResponse[source]#

Generate an async response from the model.

Parameters:
  • messages -- List of messages to send to the model

  • **kwargs -- Additional arguments

Returns:

Parsed model response

get_provider() str[source]#

Get the provider name.

abstractmethod invoke(messages: List[SimpleMessage], **kwargs) Any[source]#

Invoke the model with messages.

Parameters:
  • messages -- List of messages to send to the model

  • **kwargs -- Additional arguments

Returns:

Raw response from the model

abstractmethod parse_provider_response(response: Any, **kwargs) SimpleModelResponse[source]#

Parse the raw response from the model provider.

Parameters:
  • response -- Raw response from the model provider

  • **kwargs -- Additional arguments

Returns:

Parsed model response

response(messages: List[SimpleMessage], **kwargs) SimpleModelResponse[source]#

Generate a response from the model.

Parameters:
  • messages -- List of messages to send to the model

  • **kwargs -- Additional arguments including: - tools: List of tool schemas for the model - toolkits: List of actual toolkits for execution

Returns:

Parsed model response

to_dict() Dict[str, Any][source]#

Convert model to dictionary.

class isek.models.base.SimpleMessage(role: str, content: str | None = None, name: str | None = None, tool_call_id: str | None = None, tool_calls: list | None = None)[source]#

Bases: object

Ultra-simplified message model.

content: str | None = None#
name: str | None = None#
role: str#
to_dict() Dict[str, Any][source]#
tool_call_id: str | None = None#
tool_calls: list | None = None#
class isek.models.base.SimpleModel(id: str, name: str | None = None, provider: str | None = None)[source]#

Bases: Model

Simple model implementation for testing.

async ainvoke(messages: List[SimpleMessage], **kwargs) Any[source]#

Simple async mock implementation.

invoke(messages: List[SimpleMessage], **kwargs) Any[source]#

Simple mock implementation.

parse_provider_response(response: Any, **kwargs) SimpleModelResponse[source]#

Parse the mock response.

class isek.models.base.SimpleModelResponse(content: str | None = None, role: str | None = None, tool_calls: List[Dict[str, Any]] | None = None, extra: Dict[str, Any] | None = None)[source]#

Bases: object

Ultra-simplified model response.

content: str | None = None#
extra: Dict[str, Any] | None = None#
role: str | None = None#
to_dict() Dict[str, Any][source]#
tool_calls: List[Dict[str, Any]] | None = None#
class isek.models.simpleModel.SimpleModel(model_id: str = 'simple-model')[source]#

Bases: Model

Simple model implementation for testing that echoes user messages.

async ainvoke(messages: List[SimpleMessage], **kwargs) Any[source]#

Simple async mock implementation.

invoke(messages: List[SimpleMessage], **kwargs) Any[source]#

Simple mock implementation.

parse_provider_response(response: Any, **kwargs) SimpleModelResponse[source]#

Parse the mock response.

class isek.models.openai.OpenAIModel(model_id: str | None = None, api_key: str | None = None, base_url: str | None = None)[source]#

Bases: Model

Ultra-simplified OpenAI model implementation.

async ainvoke(messages: List[SimpleMessage], **kwargs: Any) ChatCompletion[source]#

Async invoke the OpenAI model.

Parameters:
  • messages -- List of messages to send

  • **kwargs -- Additional arguments for the API call

Returns:

Raw ChatCompletion response

invoke(messages: List[SimpleMessage], **kwargs: Any) ChatCompletion[source]#

Invoke the OpenAI model.

Parameters:
  • messages -- List of messages to send

  • **kwargs -- Additional arguments for the API call

Returns:

Raw ChatCompletion response

parse_provider_response(response: ChatCompletion, **kwargs: Any) SimpleModelResponse[source]#

Parse the OpenAI response.

Parameters:
  • response -- Raw ChatCompletion response

  • **kwargs -- Additional arguments

Returns:

Parsed SimpleModelResponse

class isek.models.litellm.LiteLLMModel(provider: str | None = None, model_id: str | None = None, api_key: str | None = None, base_url: str | None = None)[source]#

Bases: Model

Ultra-simplified LiteLLM model implementation.

async ainvoke(messages: List[SimpleMessage], **kwargs: Any) Any[source]#

Async invoke the LiteLLM model.

Parameters:
  • messages -- List of messages to send

  • **kwargs -- Additional arguments for the API call

Returns:

Raw ModelResponse

invoke(messages: List[SimpleMessage], **kwargs: Any) Any[source]#

Invoke the LiteLLM model.

Parameters:
  • messages -- List of messages to send

  • **kwargs -- Additional arguments for the API call

Returns:

Raw ModelResponse

parse_provider_response(response: Any, **kwargs: Any) SimpleModelResponse[source]#

Parse the LiteLLM response.

Parameters:
  • response -- Raw ModelResponse

  • **kwargs -- Additional arguments

Returns:

Parsed SimpleModelResponse