submit-ava-feedback
dci submit-ava-feedback [body]
Submit feedback on an Ava answer to help improve response quality.
Pass the request body as name: value arguments or pipe JSON on stdin — see Command structure.
Where the IDs come from
answerId and conversationId are returned by dci ask-ava-sync only when the conversation
is persisted (ephemeral: false, the default); ephemeral answers cannot receive feedback.
dci ava-feedback is accepted as an alias.
Examples
# Mark an answer as helpful.
dci submit-ava-feedback < feedback.json
# feedback.json — both IDs come from a persisted (ephemeral: false) ask-ava-sync response
{"answerId": "<answer-id>", "conversationId": "<conversation-id>", "feedback": {"positive": true}}
# Mark it as unhelpful and say why.
dci submit-ava-feedback < negative-feedback.json
# negative-feedback.json
{"answerId": "<answer-id>", "conversationId": "<conversation-id>",
"feedback": {"positive": false, "text": "The answer ignored the date range I asked about"}}
Request
Content-Type: application/json
| Field | Type | Required | Description |
|---|---|---|---|
conversationId | string | yes | The conversation ID the feedback relates to. |
answerId | string | yes | The specific answer ID within the conversation. |
feedback | object | yes | |
feedback.positive | boolean | yes | Whether the feedback is positive or negative. |
feedback.text | string | Optional text providing additional feedback details. |
Raw JSON schema
{
"type": "object",
"properties": {
"conversationId": {
"type": "string",
"description": "The conversation ID the feedback relates to."
},
"answerId": {
"type": "string",
"description": "The specific answer ID within the conversation."
},
"feedback": {
"type": "object",
"properties": {
"positive": {
"type": "boolean",
"description": "Whether the feedback is positive or negative."
},
"text": {
"type": "string",
"description": "Optional text providing additional feedback details."
}
},
"required": [
"positive"
]
}
},
"required": [
"conversationId",
"answerId",
"feedback"
]
}
Output
On success, this command produces no response data.
Errors
On failure, dci prints a single error message — with a hint when one is available — and exits with a typed code your scripts can branch on. See Errors and exit codes for the full contract.
HTTP status to exit code mapping
| HTTP status | Exit code | Error code | Meaning |
|---|---|---|---|
| 400 | 30 | VALIDATION_ERROR | The arguments or request body were rejected. Review the command's flags and payload. |
| 401 | 10 | AUTHENTICATION_FAILED | Not signed in, or the API token is invalid. Run dci login or check DCI_API_KEY. |
| 403 | 11 | PERMISSION_DENIED | The DoiT user or the active customer context does not have access. |
| 500 | 40 | API_SERVER_ERROR | The API failed to process the request. Retryable; contact DoiT support if it persists. |
Related
- ask-ava-sync — Ask Ava
- ask-ava-streaming — Ask Ava (streaming)
- delete-ava-conversation — Delete a conversation
- API reference: POST /ava/v1/feedback
Aliases: ava-feedback