Dify · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Dify Service Annotations API
7 actions
7 updates
phrasing
extends
openapi/dify-annotations-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Dify's API. It is a proposal applied on top of the contract, not a document Dify publishes.
What the actions change
x-apievangelist-phrasing
Targets 7
$.info
$.paths['/apps/annotations'].get
$.paths['/apps/annotations'].post
$.paths['/apps/annotations/{annotation_id}'].put
$.paths['/apps/annotations/{annotation_id}'].delete
$.paths['/apps/annotation-reply/{action}'].post
$.paths['/apps/annotation-reply/{action}/status/{job_id}'].get
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Dify Service Annotations API
version: 1.0.0
extends: openapi/dify-annotations-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-26'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 6
- target: $.paths['/apps/annotations'].get
update:
x-apievangelist-phrasing:
intent: List a chat app's annotations
effect: read
questions:
- Which canned question-answer annotations does my Dify chatbot currently have?
- Can I search my app's annotations for a keyword in the question or answer?
- What is the most annotations I can pull back on one page?
instructions:
- text: List all the annotations saved on my chat app.
- text: Find annotations whose question or answer mentions {keyword}.
slots:
keyword: query.keyword
method: generated
generated: '2026-09-26'
- target: $.paths['/apps/annotations'].post
update:
x-apievangelist-phrasing:
intent: Add a predefined question-answer annotation
effect: write
questions:
- How do I make my chatbot always give a fixed answer to a specific question?
- Can I add a new canned reply the app returns instead of generating one?
instructions:
- text: Add an annotation so the question {question} is answered with {answer}.
slots:
question: requestBody.question
answer: requestBody.answer
- text: 'Create a new canned reply: when users ask {question}, respond {answer}.'
slots:
question: requestBody.question
answer: requestBody.answer
method: generated
generated: '2026-09-26'
- target: $.paths['/apps/annotations/{annotation_id}'].put
update:
x-apievangelist-phrasing:
intent: Edit an existing annotation's question and answer
effect: write
questions:
- Can I change the answer on an annotation I already created?
- How do I reword the question text of an existing canned reply?
instructions:
- text: Update annotation {annotation_id} to question {question} and answer {answer}.
slots:
annotation_id: path.annotation_id
question: requestBody.question
answer: requestBody.answer
- text: Rewrite the existing annotation {annotation_id} so its answer becomes {answer} while keeping question {question}.
slots:
annotation_id: path.annotation_id
answer: requestBody.answer
question: requestBody.question
method: generated
generated: '2026-09-26'
- target: $.paths['/apps/annotations/{annotation_id}'].delete
update:
x-apievangelist-phrasing:
intent: Delete an annotation and its hit history
effect: destructive
questions:
- What happens to an annotation's hit history when I remove it?
- Can I get rid of a canned reply my chatbot no longer should give?
instructions:
- text: Delete annotation {annotation_id}.
slots:
annotation_id: path.annotation_id
- text: Remove the canned reply {annotation_id} from my chat app permanently.
slots:
annotation_id: path.annotation_id
method: generated
generated: '2026-09-26'
- target: $.paths['/apps/annotation-reply/{action}'].post
update:
x-apievangelist-phrasing:
intent: Turn annotation reply on or off for an app
effect: write
questions:
- How do I switch on annotation reply so my app answers from saved annotations?
- Which embedding model and similarity threshold does annotation reply matching use?
- Can I disable annotation reply without deleting my annotations?
instructions:
- text: '{action} annotation reply using embedding model {embedding_model_name} from {embedding_provider_name} with a match threshold of {score_threshold}.'
slots:
action: path.action
embedding_model_name: requestBody.embedding_model_name
embedding_provider_name: requestBody.embedding_provider_name
score_threshold: requestBody.score_threshold
- text: Enable annotation reply on my chatbot with {embedding_provider_name} embeddings model {embedding_model_name} and threshold {score_threshold}.
slots:
embedding_provider_name: requestBody.embedding_provider_name
embedding_model_name: requestBody.embedding_model_name
score_threshold: requestBody.score_threshold
method: generated
generated: '2026-09-26'
- target: $.paths['/apps/annotation-reply/{action}/status/{job_id}'].get
update:
x-apievangelist-phrasing:
intent: Check an annotation reply setup job's progress
effect: read
questions:
- Has the job that enables annotation reply finished yet?
- Where can I see whether turning annotation reply off completed or failed?
instructions:
- text: Check the status of annotation reply job {job_id} for the {action} action.
slots:
job_id: path.job_id
action: path.action
- text: Tell me if the annotation reply {action} job {job_id} is done.
slots:
action: path.action
job_id: path.job_id
method: generated
generated: '2026-09-26'