Skip to content

内容与消息工具

字数
925 字
阅读时间
5 分钟

本页收录 ChatLuna 暴露的内容处理、LangChain 消息和 Koishi 元素转换工具。

字符串与内容工具

导入路径:koishi-plugin-chatluna/utils/string

fuzzyQuery()

  • source: string
  • keywords: string[]
  • 返回值: boolean

判断文本是否包含任一关键词。

getMessageContent()

  • message: MessageContent
  • 返回值: string

从 LangChain MessageContent 中提取文本。

getNotEmptyString()

  • ...texts: string[]
  • 返回值: string

返回第一个非空字符串。

getMimeTypeFromSource()

  • sourceUrl?: string
  • fileName?: string
  • 返回值: string | null

按 URL 或文件名推断 MIME。

getImageMimeType()

  • ext?: string
  • 返回值: string

按扩展名推断图片 MIME,失败时返回 image/jpeg

getImageType()

  • buffer: Buffer
  • pure?: boolean
  • checkIsImage?: boolean
  • 返回值: string

按文件头判断图片类型。

sanitizeToolLogString()

  • input: string
  • 返回值: string

清理 base64 data URL、长 data 字段和 thought signature。

sanitizeToolLogValue()

  • value: unknown
  • 返回值: unknown

递归清理对象/数组中的敏感或超长字段。

formatToolCall()

  • tool: string
  • arg: unknown
  • log: string
  • 返回值: string

格式化工具调用日志。

getCurrentWeekday()

  • 返回值: string

getTimeInUTC()

  • offset: number
  • 返回值: string

getTimeDiffFormat()

  • time1: Date | number
  • time2: Date | number
  • 返回值: string

getTimeDiff()

  • time1: Date | number
  • time2: Date | number
  • 返回值: number

selectFromList()

  • args: SelectFromListArgs
  • isPick: boolean
  • 返回值: string

rollDice()

  • formula: string
  • 返回值: number

fetchUrl()

  • url: string
  • method?: string
  • body?: string
  • textLength?: number
  • 返回值: Promise<string>

请求 URL 并截断返回文本。

gzipEncode()

  • text: string
  • encoding?: BufferEncoding
  • 返回值: Promise<Buffer | string>

gzipDecode()

  • data: Buffer | string
  • inputEncoding?: BufferEncoding
  • 返回值: Promise<string>

bufferToArrayBuffer()

  • buffer: Buffer
  • 返回值: ArrayBuffer

hashString()

  • text: string
  • length?: number
  • 返回值: Promise<string>

getSystemPromptVariables()

  • session: Session
  • config: ChatLunaConfig
  • conversation: ConversationRecord
  • 返回值: Record<string, string>

生成系统提示词变量。

formatUserPromptString()

  • config: ChatLunaConfig
  • presetTemplate: PresetTemplate
  • session: Session
  • prompt: string
  • conversation: ConversationRecord
  • 返回值: string

渲染用户输入模板。

LangChain 消息工具

导入路径:koishi-plugin-chatluna/utils/langchain

markChatLunaUserMessage()

  • msg: BaseMessage
  • 返回值: void

isChatLunaUserMessage()

  • msg: BaseMessage
  • 返回值: boolean

isMessageContentImageUrl()

  • content: MessageContent
  • 返回值: boolean

isMessageContentText()

  • content: MessageContent
  • 返回值: boolean

isMessageContentFileUrl()

  • content: MessageContent
  • 返回值: boolean

isMessageContentAudio()

  • content: MessageContent
  • 返回值: boolean

isMessageContentVideo()

  • content: MessageContent
  • 返回值: boolean

isMessageContentComplex()

  • content: MessageContent
  • 返回值: boolean

truncateMessageContentUrls()

  • content: MessageContent
  • 返回值: MessageContent

导出的多模态内容类型:

  • MessageContentFileUrl
  • MessageContentAudio
  • MessageContentVideo

Koishi 元素工具

导入路径:koishi-plugin-chatluna/utils/koishi

forkScopeToDisposable()

  • scope: ForkScope
  • 返回值: PromiseLikeDisposable

把 Koishi fork scope 转成 disposer。

checkAdmin()

  • session: Session
  • 返回值: Promise<boolean>

检查 chatluna:admin 权限,失败时回退到 authority >= 3

transformToMarkdown()

  • source: string
  • platform?: string
  • 返回值: h[]

把 Markdown 渲染成 Koishi 元素。

transformMessageContentToElements()

  • content: MessageContent
  • 返回值: h[]

把 LangChain 多模态内容转 Koishi 元素。

pickForwardMessageId()

  • element: h
  • 返回值: string | null

提取转发消息 ID。

isForwardMessageElement()

  • element: h
  • 返回值: boolean

判断是否为转发消息元素。

normalizeForwardMessageId()

  • value: string
  • 返回值: string | null

规范化转发消息 ID。

其他内容工具

getBase64EncodedSize()

导入路径:koishi-plugin-chatluna/utils/base64

  • rawBytes: number
  • 返回值: number

计算原始字节 base64 编码后的大小。

gzipEncode()

导入路径:koishi-plugin-chatluna/utils/compression

  • data: Buffer | string
  • encoding?: BufferEncoding
  • 返回值: Promise<Buffer | string>

gzipDecode()

导入路径:koishi-plugin-chatluna/utils/compression

  • data: Buffer | string
  • encoding?: BufferEncoding
  • 返回值: Promise<string>

bufferToArrayBuffer()

导入路径:koishi-plugin-chatluna/utils/compression

  • buffer: Buffer
  • 返回值: ArrayBuffer

deepAssign()

导入路径:koishi-plugin-chatluna/utils/object

  • target: object
  • ...sources: object[]
  • 返回值: void

深度合并对象。

页面历史

在 CC-BY-SA-4.0 许可下发布