Client → Server Message Format

All WebSocket requests follow this envelope:

{
  "event": "event-name",
  "data": {}
}

1) ping (heartbeat)

{
  "event": "ping"
}

2) gen (chat request)

Request schema

Field Type Required Description
event "gen" Yes Chat generation event name
data.prompt string Yes User prompt; must be non-empty after trim
data.conversationId string No Continue an existing conversation
data.isPrivate boolean No Passed to history retrieval when continuing conversation
data.temperature number No Normalized to 0 ~ 2
data.tools OpenAI tool[] No Passed through to OpenAI-compatible path for tool-call loop
data.enableWebSearch boolean or 0/1 or "true"/"false" No Quick search switch
data.webSearch.enabled boolean or 0/1 or "true"/"false" No Explicit search switch (same purpose as enableWebSearch)
data.webSearch.mode "auto" or "force" No Default: auto
data.webSearch.maxResults number No Normalized to 1 ~ 8, default 5
data.webSearch.freshness "day" or "week" or "month" or "any" No Default: week
data.webSearch.lang "zh" or "en" or "auto" No Default: auto

Minimal example

{
  "event": "gen",
  "data": {
    "prompt": "Hello, write a short poem for me"
  }
}

With conversation + web search + tools

{
  "event": "gen",
  "data": {
    "prompt": "Latest AI regulations in EU this week",
    "conversationId": "conv-xxxxxx",
    "temperature": 0.2,
    "enableWebSearch": true,
    "webSearch": {
      "enabled": true,
      "mode": "auto",
      "maxResults": 5,
      "freshness": "week",
      "lang": "auto"
    },
    "tools": [
      {
        "type": "function",
        "function": {
          "name": "get_regulation_updates",
          "description": "Get latest regulation updates by region",
          "parameters": {
            "type": "object",
            "properties": {
              "region": { "type": "string" }
            },
            "required": ["region"]
          }
        }
      }
    ]
  }
}

3) set-model (deprecated compatibility event)

set-model is currently kept for compatibility, but model switching is not handled through this event in current gateway logic.

{
  "event": "set-model",
  "data": {
    "model": "xxxx"
  }
}

results matching ""

    No results matching ""