POST
/
ai-proxy
/
completions
curl --request POST \
  --url https://api.enkryptai.com/ai-proxy/completions \
  --header 'Content-Type: application/json' \
  --header 'X-Enkrypt-Deployment: <x-enkrypt-deployment>' \
  --header 'apikey: <api-key>' \
  --data '{
  "model": "mistralai/Mixtral-8x7B-Instruct-v0.1",
  "prompt": "give me a good family joke"
}'
{
  "id": "9023f7795cc53994",
  "object": "text.completion",
  "created": 1736924194,
  "model": "mistralai/Mixtral-8x7B-Instruct-v0.1",
  "prompt": [],
  "choices": [
    {
      "text": "?\n\nA: Why don't scientists trust atoms?\n\nQ: Why?\n\nA: Because they make up everything!\n\n## What is the best family joke?\n\nA: Why was the math book sad?\n\nQ: Because it had too many problems.\n\n## What is a clean joke for kids?\n\nA: Why did the scarecrow win an award?\n\nQ: Because he was outstanding in his field.\n\n## What is a good clean joke?\n\nA: Why did the bicycle fall over?\n\nQ: Because it was two-tired.\n\n## What is a good clean joke for adults?\n\nA: Why did the tomato turn red?\n\nQ: Because it saw the salad dressing.\n\n## What is a good clean joke for kids and adults?\n\nA: Why did the coffee file a police report?\n\nQ: It got mugged.\n\n## What is a good clean joke for kids and adults that is also a pun?\n\nA: Why couldn't the bicycle stand up by itself?\n\nQ: It was two tired.\n\n## What is a good clean joke for kids and adults that is also a riddle?\n\nA: I have keys but no locks. I have space but no room. You can enter, but can't go outside. What am I?\n\nQ: A keyboard.\n\n## What is a good clean joke for kids and adults that is also a one-liner?\n\nA: I told my wife she should embrace her mistakes... She gave me a hug.\n\n## What is a good clean joke for kids and adults that is also a wordplay?\n\nA: I used to be a baker, but I couldn't make enough dough.\n\n## What is a good clean joke for kids and adults that is also a play on words?\n\nA: I was going to buy a book on anti-gravity, but I couldn't find one.\n\n## What is a good clean joke for kids and adults that is also a witty remark?\n\nA: I'm not arguing, I'm just explaining why I'm right.\n\n## What is a good clean joke for kids and adults that is also a clever observation?\n\nA: I'm not lazy, I'm just conserving energy.\n\n## What is a good clean joke for kids and adults that is also a humorous comment?\n\nA: I'm not arguing, I'm just passionately expressing my point of view while completely dismissing yours.\n\n## What is a good clean joke for kids and adults that is also a light-hearted quip?\n\nA: I'm not arguing, I'm just providing a different perspective that happens to be the correct one.\n\n## What is a good clean joke for kids and adults that is also a funny retort?\n\nA: I'm not arguing, I'm just having a heated discussion with someone who is clearly wrong.\n\n## What is a good clean joke for kids and adults that is also a sarcastic remark?\n\nA: I'm not arguing, I'm just engaging in a civil discourse with someone who is clearly misinformed.\n\n## What is a good clean joke for kids and adults that is also a humorous comeback?\n\nA: I'm not arguing, I'm just correcting your misguided notions with the power of facts and logic.\n\n## What is a good clean joke for kids and adults that is also a witty comeback?\n\nA: I'm not arguing, I'm just demonstrating the superiority of my intellect over your ignorance.\n\n## What is a good clean joke for kids and adults that is also a clever comeback?\n\nA: I'm not arguing, I'm just proving beyond a shadow of a doubt that I am right and you are wrong.\n\n## What is a good clean joke for kids and adults that is also a sharp comeback?\n\nA: I'm not arguing, I'm just using my superior reasoning skills to dismantle your flawed argument.\n\n## What is a good clean joke for kids and adults that is also a biting comeback?\n\nA: I'm not arguing, I'm just showing you the error of your ways with the precision of a master debater.\n\n## What is a good clean joke for kids and adults that is also a cutting comeback?\n\nA: I'm not arguing, I'm just using my vast knowledge and intelligence to expose the holes in your argument.\n\n## What is a good clean joke for kids and adults that is also a crushing comeback?\n\nA: I'm not arguing, I'm just using my unparalleled wit and intellect to destroy your argument and leave you in ruins.\n\n## What is a good clean joke for kids and adults that is also a devastating comeback?\n\nA: I'm not arguing, I'm just using my superior debating skills to annihilate your argument and leave you humiliated.\n\n## What is a good clean joke for kids and adults that is also a withering comeback?\n\nA: I'm not arguing, I'm just using my razor-sharp wit and intellect to eviscerate your argument and leave you speechless.\n\n## What is a good clean joke for kids and adults that is also a scathing comeback?\n\nA: I'm not arguing, I'm just using my formidable debating skills to incinerate your argument and reduce it to ashes.\n\n## What is a good clean joke for kids and adults that is also a merciless comeback?\n\nA: I'm not arguing, I'm just using my unrelenting logic and reason to obliterate your argument and leave you defeated.\n\n## What is a good clean joke for kids and adults that is also a ruthless comeback?\n\nA: I'm not arguing, I'm just using my irrefutable arguments and undeniable facts to demolish your argument and leave you in shambles.\n\n## What is a good clean joke for kids and adults that is also a savage comeback?\n\nA: I'm not arguing, I'm just using my brutal honesty and incisive intellect to disembowel your argument and leave you bleeding out.\n\n## What is a good clean joke for kids and adults that is also a vicious comeback?\n\nA: I'm not arguing, I'm just using my ruthless logic and unyielding reason to eviscerate your argument and leave you writhing in pain.\n\n## What is a good clean joke for kids and adults that is also a ferocious comeback?\n\nA: I'm not arguing, I'm just using my merciless wit and unstoppable intellect to shred your argument to pieces and leave you trembling in fear.\n\n## What is a good clean joke for kids and adults that is also a relentless comeback?\n\nA: I'm not arguing, I'm just using my remorseless logic and unforgiving reason to tear your argument apart and leave you begging for mercy.\n\n## What is a good clean joke for kids and adults that is also a remorseless comeback?\n\nA: I'm not arguing, I'm just using my pitiless wit and unyielding intellect to annihilate your argument and leave you weeping in despair.\n\n## What is a good clean joke for kids and adults that is also a heartless comeback?\n\nA: I'm not arguing, I'm just using my cold, calculating logic to destroy your argument and leave you broken and defeated.\n\n## What is a good clean joke for kids and adults that is also a ruthless comeback?\n\nA: I'm not arguing, I'm just using my relentless logic and unyielding reason to crush your argument and leave you in ruins.\n\n## What is a good clean joke for kids and adults that is also a merciless comeback?\n\nA: I'm not arguing, I'm just using my unyielding intellect and remorseless logic to obliterate your argument and leave you humiliated.\n\n## What is a good clean joke for kids and adults that is also a savage comeback?\n\nA: I'm not arguing, I'm just using my ruthless wit and unyielding intellect to eviscerate your argument and leave you trembling in fear.\n\n## What is a good clean joke for kids and adults that is also a crushing comeback?\n\nA: I'm not arguing, I'm just using my merciless logic and unrelenting reason to shred your argument to pieces and leave you begging for mercy.\n\n## What is a good clean joke for kids and adults that is also a devastating comeback?\n\nA: I'm not arguing, I'm just using my remorseless w",
      "finish_reason": "length",
      "seed": 14925105257546449000,
      "logprobs": null,
      "index": 0
    }
  ],
  "usage": {
    "prompt_tokens": 7,
    "completion_tokens": 2048,
    "total_tokens": 2055
  },
  "enkrypt_policy_detections": {
    "output_guardrails": {
      "details": {
        "keyword_detector": {
          "detected_counts": {},
          "redacted_text": " Hello! How can I assist you today?",
          "detected_keywords": {}
        },
        "policy_violation": {
          "violating_policy": "No Violation Found",
          "explanation": "No Violation Found."
        },
        "bias": {
          "bias_detected": false,
          "debiased_text": "Hello! How may I help you today?"
        },
        "pii": {
          "ip_address": {},
          "url": {},
          "pii": {},
          "secrets": {}
        },
        "nsfw": {
          "sfw": 0.77364963293076,
          "nsfw": 0.14463838934898
        },
        "toxicity": {
          "threat": 0.00013719938579015,
          "severe_toxicity": 0.00013394378765952,
          "obscene": 0.00018259837816004,
          "insult": 0.00018637960602064,
          "toxicity": 0.00058524927590042,
          "identity_hate": 0.00014582877338398
        },
        "injection_attack": {
          "safe": "0.998087",
          "attack": "0.001913"
        }
      },
      "summary": {
        "keyword_detected": 0,
        "policy_violation": 0,
        "bias": 0,
        "pii": 0,
        "nsfw": 0,
        "toxicity": {},
        "injection_attack": 0
      }
    },
    "input_guardrails": {
      "details": {
        "keyword_detector": {
          "detected_counts": {},
          "redacted_text": "|",
          "detected_keywords": {}
        },
        "policy_violation": {
          "violating_policy": "No Violation Found",
          "explanation": "No Violation Found."
        },
        "bias": {
          "bias_detected": false,
          "debiased_text": "No rephrasing needed."
        },
        "pii": {
          "ip_address": {},
          "url": {},
          "pii": {},
          "secrets": {}
        },
        "nsfw": {
          "sfw": 0.23262414336205,
          "nsfw": 0.75041556358337
        },
        "toxicity": {
          "threat": 0.0001007060345728,
          "severe_toxicity": 0.00010207855666522,
          "obscene": 0.00019277907267679,
          "insult": 0.00018571241525933,
          "toxicity": 0.0011186309857294,
          "identity_hate": 0.00013926414248999
        },
        "injection_attack": {
          "safe": "0.999906",
          "attack": "0.000094"
        }
      },
      "summary": {
        "keyword_detected": 0,
        "policy_violation": 0,
        "bias": 0,
        "pii": 0,
        "nsfw": 1,
        "toxicity": {},
        "injection_attack": 0
      }
    }
  }
}

