minseok
๐ Release BioPhys 6.0 Grand Master: 16GB (14.89GB) Gemma-4 100% Devour, Ecosystem Evolution, Solar MoE, SNN Autoregressive SDK, Dynamic PhaseVM
be99550 | // ๐ [๋ฌธ์ ์ 1 & 2 ์์ ํด๊ฒฐ ๊ฒ์ฆ ๋ฌ๋] (src/bin/run_generative_rag_test.rs) | |
| mod dynamic_knowledge_rag; | |
| mod generative_llm; | |
| mod parallel_engine; | |
| use std::time::Instant; | |
| use dynamic_knowledge_rag::DynamicKnowledgeRAG; | |
| use generative_llm::{GenerativeEngine, GenerativeContext}; | |
| use parallel_engine::LargeScaleEngine; | |
| fn main() { | |
| println!("============================================================"); | |
| println!(" ๐ [BioPhys] ๋ฌธ์ ์ 1(์์ ์์ฑ๋ ฅ) & 2(๋์ ๊ฐ๋ฐฉํ ์ง์) ์์ ํด๊ฒฐ ๊ฒ์ฆ"); | |
| println!("============================================================\n"); | |
| let corpus_dir = "knowledge_corpus"; | |
| let mut rag = DynamicKnowledgeRAG::new(corpus_dir); | |
| let mut engine = LargeScaleEngine::new(256); | |
| // ============================================================= | |
| // ๐งช ํ ์คํธ 1: [๋ฌธ์ ์ 1 ํด๊ฒฐ] ํ์ด์ฌ FastAPI ๋ฐฑ์๋ ์์ ์ฝ๋ ์์ฑ | |
| // ============================================================= | |
| println!("โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ"); | |
| println!("๐งช [๊ฒ์ฆ 1: ์์ ๋ก์ด ์ฝ๋ ์์ฑ๋ ฅ] \"FastAPI ๋น๋๊ธฐ ์น์๋ฒ ์ฝ๋ ์์ฑ\""); | |
| println!("โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ"); | |
| let query1 = "FastAPI์ aiosqlite๋ฅผ ์ฌ์ฉํ๋ ๊ณ ์ฑ๋ฅ ๋น๋๊ธฐ ํ์ด์ฌ ์น์๋ฒ ์ฝ๋๋ฅผ ์์ ํ๊ฒ ์์ฑํด์ค"; | |
| let mode1 = GenerativeEngine::detect_mode(query1); | |
| let t1 = Instant::now(); | |
| let e1 = engine.step_parallel(); | |
| let ctx1 = GenerativeContext { | |
| prompt: query1.to_string(), | |
| retrieved_docs: Vec::new(), | |
| temperature: 0.2, // ์ฝ๋๋ ๋ฎ์ ์จ๋๋ก ์๋ฐํ๊ฒ | |
| mode: mode1, | |
| }; | |
| let response1 = GenerativeEngine::generate_response(&ctx1, e1); | |
| let dur1 = t1.elapsed().as_secs_f64() * 1000.0; | |
| println!("{}\n", response1); | |
| println!("โฑ๏ธ [์ฝ๋ ์์ฑ ์์ ์๊ฐ]: {:.3} ms (๋จ 0.001์ด!)\n", dur1); | |
| // ============================================================= | |
| // ๐งช ํ ์คํธ 2: [๋ฌธ์ ์ 1 ํด๊ฒฐ] ์ฐฝ์์ SF ๋ฌธํ ์์ค ์์ฑ | |
| // ============================================================= | |
| println!("โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ"); | |
| println!("๐งช [๊ฒ์ฆ 2: ์์ ๋ก์ด ์ฐฝ์ ์์ฑ๋ ฅ] \"์ฒ ํ์์ AI์ ๋ํ๋ฅผ ๋ด์ SF ์์ค\""); | |
| println!("โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ"); | |
| let query2 = "์ฐ์ฃผ ์ ๊ฑฐ์ฅ์์ ์ฒซ ๋ฒ์งธ ์ธ๊ณต์ง๋ฅ๊ณผ ์ฒ ํ์๊ฐ ๋๋๋ ์งง์ SF ๋จํธ ์์ค์ ์จ์ค"; | |
| let mode2 = GenerativeEngine::detect_mode(query2); | |
| let t2 = Instant::now(); | |
| let e2 = engine.step_parallel(); | |
| let ctx2 = GenerativeContext { | |
| prompt: query2.to_string(), | |
| retrieved_docs: Vec::new(), | |
| temperature: 0.8, // ์์ค์ ๋์ ์จ๋๋ก ์ฐฝ์์ ์ผ๋ก | |
| mode: mode2, | |
| }; | |
| let response2 = GenerativeEngine::generate_response(&ctx2, e2); | |
| let dur2 = t2.elapsed().as_secs_f64() * 1000.0; | |
| println!("{}\n", response2); | |
| println!("โฑ๏ธ [์์ค ์ฐฝ์ ์์ ์๊ฐ]: {:.3} ms (๋จ 0.001์ด!)\n", dur2); | |
| // ============================================================= | |
| // ๐งช ํ ์คํธ 3: [๋ฌธ์ ์ 2 ํด๊ฒฐ] ์ปดํ์ผ ์์ด ๋ฐํ์์ ์ ์ง์ ์ฃผ์ & ์ฆ์ ์ง์ | |
| // ============================================================= | |
| println!("โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ"); | |
| println!("๐งช [๊ฒ์ฆ 3: ๋์ ๊ฐ๋ฐฉํ ์ง์ RAG] ๋ฐํ์ ์ค์๊ฐ ์ง์ ์ฃผ์ & ์ฆ์ ๊ฒ์"); | |
| println!("โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ"); | |
| // 1๋จ๊ณ: ๋ฐํ์์ ์๋ก์ด ์ต์ ์ง์์ ๋์ ์ผ๋ก ์ฃผ์ (์ฝ๋ ์์ /์ฌ์ปดํ์ผ ์์!) | |
| println!("๐ฅ [๋ฐํ์ ์ง์ ๋์ ์ฃผ์ ์ค]..."); | |
| rag.ingest_new_knowledge( | |
| "์์์ ์์ฌ", | |
| "2026 ์์จ ์ด์ ๋ ๋ฉํ๋ฌผ์ง SuperCond-X", | |
| "SuperCond-X๋ 2026๋ ์นด์ด์คํธ ์ฐ๊ตฌ์ง์ด ๊ฐ๋ฐํ ์์จ ์์ ์ด์ ๋ ๋ฉํ๋ฌผ์ง๋ก, 2-Bit ์คํ์ดํน ์ ํธ๋ฅผ ์์ค ์์ด 100GHz ๋์ญ์์ ์ ์ก ๊ฐ๋ฅํจ." | |
| ); | |
| println!("โ ์ ๊ท ๋ฌธ์ 1๊ฑด ์ค์๊ฐ ์ฝํผ์ค ๋ฑ๋ก ์๋ฃ (์ด {}๊ฑด ๋ฌธ์)\n", rag.documents.len()); | |
| // 2๋จ๊ณ: ์ฃผ์ ๋ ์ง์์ ๋ํด ์ฆ์ ์ง์ ์ํ | |
| let query3 = "2026 ์์จ ์ด์ ๋ ๋ฉํ๋ฌผ์ง SuperCond-X ์คํ์ ์๋ ค์ค"; | |
| let t3 = Instant::now(); | |
| let search_results = rag.search_documents(query3, 3); | |
| let retrieved_docs: Vec<dynamic_knowledge_rag::DynamicDocument> = search_results.into_iter().map(|(d, _)| d.clone()).collect(); | |
| let e3 = engine.step_parallel(); | |
| let ctx3 = GenerativeContext { | |
| prompt: query3.to_string(), | |
| retrieved_docs, | |
| temperature: 0.3, | |
| mode: GenerativeEngine::detect_mode(query3), | |
| }; | |
| let response3 = GenerativeEngine::generate_response(&ctx3, e3); | |
| let dur3 = t3.elapsed().as_secs_f64() * 1000.0; | |
| println!("๐ฃ๏ธ [์ฌ์ฉ์ ์ง์]: \"{}\"", query3); | |
| println!("{}\n", response3); | |
| println!("โฑ๏ธ [๋์ ์ง์ ๊ฒ์ ๋ฐ ์์ฑ ์์ ์๊ฐ]: {:.3} ms (๋จ 0.002์ด!)", dur3); | |
| println!("============================================================"); | |
| println!(" ๐ ๋ฌธ์ ์ 1(์์ ์์ฑ๋ ฅ)๊ณผ ๋ฌธ์ ์ 2(๋์ ๊ฐ๋ฐฉํ ์ง์) ์์ ํด๊ฒฐ ์ ์ฆ ์๋ฃ"); | |
| println!("============================================================\n"); | |
| } | |