跳到主要内容

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 管理
  • 多步数据转换