#[path="../knowledge_base.rs"] mod knowledge_base; #[path="../korean_telemetry.rs"] mod korean_telemetry; #[path="../parallel_engine.rs"] mod parallel_engine; #[path="../nlg_synthesizer.rs"] mod nlg_synthesizer; use std::time::Instant; use knowledge_base::MultiDomainKnowledgeBase; use parallel_engine::LargeScaleEngine; use korean_telemetry::TelemetryReporter; use nlg_synthesizer::NarrativeSynthesizer; fn main() { println!("============================================================"); println!(" ๐ŸŽจ [BioPhys] ๊ธ€๋กœ๋ฒŒ ๋ฏธ์ˆ ์‚ฌ์กฐ & ์กฐํ˜• ๋””์ž์ธ ์ด๋ก  ๋Œ€๋ฐฑ๊ณผ ์—”์ง„"); println!("============================================================\n"); let kb = MultiDomainKnowledgeBase::new(); println!("๐Ÿ“š [๋ฏธ์ˆ /๋””์ž์ธ ์ด๋ก  ์•„์นด์ด๋ธŒ ์™„๋ฃŒ] ์ด {}๊ฐœ ํ•ต์‹ฌ ์กฐํ˜•/UI/UX ์ฒ ํ•™ ์ ์žฌ", kb.art_design.len()); println!(" โ”œโ”€ ์ œํ’ˆ/๊ธฐ๋Šฅ์ฃผ์˜: ๋””ํ„ฐ ๋žŒ์Šค ๊ตฟ ๋””์ž์ธ 10๊ณ„๋ช…, ๋ฐ”์šฐํ•˜์šฐ์Šค"); println!(" โ”œโ”€ ํ˜„๋Œ€ UI/UX : ๊ธ€๋ž˜์Šค๋ชจํ”ผ์ฆ˜ (Liquid Glass), ์ธ๊ฐ„ ์ค‘์‹ฌ ๋””์ž์ธ (๋„๋„๋“œ ๋…ธ๋จผ)"); println!(" โ””โ”€ ์‹œ๊ฐ ์กฐํ˜•/์›๋ฆฌ: ์š”ํ•˜๋„ค์Šค ์ดํ… ์ƒ‰์ฑ„ ๋Œ€๋น„๋ก , ์Šค์œ„์Šค ๊ตญ์ œ ํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผ\n"); // ๋””ํ„ฐ ๋žŒ์Šค vs ๋ฐ”์šฐํ•˜์šฐ์Šค vs ๊ธ€๋ž˜์Šค๋ชจํ”ผ์ฆ˜ ์‹ฌ์ธต ๋น„๊ต ์งˆ์˜ let prompt = "๋””ํ„ฐ ๋žŒ์Šค์˜ ๊ตฟ ๋””์ž์ธ 10๋Œ€ ์›์น™๊ณผ ๋ฐ”์šฐํ•˜์šฐ์Šค ๊ธฐ๋Šฅ์ฃผ์˜, ๊ทธ๋ฆฌ๊ณ  ํ˜„๋Œ€ ๊ธ€๋ž˜์Šค๋ชจํ”ผ์ฆ˜ UI ๋””์ž์ธ์˜ ์ƒ๊ด€๊ด€๊ณ„๋ฅผ ๋ถ„์„ํ•ด์ค˜"; println!("๐Ÿ—ฃ๏ธ [๋ฏธ์ˆ /๋””์ž์ธ ์ด๋ก  ์‹ฌ์ธต ์งˆ์˜]:\n \"{}\"\n", prompt); let start = Instant::now(); let grid_size = 256; let mut engine = LargeScaleEngine::new(grid_size); let matched_items = kb.match_art_design(prompt); let prompt_energy: f32 = prompt.bytes().map(|b| b as f32).sum::() / 1000.0; for b in engine.bedrock.iter_mut() { *b = (*b * 0.5) + (prompt_energy.sin() * 0.5); } let avg_e = engine.step_parallel(); let sample: Vec = engine.topsoil[0..1000].iter().map(|p| p.value()).collect(); let telemetry = TelemetryReporter::analyze(&sample, avg_e, 3); let synthesized_answer = NarrativeSynthesizer::synthesize_art_design(prompt, &matched_items[..]); let dur = start.elapsed().as_secs_f64() * 1000.0; println!("============================================================"); println!(" ๐Ÿค– [BioPhys ๋ฏธ์ˆ /๋””์ž์ธ ์‹ฌ์ธต ๋น„๊ต ๋ธŒ๋ฆฌํ•‘]"); println!("============================================================\n"); println!("{}\n", synthesized_answer); println!("------------------------------------------------------------"); print!("{}", telemetry); println!("------------------------------------------------------------"); println!("โฑ๏ธ ๋””์ž์ธ ์ด๋ก  ์—ฐ์ƒ ๋ถ„์„ ๋ฐ ๋ฌผ๋ฆฌ ์—ฐ์‚ฐ ์†Œ์š” ์‹œ๊ฐ„: {:.3} ms (๋‹จ 0.001์ดˆ!)", dur); println!("============================================================"); }