alter_ego.agents package¶
Submodules¶
alter_ego.agents.APIThread module¶
- class alter_ego.agents.APIThread.APIThread(*args: Any, **kwargs: Any)[source]¶
Bases:
Thread
,ABC
Abstract base class representing any Thread accessible using an API.
- get_api_key() str [source]¶
Retrieve the API key from the environment variable or file.
- Returns:
The API key.
- Return type:
str
- Raises:
ValueError – If API key is neither in the environment nor in the file.
- abstract get_model_output(message: str, max_tokens: int) Any [source]¶
Abstract method to get the model’s output.
- Parameters:
message (str) – The input message to the model.
max_tokens (int) – Maximum number of tokens for the output.
- Returns:
The model’s output.
- Return type:
Any
- abstract send(role: str, message: str, max_tokens: int = 500, **kwargs: Any) str [source]¶
Abstract method to send a message to a role.
- Parameters:
role (str) – The role of the message sender.
message (str) – The message to send.
max_tokens (int) – Maximum number of tokens for the message.
kwargs (Any) – Additional keyword arguments.
- Returns:
The response message.
- Return type:
str
alter_ego.agents.CLIThread module¶
- class alter_ego.agents.CLIThread.CLIThread(**params: Any)[source]¶
Bases:
Thread
Class representing a command-line interface thread.
This is a type of thread that interacts with the user through the command-line interface. Useful for debugging and testing.
- send(role: str, message: str, **kwargs: Any) Any [source]¶
Send a message to the thread and possibly receive a response.
Parameters¶
- rolestr
The role sending the message (“system” or “user”).
- messagestr
The message to be sent.
- kwargsAny
Additional keyword arguments.
Returns¶
- Any
The response from the thread, if applicable.
Raises¶
- NotImplementedError
If the role is not recognized.
alter_ego.agents.ConstantThread module¶
- class alter_ego.agents.ConstantThread.ConstantThread(**params: Any)[source]¶
Bases:
Thread
Class representing a thread that always returns the same response.
This class extends the Thread class in the alter_ego.structure module.
- send(role: str, message: str) str | None [source]¶
Memorize the message and the assistant’s response, then return the response.
- Parameters:
role – The role of the sender (“system” or “user”).
message – The message to memorize.
- Returns:
The assistant’s response if role is “user”, otherwise None.
- Return type:
Union[str, None]
- Raises:
NotImplementedError – If role is not “system” or “user”.
alter_ego.agents.ExternalThread module¶
- class alter_ego.agents.ExternalThread.ExternalThread(**params: Any)[source]¶
Bases:
Thread
Class representing a thread that is managed by an external program.
- send(role, message: str, response: Any | None = None, **kwargs: Any) str [source]¶
Abstract method that must be implemented by subclasses to send messages.
- Parameters:
role – Role of the sender, can be ‘system’, ‘user’, or ‘assistant’.
message – The message to be sent.
kwargs – Additional keyword arguments.
- Returns:
Implementation dependent.
alter_ego.agents.GPTThread module¶
- class alter_ego.agents.GPTThread.GPTThread(model, temperature, *args, **kwargs)[source]¶
Bases:
APIThread
Class representing a GPT-3 or GPT-4 Thread.
- COST_PER_TOKEN = {'gpt-3.5-turbo': {'completion': 2e-06, 'prompt': 1.5e-06}, 'gpt-4': {'completion': 5.9999999999999995e-05, 'prompt': 2.9999999999999997e-05}}¶
- cost() float [source]¶
Calculate the cost based on the model used and token usage.
- Returns:
The cost for the model.
- Return type:
float
- Raises:
NotImplementedError – If the model is not supported.
- get_api_key() str [source]¶
Retrieve the OpenAI API key.
- Returns:
The OpenAI API key.
- Return type:
str
- Raises:
ValueError – If API key is not found.
- get_model_output(message: str, max_tokens: int) str [source]¶
Get the model output for the given message.
- Parameters:
message (str) – The user’s message.
max_tokens (int) – Maximum number of tokens for the model to generate.
- Returns:
The model output.
- Return type:
str
- Raises:
RuntimeError – If maximum number of retries is exceeded.
- send(role: str, message: str, max_tokens: int = 500, **kwargs: Any) str [source]¶
Submit the user message, get the response from the model, and memorize it.
- Parameters:
role (str) – Role of the sender (“user”).
message (str) – The user’s message to submit.
max_tokens (int) – Maximum number of tokens for the model to generate.
kwargs (Any) – Additional keyword arguments.
- Returns:
The model’s response.
- Return type:
str
alter_ego.agents.TextSynthThread module¶
- class alter_ego.agents.TextSynthThread.TextSynthThread(**kwargs: Any)[source]¶
Bases:
APIThread
Class representing a TextSynth Thread.
- get_model_output(message: str, max_tokens: int, extra_params: Dict[str, Any] | None = None) Any [source]¶
Get the model output for the given message.
- Parameters:
message (str) – The user’s message.
max_tokens (int) – Maximum number of tokens for the model to generate.
extra_params (Optional[Dict[str, Any]]) – Additional parameters for the model.
- Returns:
The model output.
- Return type:
Any
- Raises:
RuntimeError – If the maximum number of retries is exceeded.
- send(role: str, message: str, max_tokens: int = 500, extra_params: Dict[str, Any] | None = None, **kwargs: Any) str [source]¶
Submit the user message, receive the model’s response, and memorize it.
- Parameters:
role (str) – Role of the sender (“user”).
message (str) – The user’s message.
max_tokens (int) – Maximum number of tokens for the model to generate.
extra_params (Optional[Dict[str, Any]]) – Additional parameters for the model.
kwargs (Any) – Additional keyword arguments.
- Returns:
The model’s response.
- Return type:
str