UNPKG

koishi-plugin-chatluna-character-card

Version:
155 lines (154 loc) 5.19 kB
import { Context, Schema } from 'koishi'; import { BaseMessage } from '@langchain/core/messages'; import { ChatLunaPlugin } from 'koishi-plugin-chatluna/services/chat'; export interface v2DataWorldInfoEntry { keys: string[]; secondary_keys?: string[]; comment: string; content: string; constant: boolean; selective: boolean; insertion_order: number; enabled: boolean; position: string; use_regex: boolean; extensions: v2DataWorldInfoEntryExtensionInfos; id: number; } export interface v2DataWorldInfoEntryExtensionInfos { position: number; exclude_recursion: boolean; probability: number; useProbability: boolean; depth: number; selectiveLogic: number; group: string; group_override: boolean; group_weight: number; prevent_recursion: boolean; delay_until_recursion: boolean; scan_depth: number; match_whole_words: boolean; use_group_scoring: boolean; case_sensitive: boolean; automation_id: string; role: number; vectorized: boolean; display_index: number; } export interface v2WorldInfoBook { name: string; entries: v2DataWorldInfoEntry[]; } export interface v2CharData { name: string; description: string; character_version: string; personality: string; scenario: string; first_mes: string; mes_example: string; creator_notes: string; tags: string[]; system_prompt: string; post_history_instructions: string; creator: string; alternate_greetings: string[]; character_book: v2WorldInfoBook; extensions: v2CharDataExtensionInfos; } export interface v2CharDataExtensionInfos { talkativeness: number; fav: boolean; world: string; depth_prompt: { depth: number; prompt: string; role: 'system' | 'user' | 'assistant'; }; regex_scripts: RegexScriptData[]; pygmalion_id?: string; github_repo?: string; source_url?: string; chub?: { full_path: string; }; risuai?: { source: string[]; }; } export interface RegexScriptData { id: string; scriptName: string; findRegex: string; replaceString: string; trimStrings: string[]; placement: number[]; disabled: boolean; markdownOnly: boolean; promptOnly: boolean; runOnEdit: boolean; substituteRegex: boolean; minDepth: number; maxDepth: number; } export interface v1CharData { name: string; description: string; personality: string; scenario: string; first_mes: string; mes_example: string; creatorcomment: string; tags: string[]; talkativeness: number; fav: boolean | string; create_date: string; data: v2CharData; chat: string; avatar: string; json_data: string; } export function readCharacterCard(ctx: Context, filePath: string): Promise<v2CharData>; export function getCharacterCardV2(ctx: Context, jsonObject: Record<string, any>): v2CharData; export function parseExampleMessage(card: v2CharData, messages: BaseMessage[]): BaseMessage[]; export function apply(ctx: Context, config: Config): void; declare module 'koishi' { interface Events { 'chatluna-character-card/load-character-card': (card: v2CharData) => Promise<void>; } } export function apply(ctx: Context, config: Config): void; declare module 'koishi' { interface Events { 'chatluna-character-card/load-all': () => Promise<void>; } } export function apply(ctx: Context, config: Config): Promise<void>; export function plugins(ctx: Context, parent: Config): Promise<void>; export function apply(ctx: Context, config: Config): void; export const inject: { required: string[]; }; export const inject2: { chatluna: { required: boolean; }; chatluna_character: { required: boolean; }; vits: { required: boolean; }; }; export interface Config extends ChatLunaPlugin.Config { loadMode: string; jailbreak: boolean; systemMainPrompt: string; jailbreakPrompt: string; personalityPrompt: string; scenarioPrompt: string; } export const Config: Schema<Config>; export const usage = "\n\u89D2\u8272\u5361\u653E\u5165 `data/chathub/sillytavern` \u76EE\u5F55\u4E0B\uFF0C\u89D2\u8272\u5361\u6587\u4EF6\u683C\u5F0F\u4E3A `json` \u6216 `png`\u3002\n\n\n\u4F7F\u7528\u5185\u5B58\u52A0\u8F7D\u6A21\u5F0F\u65F6\uFF0C\u89D2\u8272\u5361\u4F1A\u76F4\u63A5\u52A0\u8F7D\u5230\u5185\u5B58\u4E2D\uFF0C\u4F60\u53EF\u4EE5\u5B9E\u65F6\u5728 ChatLuna \u4E2D\u4F7F\u7528\u8FD9\u4E9B\u89D2\u8272\u5361\u3002\n\n\u4F7F\u7528\u6587\u4EF6\u52A0\u8F7D\u6A21\u5F0F\u65F6\uFF0C\u89D2\u8272\u5361\u4F1A\u8F6C\u6362\u4E3A ChatLuna \u7684\u9884\u8BBE\u6587\u4EF6\uFF0C\u4F60\u9700\u8981\u5728\u8F6C\u6362\u5B8C\u6210\u540E\u91CD\u542F ChatLuna \u624D\u80FD\u4F7F\u7528\u8FD9\u4E9B\u89D2\u8272\u5361\u3002\n\n\u66F4\u591A\u53C2\u8003\uFF1A[ChatLuna \u6587\u6863](https://chatluna.chat/ecosystem/extension/character-card.html)\n"; export const name = "chatluna-character-card";