@huggingface/tasks
Version:
List of ML tasks for huggingface.co/tasks
330 lines (329 loc) • 10.4 kB
text/typescript
/**
* Inference code generated from the JSON schema spec in ./spec
*
* Using src/scripts/inference-codegen
*/
/**
* Chat Completion Input.
*
* Auto-generated from TGI specs.
* For more details, check out
* https://github.com/huggingface/huggingface.js/blob/main/packages/tasks/scripts/inference-tgi-import.ts.
*/
export interface ChatCompletionInput {
/**
* 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.
*/
frequency_penalty?: number;
/**
* UNUSED
* Modify the likelihood of specified tokens appearing in the completion. Accepts a JSON
* object that maps tokens
* (specified by their token ID in the tokenizer) to an associated bias value from -100 to
* 100. 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.
*/
logit_bias?: number[];
/**
* Whether to return log probabilities of the output tokens or not. If true, returns the log
* probabilities of each
* output token returned in the content of message.
*/
logprobs?: boolean;
/**
* The maximum number of tokens that can be generated in the chat completion.
*/
max_tokens?: number;
/**
* A list of messages comprising the conversation so far.
*/
messages: ChatCompletionInputMessage[];
/**
* [UNUSED] ID of the model to use. See the model endpoint compatibility table for details
* on which models work with the Chat API.
*/
model?: string;
/**
* UNUSED
* How many chat completion choices to generate for each input message. Note that you will
* be charged based on the
* number of generated tokens across all of the choices. Keep n as 1 to minimize costs.
*/
n?: number;
/**
* 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
*/
presence_penalty?: number;
response_format?: ChatCompletionInputGrammarType;
seed?: number;
/**
* Up to 4 sequences where the API will stop generating further tokens.
*/
stop?: string[];
stream?: boolean;
stream_options?: ChatCompletionInputStreamOptions;
/**
* 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.
*/
temperature?: number;
tool_choice?: ChatCompletionInputToolChoice;
/**
* A prompt to be appended before the tools
*/
tool_prompt?: string;
/**
* A list of tools the model may call. Currently, only functions are supported as a tool.
* Use this to provide a list of
* functions the model may generate JSON inputs for.
*/
tools?: ChatCompletionInputTool[];
/**
* An integer between 0 and 5 specifying the number of most likely tokens to return at each
* token position, each with
* an associated log probability. logprobs must be set to true if this parameter is used.
*/
top_logprobs?: number;
/**
* 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.
*/
top_p?: number;
[ ]: unknown;
}
export interface ChatCompletionInputMessage {
content?: ChatCompletionInputMessageContent;
name?: string;
role: string;
tool_calls?: ChatCompletionInputToolCall[];
[ ]: unknown;
}
export type ChatCompletionInputMessageContent = ChatCompletionInputMessageChunk[] | string;
export interface ChatCompletionInputMessageChunk {
image_url?: ChatCompletionInputURL;
text?: string;
type: ChatCompletionInputMessageChunkType;
[ ]: unknown;
}
export interface ChatCompletionInputURL {
url: string;
[ ]: unknown;
}
export type ChatCompletionInputMessageChunkType = "text" | "image_url";
export interface ChatCompletionInputToolCall {
function: ChatCompletionInputFunctionDefinition;
id: string;
type: string;
[ ]: unknown;
}
export interface ChatCompletionInputFunctionDefinition {
description?: string;
name: string;
parameters?: unknown;
[ ]: unknown;
}
export interface ChatCompletionInputGrammarType {
json_schema?: ChatCompletionInputJSONSchemaConfig;
type: ChatCompletionInputGrammarTypeType;
[ ]: unknown;
}
export interface ChatCompletionInputJSONSchemaConfig {
/**
* A description of what the response format is for, used by the model to determine how to
* respond in the format.
*/
description?: string;
/**
* The name of the response format.
*/
name: string;
/**
* The schema for the response format, described as a JSON Schema object. Learn how to build
* JSON schemas [here](https://json-schema.org/).
*/
schema?: {
[ ]: unknown;
};
/**
* Whether to enable strict schema adherence when generating the output. If set to true, the
* model will always follow the exact schema defined in the `schema` field.
*/
strict?: boolean;
[ ]: unknown;
}
export type ChatCompletionInputGrammarTypeType = "text" | "json_schema" | "json_object";
export interface ChatCompletionInputStreamOptions {
/**
* If set, an additional chunk will be streamed before the data: [DONE] message. The usage
* field on this chunk shows the token usage statistics for the entire request, and the
* choices field will always be an empty array. All other chunks will also include a usage
* field, but with a null value.
*/
include_usage?: boolean;
[ ]: unknown;
}
/**
*
* <https://platform.openai.com/docs/guides/function-calling/configuring-function-calling-behavior-using-the-tool_choice-parameter>
*/
export type ChatCompletionInputToolChoice = ChatCompletionInputToolChoiceEnum | ChatCompletionInputToolChoiceObject;
/**
* Means the model can pick between generating a message or calling one or more tools.
*
* Means the model will not call any tool and instead generates a message.
*
* Means the model must call one or more tools.
*/
export type ChatCompletionInputToolChoiceEnum = "auto" | "none" | "required";
export interface ChatCompletionInputToolChoiceObject {
function: ChatCompletionInputFunctionName;
[ ]: unknown;
}
export interface ChatCompletionInputFunctionName {
name: string;
[ ]: unknown;
}
export interface ChatCompletionInputTool {
function: ChatCompletionInputFunctionDefinition;
type: string;
[ ]: unknown;
}
/**
* Chat Completion Output.
*
* Auto-generated from TGI specs.
* For more details, check out
* https://github.com/huggingface/huggingface.js/blob/main/packages/tasks/scripts/inference-tgi-import.ts.
*/
export interface ChatCompletionOutput {
choices: ChatCompletionOutputComplete[];
created: number;
id: string;
model: string;
system_fingerprint: string;
usage: ChatCompletionOutputUsage;
[ ]: unknown;
}
export interface ChatCompletionOutputComplete {
finish_reason: string;
index: number;
logprobs?: ChatCompletionOutputLogprobs;
message: ChatCompletionOutputMessage;
[ ]: unknown;
}
export interface ChatCompletionOutputLogprobs {
content: ChatCompletionOutputLogprob[];
[ ]: unknown;
}
export interface ChatCompletionOutputLogprob {
logprob: number;
token: string;
top_logprobs: ChatCompletionOutputTopLogprob[];
[ ]: unknown;
}
export interface ChatCompletionOutputTopLogprob {
logprob: number;
token: string;
[ ]: unknown;
}
export interface ChatCompletionOutputMessage {
content?: string;
role: string;
tool_call_id?: string;
tool_calls?: ChatCompletionOutputToolCall[];
[ ]: unknown;
}
export interface ChatCompletionOutputToolCall {
function: ChatCompletionOutputFunctionDefinition;
id: string;
type: string;
[ ]: unknown;
}
export interface ChatCompletionOutputFunctionDefinition {
arguments: string;
description?: string;
name: string;
[ ]: unknown;
}
export interface ChatCompletionOutputUsage {
completion_tokens: number;
prompt_tokens: number;
total_tokens: number;
[ ]: unknown;
}
/**
* Chat Completion Stream Output.
*
* Auto-generated from TGI specs.
* For more details, check out
* https://github.com/huggingface/huggingface.js/blob/main/packages/tasks/scripts/inference-tgi-import.ts.
*/
export interface ChatCompletionStreamOutput {
choices: ChatCompletionStreamOutputChoice[];
created: number;
id: string;
model: string;
system_fingerprint: string;
usage?: ChatCompletionStreamOutputUsage;
[ ]: unknown;
}
export interface ChatCompletionStreamOutputChoice {
delta: ChatCompletionStreamOutputDelta;
finish_reason?: string;
index: number;
logprobs?: ChatCompletionStreamOutputLogprobs;
[ ]: unknown;
}
export interface ChatCompletionStreamOutputDelta {
content?: string;
role: string;
tool_call_id?: string;
tool_calls?: ChatCompletionStreamOutputDeltaToolCall[];
[ ]: unknown;
}
export interface ChatCompletionStreamOutputDeltaToolCall {
function: ChatCompletionStreamOutputFunction;
id: string;
index: number;
type: string;
[ ]: unknown;
}
export interface ChatCompletionStreamOutputFunction {
arguments: string;
name?: string;
[ ]: unknown;
}
export interface ChatCompletionStreamOutputLogprobs {
content: ChatCompletionStreamOutputLogprob[];
[ ]: unknown;
}
export interface ChatCompletionStreamOutputLogprob {
logprob: number;
token: string;
top_logprobs: ChatCompletionStreamOutputTopLogprob[];
[ ]: unknown;
}
export interface ChatCompletionStreamOutputTopLogprob {
logprob: number;
token: string;
[ ]: unknown;
}
export interface ChatCompletionStreamOutputUsage {
completion_tokens: number;
prompt_tokens: number;
total_tokens: number;
[ ]: unknown;
}