UNPKG

@promptx/cli

Version:

DPML-powered AI prompt framework - Revolutionary AI-First CLI system based on Deepractice Prompt Markup Language. Build sophisticated AI agents with structured prompts, memory systems, and execution frameworks.

172 lines (152 loc) 5.2 kB
/** * 测试多个独立 schema 的 prime 功能 * 验证无关联的多个知识领域如何在语义网络中表现 */ const path = require('path') const { Cognition } = require('../lib/core/cognition') const { Engram } = require('../lib/core/cognition/engram/Engram') async function testMultipleSchemas() { console.log('🧪 测试多个独立 Schema 的 Prime 功能...\n') try { // 测试配置 const testConfig = { longTermPath: path.join(__dirname, 'test-data-multi', 'longterm'), semanticPath: path.join(__dirname, 'test-data-multi', 'semantic') } // 创建 Cognition 实例 const cognition = new Cognition(testConfig) console.log('✅ Cognition 实例创建成功\n') // 1. 添加完全独立的知识领域 console.log('1️⃣ 添加多个独立的知识领域:') const independentMemories = [ { content: '烹饪技巧:如何制作完美的意大利面', schema: `mindmap root((烹饪)) 意大利菜 意大利面 选材 烹煮技巧 酱汁搭配 披萨 面团制作 烘烤温度 中式料理 炒菜技巧 火候掌握` }, { content: '量子物理基础概念', schema: `mindmap root((量子物理)) 基础概念 波粒二象性 不确定性原理 量子纠缠 应用领域 量子计算 量子通信` }, { content: '瑜伽与冥想练习', schema: `mindmap root((身心健康)) 瑜伽 体式练习 站立体式 坐姿体式 呼吸法 冥想 正念冥想 观想冥想` }, { content: '区块链技术原理', schema: `mindmap root((区块链)) 核心技术 分布式账本 共识机制 密码学 应用场景 加密货币 智能合约` } ] // 记住这些独立的内容(使用新的简化接口) independentMemories.forEach((memory, index) => { cognition.remember(memory.content, memory.schema) console.log(`✅ 记忆 ${index + 1}: "${memory.content}"`) }) console.log('\n') // 2. 测试 prime 结果 console.log('2️⃣ 测试多个独立 Schema 的 Prime 结果:') const primeResult = await cognition.prime() console.log('```mermaid') console.log(primeResult) console.log('```\n') // 3. 分析结果 console.log('3️⃣ 分析语义网络结构:') // 检查各个独立主题是否存在 const topics = ['烹饪', '量子物理', '身心健康', '区块链'] topics.forEach(topic => { const exists = primeResult.includes(topic) console.log(` - ${topic}: ${exists ? '✅ 存在' : '❌ 不存在'}`) }) console.log('\n') // 4. 添加一个可能产生关联的记忆 console.log('4️⃣ 添加一个可能关联的记忆:') const bridgingMemory = { content: '健康饮食与运动的重要性', schema: `mindmap root((健康生活)) 饮食 营养均衡 烹饪方法 运动 瑜伽练习 有氧运动` } cognition.remember(bridgingMemory.content, bridgingMemory.schema) console.log(`✅ 添加桥接记忆: "${bridgingMemory.content}"\n`) // 5. 再次测试 prime console.log('5️⃣ 添加桥接记忆后的 Prime 结果:') const primeResultAfterBridge = await cognition.prime() console.log('```mermaid') console.log(primeResultAfterBridge) console.log('```\n') // 6. 测试保存多个独立的语义网络 console.log('6️⃣ 测试是否可以识别多个独立的语义子图:') // 计算根节点数量(简单方式) const rootMatches = primeResultAfterBridge.match(/root\)/g) const rootCount = rootMatches ? rootMatches.length : 0 console.log(` - 检测到的根节点数量: ${rootCount}`) // 分析节点之间的连接 console.log(' - 分析节点连接情况...') const lines = primeResultAfterBridge.split('\n') const indentLevels = new Set() lines.forEach(line => { const indent = line.match(/^\s*/)[0].length if (line.trim()) indentLevels.add(indent) }) console.log(` - 检测到 ${indentLevels.size} 个不同的缩进层级`) console.log('\n✅ 测试完成!') // 总结 console.log('\n📊 测试总结:') console.log('- 多个独立的 schema 会被合并到同一个语义网络中') console.log('- 每个独立的知识领域保持其原有结构') console.log('- 如果存在共同概念,可能会产生连接') console.log('- 当前实现将所有 schema 合并到一个 global-semantic 网络') console.log('\n💡 建议:') console.log('- 未来可以考虑支持多个独立的语义网络') console.log('- 或者在 prime 结果中明确标识不同的知识子图') } catch (error) { console.error('❌ 测试失败:', error.message) console.error(error.stack) } } // 如果直接运行此文件,执行测试 if (require.main === module) { testMultipleSchemas() } module.exports = { testMultipleSchemas }