跳到主要内容

Compose

src/compose.ts 提供 composePipe(从左到右组合一元函数)以及面向 Prompt、意图、Token、搜索等场景的现成流水线。以下为每个导出函数各一例(仅类型的导出略)。

项目中的实现

  • 源码: src/compose.ts

各函数示例

composePipe

import { composePipe } from 'wssf-kage-js';

const f = composePipe(
(x: number) => x + 1,
(x: number) => String(x)
);
f(2); // => '3'

trim

import { trim } from 'wssf-kage-js';

trim(' x '); // => 'x'

removeExtraSpaces

import { removeExtraSpaces } from 'wssf-kage-js';

removeExtraSpaces('a b'); // => 'a b'

stripHtml

import { stripHtml } from 'wssf-kage-js';

stripHtml('<p>hi</p>'); // => 'hi'

sanitizePrompt

import { sanitizePrompt } from 'wssf-kage-js';

sanitizePrompt(' <b>OK</b> text ');

maskPhone

import { maskPhone } from 'wssf-kage-js';

maskPhone('13812345678');

maskEmail

import { maskEmail } from 'wssf-kage-js';

maskEmail('longname@mail.com');

safetyGate

import { safetyGate } from 'wssf-kage-js';

safetyGate('联系 13812345678 或 a@b.com');

checkFinance

import { checkFinance } from 'wssf-kage-js';

checkFinance({ text: '美元汇率' }); // => intent: 'FINANCE'

checkCoding

import { checkCoding } from 'wssf-kage-js';

checkCoding({ text: '这段代码怎么优化' }); // => intent: 'CODING'(若尚未被标为其它意图)

defaultIntent

import { defaultIntent } from 'wssf-kage-js';

defaultIntent({ text: '你好' }); // => intent: 'GENERAL'

routeIntent

import { routeIntent } from 'wssf-kage-js';

routeIntent({ text: '美元汇率怎么走' });

countTokens

import { countTokens } from 'wssf-kage-js';

countTokens({ text: 'abcd' }); // => tokens ≈ ceil(len/4)

checkLimit

import { checkLimit } from 'wssf-kage-js';

checkLimit({ text: 'x', tokens: 200 }); // => isOver: true

truncateIfNeed

import { truncateIfNeed } from 'wssf-kage-js';

truncateIfNeed({ text: 'x'.repeat(500), isOver: true });

tokenManager

import { tokenManager } from 'wssf-kage-js';

tokenManager({ text: 'x'.repeat(500) });

removeApologies

import { removeApologies } from 'wssf-kage-js';

removeApologies('抱歉,作为一个 AI 模型,我不能……');

removeAIPreach

import { removeAIPreach } from 'wssf-kage-js';

removeAIPreach('我无法提供投资建议');

formatMarkdown

import { formatMarkdown } from 'wssf-kage-js';

formatMarkdown('正文'); // 无 # 时自动加标题前缀

polishResponse

import { polishResponse } from 'wssf-kage-js';

polishResponse(' 一段回答 ');

injectRole

import { injectRole } from 'wssf-kage-js';

injectRole('审计员')('查账');

injectContext

import { injectContext } from 'wssf-kage-js';

injectContext('Q4 报表')('总结风险');

addOutputFormat

import { addOutputFormat } from 'wssf-kage-js';

addOutputFormat('用列表回答');

buildPrompt

import { buildPrompt } from 'wssf-kage-js';

buildPrompt('如何拆分组件?');

validateSchema

import { validateSchema } from 'wssf-kage-js';

validateSchema({}); // => 带 error: 'Invalid Data'

handleErrors

import { handleErrors } from 'wssf-kage-js';

handleErrors({ id: 1, error: 'x' }); // => fallback: true

logTelemetry

import { logTelemetry } from 'wssf-kage-js';

logTelemetry({ event: 'click' }); // 控制台输出 Tracking

dataPipeline

import { dataPipeline } from 'wssf-kage-js';

dataPipeline({ id: '1', name: 'ok' });

heavyFilter

import { heavyFilter } from 'wssf-kage-js';

heavyFilter([
{ priority: 10, score: 1 },
{ priority: 1, score: 99 }
]);

sortData

import { sortData } from 'wssf-kage-js';

sortData([
{ priority: 10, score: 1 },
{ priority: 10, score: 99 }
]);

limitResults

import { limitResults } from 'wssf-kage-js';

limitResults([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]);

processSearchList

import { processSearchList } from 'wssf-kage-js';

processSearchList([
{ priority: 10, score: 1, id: 'a' },
{ priority: 1, score: 99, id: 'b' }
]);

特别适合

  • Prompt 清洗
  • PII 脱敏
  • Token 管理
  • 多步数据转换