AI Chat — Unified LLM Gateway

SkillAI & models

This is a skill that gives your AI guidance for editing and improving the Windmill AI chat, the copilot built into Windmill. Once added, your AI can follow established practices when changing the chat's tools, system prompts, and how it manages its context window. It is aimed at work on the chat code, including its global mode.

Available today. Use it from your connected AI after setup.

Add the skill, then ask your AI to make a change to the Windmill chat, such as editing a chat tool or system prompt. It will follow the included guidance while working in the chat code.

Then ask your AI: use the AI Chat — Unified LLM Gateway skill

What your AI can do with it

  • Edit chat tools and system prompts in the Windmill AI chat
  • Adjust tool-result shapes in the chat code under frontend/src/lib/components/copilot/chat
  • Apply context-window discipline when changing how the chat manages its context
  • Work on global mode of the Windmill AI chat

What this skill tells your AI

The instructions your AI receives, as published by windmill-labs/windmill in .agents/skills/ai-chat/SKILL.md and read by ahel’s review.

AceDataCloud exposes two documented chat surfaces:

EndpointUse For
POST /aichat2/conversationsRecommended stateful / multimodal / agentic conversations
POST /aichat/conversationsLegacy conversation endpoint
POST /openai/chat/completionsOpenAI-compatible stateless chat completions
POST /openai/responsesOpenAI-compatible responses API

Setup: See authentication for token setup.

Quick Start

Recommended: stateful conversations

curl -X POST https://api.acedata.cloud/aichat2/conversations \
  -H "Authorization: ******ACEDATACLOUD_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-4.1","question":"Summarize the latest release notes.","stateful":true}'

OpenAI-compatible SDK

from openai import OpenAI

client = OpenAI(
    api_key="your-token-here",
    base_url="https://api.acedata.cloud/openai"
)

response = client.chat.completions.create(
    model="gpt-5.5",
    messages=[{"role": "user", "content": "Explain quantum computing"}]
)
print(response.choices[0].message.content)

Currently Documented Model Families

The OpenAPI specs expose a broad, fast-moving model catalog. Representative current models include:

FamilyCurrent examples
OpenAI / reasoninggpt-5.6-luna, gpt-5.6-terra, gpt-5.6-sol, gpt-5.5, gpt-5.5-pro, gpt-5.4, gpt-5.4-pro, gpt-5.2, gpt-5.1, gpt-5, gpt-5-mini, gpt-5-nano, gpt-4.1, gpt-4.1-mini, gpt-4.1-nano, gpt-4o, gpt-4o-mini, o1, o3, o4-mini
OpenAI free-tier chat-completionsgpt-5.5:free, gpt-5:free, gpt-4.1:free, gpt-4o:free, gpt-4o-mini:free, gpt-oss:free
Claudeclaude-fable-5, claude-opus-5, claude-sonnet-5, claude-opus-4-8, claude-opus-4-7, claude-opus-4-6, claude-opus-4-5-20251101, claude-sonnet-4-6, claude-sonnet-4-5-20250929, claude-sonnet-4-20250514, claude-haiku-4-5-20251001, claude-3-7-sonnet-20250219
Geminigemini-3.6-flash, gemini-3.5-flash, gemini-3.1-pro, gemini-3.1-pro-preview, gemini-3.1-flash-lite-preview, gemini-3-pro-preview, gemini-2.5-flash-lite, gemini-2.0-flash-lite
Grokgrok-4.5, grok-4, grok-4-0709, grok-3, grok-3-fast
DeepSeekdeepseek-v4-pro, deepseek-v4-flash, deepseek-r1, deepseek-r1-0528, deepseek-v3, deepseek-v3-250324, deepseek-v3.2-exp
Kimikimi-k3, kimi-k2.6, kimi-k2.5, kimi-k2-thinking-turbo, kimi-k2-thinking
GLMglm-5.2, glm-5.1, glm-5, glm-5-turbo, glm-4.7, glm-4.6, glm-4.5, glm-4.5v, glm-3-turbo

/aichat2/conversations also accepts model_group values chatgpt, claude, gemini, grok, kimi, glm, and deepseek.

Image-generating models are not chat models. Names ending in -image (e.g. gemini-*-image, gpt-4o-image) are image-generation models and do not work on any chat surface listed above. Generate images through the dedicated endpoints instead — Gemini via POST /v1beta/models/{model}:generateContent, or /nano-banana/images.

OpenAI-Compatible Chat

POST /openai/chat/completions
{
  "model": "gpt-4.1",
  "messages": [{"role": "user", "content": "Write a haiku about observability."}],
  "stream": true,
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "get_weather",
        "parameters": {"type": "object", "properties": {"location": {"type": "string"}}}
      }
    }
  ]
}

Common parameters:

ParameterTypeDescription
modelstringOne of the documented OpenAI-compatible models
messagesarrayStandard OpenAI chat message list
temperature / top_pnumberSampling controls
max_tokensintegerOutput cap
streambooleanEnable SSE streaming
tools / tool_choicearray / string-objectFunction-calling controls
service_tierstringProcessing tier (auto, default, flex, scale, priority)

Stateful / Agentic Conversations

POST /aichat2/conversations generalizes the legacy conversation API with multimodal user content, CRUD-style actions, and server-side conversation state.

POST /aichat2/conversations
{
  "action": "chat",
  "model": "claude-sonnet-4-6",
  "message": [
    {"type": "text", "text": "Describe this image."},
    {"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}
  ],
  "stateful": true,
  "allowed_skills": ["google-search"],
  "allowed_mcp_servers": ["mcp-google-search"]
}

Useful parameters:

ParameterTypeDescription
actionstringchat, retrieve, retrieve_batch, update, delete
modelstringModel name
questionstringSimple text prompt
messagestring or arrayMultimodal content using text, image_url, or file_url items
statefulbooleanKeep conversation history server-side
referencesarrayExtra context documents
presetstringPreset/system prompt
max_turnsintegerTrim retained turn history
allowed_skills / allowed_mcp_serversarrayRestrict tool-use scope
unattended_policyobjectTool-use permission policy
tool_resultsarrayReturn results for previously requested tool calls
model_groupstringFamily selector (chatgpt, claude, gemini, grok, kimi, glm, deepseek)
offset / limitintegerPagination for retrieval actions
callback_url / asyncstring / booleanAsync execution

Gotchas

  • The documented OpenAI-compatible routes live under /openai/*, not /v1/*.
  • POST /aichat2/conversations is the recommended stateful endpoint; POST /aichat/conversations remains for legacy clients.
  • message on /aichat2/conversations can be multimodal (text, image_url, file_url); plain question still works for simple text prompts.
  • action on /aichat2/conversations is not chat-only — it also supports retrieve, retrieve_batch, update, and delete.
  • Free-tier model variants such as gpt-5.5:free are documented on /openai/chat/completions.

Signals

GitHub stars
18k
Forks
1k
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
ai-chat
Source
github.com/windmill-labs/windmill