{"command":{"effect":"write","timeoutSeconds":120,"inputSchema":{"type":"object","description":"Creates a completion for the provided prompt and parameters.\n\nReturns a completion object, or a sequence of completion objects if the request is streamed.\n","properties":{"body":{"$ref":"#/definitions/CreateCompletionRequest"}},"required":["body"],"additionalProperties":false,"definitions":{"CreateCompletionRequest":{"type":"object","properties":{"model":{"description":"ID of the model to use. You can use the [List models](https://developers.openai.com/api/reference/resources/models/methods/list) API to see all of your available models, or see our [Model overview](https://developers.openai.com/api/docs/models) for descriptions of them.\n","anyOf":[{"type":"string"},{"type":"string","enum":["gpt-3.5-turbo-instruct","davinci-002","babbage-002"]}]},"prompt":{"description":"The prompt(s) to generate completions for, encoded as a string, array of strings, array of tokens, or array of token arrays.\n\nNote 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.\n","default":"<|endoftext|>","oneOf":[{"type":"string","default":"","examples":["This is a test."]},{"type":"array","items":{"type":"string","default":"","examples":["This is a test."]}},{"type":"array","minItems":1,"items":{"type":"integer"},"examples":["[1212, 318, 257, 1332, 13]"]},{"type":"array","minItems":1,"items":{"type":"array","minItems":1,"items":{"type":"integer"}},"examples":["[[1212, 318, 257, 1332, 13]]"]},{"type":"null"}]},"best_of":{"type":["integer","null"],"default":1,"minimum":0,"maximum":20,"description":"Generates `best_of` completions server-side and returns the \"best\" (the one with the highest log probability per token). Results cannot be streamed.\n\nWhen 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`.\n\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`.\n"},"echo":{"type":["boolean","null"],"default":false,"description":"Echo back the prompt in addition to the completion\n"},"frequency_penalty":{"type":["number","null"],"default":0,"minimum":-2,"maximum":2,"description":"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.\n\n[See more information about frequency and presence penalties.](https://developers.openai.com/api/docs/guides/text)\n"},"logit_bias":{"type":["object","null"],"additionalProperties":{"type":"integer"},"description":"Modify the likelihood of specified tokens appearing in the completion.\n\nAccepts 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](https://platform.openai.com/tokenizer?view=bpe) 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.\n\nAs an example, you can pass `{\"50256\": -100}` to prevent the <|endoftext|> token from being generated.\n"},"logprobs":{"type":["integer","null"],"minimum":0,"maximum":5,"description":"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.\n\nThe maximum value for `logprobs` is 5.\n"},"max_tokens":{"type":["integer","null"],"minimum":0,"default":16,"description":"The maximum number of [tokens](https://platform.openai.com/tokenizer) that can be generated in the completion.\n\nThe token count of your prompt plus `max_tokens` cannot exceed the model's context length. [Example Python code](https://cookbook.openai.com/examples/how_to_count_tokens_with_tiktoken) for counting tokens.\n","examples":[16]},"n":{"type":["integer","null"],"minimum":1,"maximum":128,"default":1,"description":"How many completions to generate for each prompt.\n\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`.\n","examples":[1]},"presence_penalty":{"type":["number","null"],"default":0,"minimum":-2,"maximum":2,"description":"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.\n\n[See more information about frequency and presence penalties.](https://developers.openai.com/api/docs/guides/text)\n"},"seed":{"type":["integer","null"],"description":"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.\n\nDeterminism is not guaranteed, and you should refer to the `system_fingerprint` response parameter to monitor changes in the backend.\n"},"stop":{"$ref":"#/definitions/StopConfiguration"},"stream":{"description":"Whether to stream back partial progress. If set, tokens will be sent as data-only [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format) as they become available, with the stream terminated by a `data: [DONE]` message. [Example Python code](https://cookbook.openai.com/examples/how_to_stream_completions).\n","type":["boolean","null"],"default":false,"enum":[false,null]},"stream_options":{"$ref":"#/definitions/ChatCompletionStreamOptions"},"suffix":{"description":"The suffix that comes after a completion of inserted text.\n\nThis parameter is only supported for `gpt-3.5-turbo-instruct`.\n","type":["string","null"],"examples":["test."]},"temperature":{"type":["number","null"],"minimum":0,"maximum":2,"default":1,"description":"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.\n\nWe generally recommend altering this or `top_p` but not both.\n","examples":[1]},"top_p":{"type":["number","null"],"minimum":0,"maximum":1,"default":1,"description":"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.\n\nWe generally recommend altering this or `temperature` but not both.\n","examples":[1]},"user":{"type":"string","description":"A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).\n","examples":["user-1234"]}},"required":["model","prompt"]},"StopConfiguration":{"description":"Not supported with latest reasoning models `o3` and `o4-mini`.\n\nUp to 4 sequences where the API will stop generating further tokens. The\nreturned text will not contain the stop sequence.\n","oneOf":[{"type":"string","default":"<|endoftext|>","examples":["\n"]},{"type":"array","minItems":1,"maxItems":4,"items":{"type":"string","examples":["[\"\\n\"]"]}},{"type":"null"}]},"ChatCompletionStreamOptions":{"anyOf":[{"description":"Options for streaming response. Only set this when you set `stream: true`.\n","type":"object","properties":{"include_usage":{"type":"boolean","description":"If set, an additional chunk will be streamed before the `data: [DONE]`\nmessage. The `usage` field on this chunk shows the token usage statistics\nfor the entire request, and the `choices` field will always be an empty\narray.\n\nAll other chunks will also include a `usage` field, but with a null\nvalue. **NOTE:** If the stream is interrupted, you may not receive the\nfinal usage chunk which contains the total token usage for the request.\n"},"include_obfuscation":{"type":"boolean","description":"When true, stream obfuscation will be enabled. Stream obfuscation adds\nrandom characters to an `obfuscation` field on streaming delta events to\nnormalize payload sizes as a mitigation to certain side-channel attacks.\nThese obfuscation fields are included by default, but add a small amount\nof overhead to the data stream. You can set `include_obfuscation` to\nfalse to optimize for bandwidth if you trust the network links between\nyour application and the OpenAI API.\n"}}},{"type":"null"}]}}},"name":"Create completion","id":"openai.createcompletion","example":{"body":{"model":"example","prompt":"<|endoftext|>"}},"maxRequests":1,"summary":false}}