53 lines
2.2 KiB
TypeScript
53 lines
2.2 KiB
TypeScript
/**
|
|
* Интеграционный тест полного пайплайна (P1).
|
|
* Проверка: LLM (gemma4:E4B) → parseSparkOutput → memory → consolidation.
|
|
* Spark X2.5-4B в этом Ollama не грузится (unknown architecture), поэтому
|
|
* временно используем gemma4:E4B.
|
|
*/
|
|
import { SparkLLMClient } from './src/mind.js';
|
|
import { MemorySystem } from './src/memory.js';
|
|
import { OllamaEmbeddingClient } from './src/embedding.js';
|
|
import { DEFAULT_PERSONA } from './src/persona.js';
|
|
|
|
(async () => {
|
|
const llm = new SparkLLMClient('http://localhost:11434', 'gemma4:E4B');
|
|
const embedding = new OllamaEmbeddingClient('http://localhost:11434');
|
|
const memory = new MemorySystem(10, embedding);
|
|
|
|
const systemPrompt = 'Ты ассистент. Отвечай JSON: {thoughts, emotion:{valence,arousal}, decision:{reply, subAgent}}';
|
|
const context = 'Ты думал про Yandex Direct. Напиши мысли и решение.';
|
|
|
|
console.log('[test] LLM generate...');
|
|
const result = await llm.generate(context, systemPrompt);
|
|
console.log('[test] thoughts:', JSON.stringify(result.thoughts));
|
|
console.log('[test] emotion:', JSON.stringify(result.emotion));
|
|
console.log('[test] decision:', JSON.stringify(result.decision));
|
|
|
|
// Raw-запрос, чтобы увидеть что реально вернула модель
|
|
const raw = await fetch('http://localhost:11434/v1/chat/completions', {
|
|
method: 'POST',
|
|
headers: { 'Content-Type': 'application/json' },
|
|
body: JSON.stringify({
|
|
model: 'gemma4:E4B',
|
|
response_format: { type: 'json_object' },
|
|
messages: [
|
|
{ role: 'system', content: 'Отвечай только JSON: {thoughts, emotion:{valence,arousal}, decision:{reply}}' },
|
|
{ role: 'user', content: context },
|
|
],
|
|
temperature: 0.7,
|
|
max_tokens: 512,
|
|
}),
|
|
});
|
|
const rawText = await (await raw.json()).choices?.[0]?.message?.content ?? '';
|
|
console.log('[test] RAW:', JSON.stringify(rawText));
|
|
|
|
console.log('[test] addThought...');
|
|
memory.addThought(result.thoughts);
|
|
|
|
console.log('[test] consolidation...');
|
|
await memory.consolidate(memory.recentThoughts());
|
|
console.log('[test] long-term size:', memory['longTerm'].length);
|
|
|
|
console.log('[test] OK — полный пайплайн работает');
|
|
})();
|