Files
pleroma-ollama-bot/types.d.ts
2025-07-05 02:40:56 +00:00

101 lines
2.3 KiB
TypeScript

export interface Notification {
account: Account;
status: Status;
id: string;
type: string;
created_at: string;
}
export interface NewStatusBody {
content_type: "application/json" | "text/markdown";
in_reply_to_id?: string;
media_ids?: string[];
sensitive?: "true" | "false" | boolean;
status: string;
to?: string[];
}
export interface Account {
acct: string; // nickname
bot: boolean;
display_name: string;
fqn: string; // user@instance.tld
id: string; // user ID
note?: string; // bio
}
export interface OllamaRequest {
/**
* Name of the Ollama model to generate a response from. Must be a valid and locally installed model.
*/
model: string;
/**
* The prompt sent from the end-user.
*/
prompt: string;
/**
* Whatever system prompt you'd like to add to the model to make it more unique, or force it to respond a certain way.
*/
system: string;
/**
* Whether to stream responses from the API, or have it sent all as one payload.
*/
stream?: boolean = false; // stream response vs get response in one full message
options?: OllamaConfigOptions;
}
export interface OllamaResponse {
model: string;
created_at: Date | string;
response: string;
done: boolean;
done_reason: string;
}
export interface Status {
account: Account;
content: string; // content of the post
created_at: string | Date; // when the post was created
id: string; // ID of the reply itself
in_reply_to_account_id: string; // account ID of the reply
in_reply_to_id?: string; // status that the user has replied to
mentions?: Mention[]; // array of mentions
}
export interface Mention {
acct: string;
id: string;
url: string;
username: string;
}
export interface OllamaConfigOptions {
num_keep?: number;
seed?: number;
num_predict?: number;
top_k?: number;
top_p?: number;
min_p?: number;
typical_p?: number;
repeat_last_n?: number;
temperature?: number;
repeat_penalty?: number;
presence_penalty?: number;
frequency_penalty?: number;
mirostat?: number;
mirostat_tau?: number;
mirostat_eta?: number;
penalize_newline?: boolean;
stop?: string[];
numa?: boolean;
num_ctx?: number;
num_batch?: number;
num_gpu?: number;
main_gpu?: number;
low_vram?: boolean;
vocab_only?: boolean;
use_mmap?: boolean;
use_mlock?: boolean;
num_thread?: number;
}