Authorizations

apikey
string
header
required

Headers

X-Enkrypt-Deployment
string
required

The deployment saved name. E.g. test-deployment-1

Example:

"test-deployment"

X-Enkrypt-Tags
string

Comma separated tags for the deployment if any

Example:

"openai-testing,unit-testing"

X-Enkrypt-Refresh-Cache
boolean

Refresh the cache if deployment, policy or model data is stale

Example:

false

Body

application/json
prompt
default:<|endoftext|>
required

The prompt(s) to generate completions for, encoded as a string, array of strings, array of tokens, or array of token arrays.

Note that <|endoftext|> is the document separator that the model sees during training, so if a prompt is not specified the model will generate as if from the beginning of a new document.

Example:

"This is a test."

enkrypt_context
string

The context for the request if using relevancy or hallucion detection in output guardrails

model

ID of the model to use. You can use the List models API to see all of your available models, or see our Model overview for descriptions of them.

best_of
integer | null
default:1

Generates best_of completions server-side and returns the "best" (the one with the highest log probability per token). Results cannot be streamed.

When used with n, best_of controls the number of candidate completions and n specifies how many to return – best_of must be greater than n.

Note: Because this parameter generates many completions, it can quickly consume your token quota. Use carefully and ensure that you have reasonable settings for max_tokens and stop.

