WebSocket Communication¶
This document outlines how use ajax requests to communicate with the server via WebSocket.
Available Commands¶
1. execute_plugin_code¶
Executes plugin code on the server. Typically, initiated by the user for debugging and not for UI purposes. Use call_plugin_function for programmatic access to plugin functions.
This command requires the code to be enclosed in #s.
Parameters:
type: “execute_plugin_code”content: The code to be executed
Example:
{
    "type": "execute_plugin_code",
    "content": "##help()#"
}
2. call_plugin_function¶
Initiates a call for a plugin function on the server. Can be used for programmatic access to plugin functions e.g. a UI element that triggers a plugin function.
Warning
Pay attention on how you allow usage. If a chat message is being processed, most likely RIXA will ignore a function call. Rate limits apply to function calls as well.
Parameters:
type: “call_plugin_function”function_name: The name of the function to be calledargs: (Optional) List of positional argumentskwargs: (Optional) Dictionary of keyword arguments
Example:
{
    "type": "call_plugin_function",
    "function_name": "my_function",
    "args": ["arg1", "arg2"],
    "kwargs": {"key1": "value1", "key2": "value2"}
}
3. usr_msg¶
Warning
Custom UI elements should not use this! Messages outside the usual conversation cycle will be ignored
Sends a user message to the server for processing.
Parameters:
type: “usr_msg”content: The user’s message content
Example:
{
    "type": "usr_msg",
    "content": "What's the weather like today?"
}
4. change_setting¶
Changes a user-specific setting on the server.
Parameters:
type: “change_setting”setting: The name of the setting to changevalue: The new value for the setting
Supported Settings:
enable_function_callsenable_knowledge_retrievalselected_chat_mode
Example:
{
    "type": "change_setting",
    "setting": "enable_function_calls",
    "value": true
}
5. update_plugin_setting¶
Updates a specific plugin setting for the user.
Parameters:
type: “update_plugin_setting”plugin_id: The ID of the pluginsetting_id: The ID of the setting within the pluginvalue: The new value for the setting
Example:
{
    "type": "update_plugin_setting",
    "plugin_id": "my_plugin",
    "setting_id": "api_key",
    "value": "new_api_key_value"
}
6. bug_report¶
Submits a bug report to the server.
Parameters:
type: “bug_report”report: The text content of the bug reportimage: (Optional) Base64 encoded image related to the bug
Example:
{
    "type": "bug_report",
    "report": "I encountered an error when trying to...",
    "image": "data:image/png;base64,iVBORw0KGgoAAAAN..."
}
7. delete_current_tracker¶
Deletes the current conversation tracker and starts a new chat.
Parameters:
type: “delete_current_tracker”
Example:
{
    "type": "delete_current_tracker"
}
8. get_chat_modes¶
Retrieves available chat modes for the current user.
Parameters:
type: “get_chat_modes”
Example:
{
    "type": "get_chat_modes"
}
9. get_plugin_settings¶
Retrieves all plugin settings, including global and user-specific values. User specific values override global values.
Parameters:
type: “get_plugin_settings”
Example:
{
    "type": "get_plugin_settings"
}
10. user_settings¶
Retrieves user-specific settings unrelated to any specific plugin e.g. the selected chat mode.
Parameters:
type: “user_settings”
Example:
{
    "type": "user_settings"
}
11. get_utilization_info¶
Retrieves server utilization information.
Parameters:
type: “get_utilization_info”
Example:
{
    "type": "get_utilization_info"
}
12. get_global_settings¶
Retrieves global server settings e.g. the currently set website title.
Parameters:
type: “get_global_settings”
Example:
{
    "type": "get_global_settings"
}
13. get_chat_start_info¶
Retrieves chat start information for a specific chat mode. Used for initializing a new chat mode. This includes
The chats title
Custom UI elements
Onboarding messages
Parameters:
type: “get_chat_start_info”selected_chat_mode: The chat mode to retrieve information for
Example:
{
    "type": "get_chat_start_info",
    "selected_chat_mode": "default"
}
Server Responses¶
The server will respond to these commands with JSON messages. The structure of the response will depend on the specific command, but generally, it will include:
role: Indicates the type of response (e.g., “chat_modes”, “plugin_settings”, “user_settings”, etc.)content: The actual content of the response
Error Handling¶
Errors will be returned via a message in the format
{
    "type": "status",
    "level": "error",
    "content": "Error message here"
}
These are meant to be displayed to the user. Silent messaging should be done via logging inside the plugins or the server.