title: ai-prompt-decorator keywords:
The ai-prompt-decorator plugin simplifies access to LLM providers, such as OpenAI and Anthropic, and their models by appending or prepending prompts into the request.
| Field | Required | Type | Description |
|---|---|---|---|
prepend | Conditionally* | Array | An array of prompt objects to be prepended |
prepend.role | Yes | String | Role of the message (system, user, assistant) |
prepend.content | Yes | String | Content of the message. Minimum length: 1 |
append | Conditionally* | Array | An array of prompt objects to be appended |
append.role | Yes | String | Role of the message (system, user, assistant) |
append.content | Yes | String | Content of the message. Minimum length: 1 |
* Conditionally Required: At least one of prepend or append must be provided.
Create a route with the ai-prompt-decorator plugin like so:
curl "http://127.0.0.1:9180/apisix/admin/routes/1" -X PUT \ -H "X-API-KEY: ${ADMIN_API_KEY}" \ -d '{ "uri": "/v1/chat/completions", "plugins": { "ai-prompt-decorator": { "prepend":[ { "role": "system", "content": "I have exams tomorrow so explain conceptually and briefly" } ], "append":[ { "role": "system", "content": "End the response with an analogy." } ] } }, "upstream": { "type": "roundrobin", "nodes": { "api.openai.com:443": 1 }, "pass_host": "node", "scheme": "https" } }'
Now send a request:
curl http://127.0.0.1:9080/v1/chat/completions -i -XPOST -H 'Content-Type: application/json' -d '{ "model": "gpt-4", "messages": [{ "role": "user", "content": "What is TLS Handshake?" }] }' -H "Authorization: Bearer <your token here>"
Then the request body will be modified to something like this:
{ "model": "gpt-4", "messages": [ { "role": "system", "content": "I have exams tomorrow so explain conceptually and briefly" }, { "role": "user", "content": "What is TLS Handshake?" }, { "role": "system", "content": "End the response with an analogy." } ] }