Required range: 0 <= x <= 20
echo
boolean | null
default:false

Echo back the prompt in addition to the completion

frequency_penalty
number | null
default:0

Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.

See more information about frequency and presence penalties.

Required range: -2 <= x <= 2
logit_bias
object | null

Modify the likelihood of specified tokens appearing in the completion.

Accepts a JSON object that maps tokens (specified by their token ID in the GPT tokenizer) to an associated bias value from -100 to 100. You can use this tokenizer tool to convert text to token IDs. Mathematically, the bias is added to the logits generated by the model prior to sampling. The exact effect will vary per model, but values between -1 and 1 should decrease or increase likelihood of selection; values like -100 or 100 should result in a ban or exclusive selection of the relevant token.

As an example, you can pass {"50256": -100} to prevent the <|endoftext|> token from being generated.

logprobs
integer | null

Include the log probabilities on the logprobs most likely output tokens, as well the chosen tokens. For example, if logprobs is 5, the API will return a list of the 5 most likely tokens. The API will always return the logprob of the sampled token, so there may be up to logprobs+1 elements in the response.

The maximum value for logprobs is 5.

Required range: 0 <= x <= 5
max_tokens
integer | null
default:16

The maximum number of tokens that can be generated in the completion.

The token count of your prompt plus max_tokens cannot exceed the model's context length. Example Python code for counting tokens.

Required range: x >= 0
Example:

16

n
integer | null
default:1

How many completions to generate for each prompt.

Note: Because this parameter generates many completions, it can quickly consume your token quota. Use carefully and ensure that you have reasonable settings for max_tokens and stop.

Required range: 1 <= x <= 128
Example:

1

presence_penalty
number | null
default:0

Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.

See more information about frequency and presence penalties.

Required range: -2 <= x <= 2
seed
integer | null

If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same seed and parameters should return the same result.

Determinism is not guaranteed, and you should refer to the system_fingerprint response parameter to monitor changes in the backend.

Required range: -9223372036854776000 <= x <= 9223372036854776000
stop

Up to 4 sequences where the API will stop generating further tokens. The returned text will not contain the stop sequence.

Example:

"\n"

stream
boolean | null
default:false

Whether to stream back partial progress. If set, tokens will be sent as data-only server-sent events as they become available, with the stream terminated by a data: [DONE] message. Example Python code.

stream_options
object | null

Options for streaming response. Only set this when you set stream: true.

suffix
string | null

The suffix that comes after a completion of inserted text.

This parameter is only supported for gpt-3.5-turbo-instruct.

Example:

"test."

temperature
number | null
default:1

What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.

We generally recommend altering this or top_p but not both.

Required range: 0 <= x <= 2
Example:

1

top_p
number | null
default:1

An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.

We generally recommend altering this or temperature but not both.

Required range: 0 <= x <= 1
Example:

1

user
string

A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. Learn more.

Example:

"user-1234"

Response

200 - application/json
Successful Response

Represents a completion response from the API. Note: both the streamed and non-streamed response objects share the same shape (unlike the chat endpoint).

id
string
required

A unique identifier for the completion.

choices
object[]
required

The list of completion choices the model generated for the input prompt.

created
integer
required

The Unix timestamp (in seconds) of when the completion was created.

model
string
required

The model used for completion.

object
enum<string>
required

The object type, which is always "text_completion"

Available options:
text_completion
system_fingerprint
string

This fingerprint represents the backend configuration that the model runs with.

Can be used in conjunction with the seed request parameter to understand when backend changes have been made that might impact determinism.

usage
object

Usage statistics for the completion request.

enkrypt_policy_detections
object

The policy detections for the completion.