few-shot-cases-smoke.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536
  1. #!/usr/bin/env node
  2. const { loadFewshotCases, matchSimilarCases, buildFewshotReference } = require('../mcp/src/features/tihao-sourcing/few-shot-cases');
  3. function main() {
  4. // 加载真实案例库(案例导入器产物)
  5. const loaded = loadFewshotCases();
  6. assert(loaded && Array.isArray(loaded.cases) && loaded.cases.length >= 1, '应加载真实 fewshot-cases.json 案例库');
  7. // 匹配相似案例(品类匹配)
  8. const criteria = { category: loaded.cases[0].category || '', platforms: [loaded.cases[0].platform || 'xiaohongshu'], goalStrategy: { goalLabel: loaded.cases[0].goal || '' } };
  9. const similar = matchSimilarCases(loaded.cases, criteria);
  10. assert(Array.isArray(similar), 'matchSimilarCases 应返回数组');
  11. // buildFewshotReference 结构
  12. const reference = buildFewshotReference(criteria);
  13. assert(reference.status === 'loaded', '应返回 loaded 状态');
  14. assert(reference.totalCases === loaded.cases.length, 'totalCases 应一致');
  15. assert(Array.isArray(reference.cases), '应返回 cases 数组');
  16. // explicitPath 不存在时应 fallback 到默认案例库(而非报错)
  17. const fallback = buildFewshotReference({ category: '无' }, { fewshotCasesPath: 'e:/nonexistent/fewshot-cases.json' });
  18. assert(fallback.status === 'loaded', 'explicitPath 不存在时应 fallback 到默认案例库');
  19. console.log(JSON.stringify({
  20. ok: true,
  21. loadedCases: loaded.cases.length,
  22. matchedCases: similar.length,
  23. referenceStatus: reference.status
  24. }, null, 2));
  25. }
  26. function assert(condition, message) {
  27. if (!condition) throw new Error(message);
  28. }
  29. if (require.main === module) main();