70 lines
1.6 KiB
Markdown
70 lines
1.6 KiB
Markdown
# `POST /modelconversation/{id}/message`
|
|
|
|
Protected. Requires a valid session cookie (`credentials: 'include'`).
|
|
|
|
Post a user message
|
|
|
|
Appends a message with role `user` to the conversation.
|
|
Refused with 409 unless the conversation state is `idle`.
|
|
|
|
|
|
## Path parameters
|
|
|
|
| Param | Required | Type | Description |
|
|
|-------|----------|------|-------------|
|
|
| `id` | yes | integer | Conversation ID |
|
|
|
|
## Body (JSON)
|
|
|
|
| Field | Required | Type | Description |
|
|
|-------|----------|------|-------------|
|
|
| `message` | no | string | User message text or fallback content |
|
|
| `role` | no | string | Message role ('user' or 'tool') |
|
|
| `tool_call_id` | no | string | Target tool call ID when responding to a tool like ask_user |
|
|
| `content` | no | | Tool response content payload |
|
|
| `answer` | no | | Shorthand answer for ask_user response |
|
|
|
|
```json
|
|
{
|
|
"message": "…",
|
|
"role": "user",
|
|
"tool_call_id": "…",
|
|
"content": "…",
|
|
"answer": "…"
|
|
}
|
|
```
|
|
|
|
## Signals
|
|
|
|
On success, emits SSE signal: `modelconversation-<id>` (see [`GET /events`](../events.md)).
|
|
|
|
## Response `201`
|
|
|
|
Created message
|
|
|
|
```json
|
|
{
|
|
"message": {
|
|
"id": 1,
|
|
"conversation_id": 1,
|
|
"created_at": "…",
|
|
"role": "system",
|
|
"message": "…"
|
|
}
|
|
}
|
|
```
|
|
|
|
## Errors
|
|
|
|
| Status | Description |
|
|
|--------|-------------|
|
|
| 400 | Invalid ID, empty message or no company selected — `{"error":"…"}` |
|
|
| 401 | Unauthorized — `{"error":"…"}` |
|
|
| 403 | Not authorized — `{"error":"…"}` |
|
|
| 404 | Conversation not found — `{"error":"…"}` |
|
|
| 409 | Conversation is not idle — `{"error":"…"}` |
|
|
|
|
---
|
|
|
|
_Generated from `@openapi` JSDoc. Do not edit by hand — run `npm run docs:api`._
|