UNPKG

koishi-plugin-sus-chat

Version:
80 lines (79 loc) 2.6 kB
import { Liquid, Template } from "liquidjs"; import { Context, Session } from "koishi"; import { Config } from "./index"; export interface ChatRequest { model: string; messages: Message[]; stream?: boolean; } type Role = "user" | "system" | "assistant"; export interface Message { role: Role; content: string; } export interface MessageTemplate { role: Role; content: Template[]; } export interface PromptsFile<M = Message[]> { extend?: string | null; name: string; prompts?: M | null; postprocessing?: string | null; keywords?: string[] | null; follow?: boolean | null; preamble?: string | null; config: unknown | null; prologue?: string | null; } export interface PromptsReal { postprocessing: (message: Message) => Message; prompts?: Message[] | null; follow: boolean; config: unknown | undefined; preamble: string | null; prologue: string | null; } export declare class Prompts { origin_config: Config; directory: string; prompts_map: { [key: string]: PromptsFile<MessageTemplate[]>; }; init_func?: (this: Liquid, arg0: Context, arg1: typeof Liquid) => void; get_liquid(ctx?: Context, session?: Session): Liquid; reload(ctx: Context, directory: string): void; constructor(ctx: Context, directory: string, config: Config); get names(): string[]; get_keywords(name: string): string[]; get(name: string, ctx: Context, session: Session): PromptsReal; } export declare class ChatServer { #private; prompts?: Prompts | undefined; prompt_str?: Template[] | undefined; max_length: number; persistence: boolean; origin_config: Config; get recollect(): { [cid: string]: { [prompt_name: string]: Message[]; }; }; set recollect(value: { [cid: string]: { [prompt_name: string]: Message[]; }; }); get_recollect(session: Session, prompt_name: string): Message[]; update_recollect(ctx: Context, session: Session | { cid: string; }, prompt_name: string, callback: (messages: Message[]) => Message[]): void; load_recollect(ctx: Context): void; constructor(config: Config, prompts: Prompts | string); get_liquid(ctx?: Context, session?: Session): Liquid; evaluate(ctx: Context, session: Session, content: string): Promise<string>; get_prompt(prompt_name: string, ctx: Context, session: Session): Promise<PromptsReal>; chat(message: Message, prompt_name: string, ctx: Context, session: Session): Promise<Message | undefined>; } export {};