minseok
π Release BioPhys 6.0 Grand Master: 16GB (14.89GB) Gemma-4 100% Devour, Ecosystem Evolution, Solar MoE, SNN Autoregressive SDK, Dynamic PhaseVM
be99550 | // π [BioPhys ν΅ν© λ§μ€ν° μ§μ λ°±κ³Όμ¬μ ] (src/knowledge_base.rs) | |
| pub struct KnowledgeEntry { | |
| pub domain: String, | |
| pub keyword: String, | |
| pub title_or_name: String, | |
| pub description: String, | |
| pub core_insight: String, | |
| } | |
| pub struct MultiDomainKnowledgeBase { | |
| pub entries: Vec<KnowledgeEntry>, | |
| } | |
| impl MultiDomainKnowledgeBase { | |
| pub fn new() -> Self { | |
| let mut kb = MultiDomainKnowledgeBase { entries: Vec::new() }; | |
| // 1. μμ°κ³Όν & λλλ§ν¬ λ Όλ¬Έ (2010~2026) | |
| kb.add("μμ°κ³Όν", "νμ€λ³΄μ", "CERN νμ€ λ³΄μ λ°κ²¬ (2012)", "λͺ¨λ κΈ°λ³Έ μ μμ μ§λμ λΆμ¬νλ νμ€ λ©μ»€λμ¦μ μ€μ‘΄ μ μ¦ (λ Έλ²¨λ¬Όλ¦¬νμ)", "μ μ물리ν νμ€λͺ¨νμ λ§μ§λ§ νΌμ¦ μμ±"); | |
| kb.add("μμ°κ³Όν", "μ€λ ₯ν", "LIGO μ€λ ₯ν μ§μ κ²μΆ (2016)", "13μ΅ κ΄λ μ λΈλν μΆ©λμ΄ μΌμΌν¨ μ곡κ°μ μΆλ μμ κ°μκ³λ‘ μ΅μ΄ κ΄μΈ‘", "μμΈμνμΈ μΌλ°μλμ± 100λ μμΈ‘ μ μ¦ λ° μ€λ ₯ν μ²λ¬Έν κ°λ§"); | |
| kb.add("μμ°κ³Όν", "mRNA", "mRNA λ΄ν΄λ μ€μλ λ³ν λ°±μ (Kariko & Weissman, 2020)", "μλμ 리λ λ³νμΌλ‘ μ μ² λ©΄μ κ³Όλ―Ό λ°μμ μ΅μ νμ¬ μΈλ₯ μ΅μ΄ mRNA λ°±μ μμ©ν", "κ°μΌλ³ λ° μ°¨μΈλ μ λ°±μ νλ«νΌ ν립"); | |
| kb.add("μμ°κ³Όν", "ν΅μ΅ν©", "NIF λ μ΄μ ν΅μ΅ν© μμλμ§ μ΄λ μ ν (2022)", "ν¬μ λ μ΄μ μλμ§(2.05MJ)λ³΄λ€ λ§μ ν΅μ΅ν© μλμ§(3.15MJ) μμ± λ¬μ±", "μΈκ³΅ νμ 무ν μ²μ μλμ§ μμ©νμ μμ¬μ μ΄μ ν"); | |
| // 2. νλ‘κ·Έλλ° μΈμ΄ (Languages) | |
| kb.add("νλ‘κ·Έλλ°μΈμ΄", "Rust", "Rust (λ¬μ€νΈ)", "κ°λΉμ§ 컬λ ν°(GC) μμ΄ μ»΄νμΌ νμ μμ κΆ(Ownership)κ³Ό λΉλ¦Ό κ²μ¬κΈ°λ‘ 100% λ©λͺ¨λ¦¬ μμ μ± λ³΄μ₯", "무λΉμ© μΆμνμ μ€λ λ μμ λμμ±(Fearless Concurrency)"); | |
| kb.add("νλ‘κ·Έλλ°μΈμ΄", "C++", "C/C++", "νλμ¨μ΄μ λ©λͺ¨λ¦¬ ν¬μΈν°λ₯Ό μ§μ μ μ΄νλ©° RAIIμ ν νλ¦Ώ λ©ννλ‘κ·Έλλ° μ§μ", "κ·Ήνμ μ€ν μ±λ₯μ μꡬνλ κ²μ μμ§, κ·Έλν½μ€, 컀λ νμ€"); | |
| kb.add("νλ‘κ·Έλλ°μΈμ΄", "Python", "Python (νμ΄μ¬)", "κ°κ²°ν λ¬Έλ²κ³Ό C-νμ₯ λͺ¨λ κ²°ν©μΌλ‘ μ μΈκ³ AI/λ°μ΄ν° κ³Όν μνκ³ μ£Όλ", "λμ νμ΄νκ³Ό νλΆν AI νλ μμν¬(PyTorch) μ§μ"); | |
| // 3. μ€νμμ€ λΌμ΄λΈλ¬λ¦¬ (Libraries) | |
| kb.add("μ€νμμ€", "Tokio", "Tokio (λΉλκΈ° λ°νμ)", "μμ νμΉκΈ°(Work-Stealing) μ€μΌμ€λ¬μ non-blocking I/O μ΄λ²€νΈ 루νλ‘ μμλ§ λμ μ°κ²° μ²λ¦¬", "Rust κ³ μ±λ₯ λΉλκΈ° λ€νΈμν¬ νμ€"); | |
| kb.add("μ€νμμ€", "vLLM", "vLLM (μ΄κ³ μ LLM μΆλ‘ )", "PagedAttention μκ³ λ¦¬μ¦μΌλ‘ KV μΊμ λλΉλ₯Ό 0%λ‘ μ€μ΄κ³ μ°μ λ°°μΉ(Continuous Batching) μ§μ", "LLM μλΉ μ²λ¦¬λ 2~4λ°° κ·Ήλν"); | |
| kb.add("μ€νμμ€", "Tauri", "Tauri (κ²½λ λ°μ€ν¬ν± νλ μμν¬)", "λ¬΄κ±°μ΄ Chromium λμ OS λ€μ΄ν°λΈ μΉλ·°μ Rust λ°±μλ IPC ν΅μ μ κ²°ν©ν μ΄κ²½λ μ± νλ μμν¬", "μ MB λ―Έλ§μ μ΄κ²½λ λ°μ΄λ리μ λ©λͺ¨λ¦¬ ν¨μ¨"); | |
| // 4. λ―Έμ μ¬μ‘° & UI/UX λμμΈ (Art & Design) | |
| kb.add("λ―Έμ /λμμΈ", "λν°λμ€", "λν° λμ€μ κ΅Ώ λμμΈ 10κ³λͺ ", "'μ’μ λμμΈμ κ°λ₯ν ν μ΅μνμ λμμΈ(Less, but better)'μ΄λΌλ 10λ μμΉ", "μ ν λ―Έλλ©λ¦¬μ¦κ³Ό νλ μ μκΈ°κΈ° UI λ¨μνμ μ λ κΈ°μ€"); | |
| kb.add("λ―Έμ /λμμΈ", "λ°μ°νμ°μ€", "λ°μ°νμ°μ€μ κΈ°λ₯μ£Όμ", "'ννλ κΈ°λ₯μ λ°λ₯Έλ€(Form follows function)'λ₯Ό λ°νμΌλ‘ κΈ°ννμ λ¨μλ―Έμ λλμμ° μ΅ν©", "νλ κ·Έλν½ κ·Έλ¦¬λ μμ€ν λ° λͺ¨λ λμμΈμ κΈ°ν"); | |
| kb.add("λ―Έμ /λμμΈ", "κΈλμ€λͺ¨νΌμ¦", "κΈλμ€λͺ¨νΌμ¦ (Liquid Glass UI)", "λ°ν¬λͺ λ°°κ²½ λΈλ¬(Backdrop blur), ν λ리 κ΄ν, Z-μΆ λ€μΈ΅ κ·Έλ¦Όμλ‘ λ°ν¬λͺ μ‘체 μ 리 μ§κ° λΆμ¬", "λ€ν¬ λͺ¨λ νκ²½μμ μ 체μ μκ° κ³μΈ΅ ꡬ쑰μ λ―Έλμ§ν₯μ μ¬λ―Έμ± μ 곡"); | |
| // 5. νκ΅μ΄ μ΄ν & λν | |
| kb.add("νκ΅μ΄μ΄ν", "μ€μ¬", "μμ°λ¦¬λ§ μ€μ¬", "νλΉμ΄λ λ¬λΉμ λΉμΉμ΄ λ°μ§μ΄λ μλ¦λ€μ΄ μλ¬Όκ²°", "μμ°μ λΉκ³Ό λ¬Όκ²°μ΄ λΉμ΄λ΄λ κ³ μ ν νκ΅μ λ―Έν"); | |
| kb.add("νκ΅μ΄μ΄ν", "μλλΈλ‘", "μμ°λ¦¬λ§ μλλΈλ‘", "λͺ¨λ₯΄λ μ¬μ΄μ μ‘°κΈμ© μ‘°κΈμ© μΌμ΄ μ§νλλ λͺ¨μ", "볡μ‘κ³μ μ μ§μ μκΈ°μ‘°μ§νμ μμ°μ€λ¬μ΄ λ³νμ μμ "); | |
| kb | |
| } | |
| fn add(&mut self, domain: &str, keyword: &str, title_or_name: &str, description: &str, core_insight: &str) { | |
| self.entries.push(KnowledgeEntry { | |
| domain: domain.to_string(), | |
| keyword: keyword.to_string(), | |
| title_or_name: title_or_name.to_string(), | |
| description: description.to_string(), | |
| core_insight: core_insight.to_string(), | |
| }); | |
| } | |
| pub fn search(&self, prompt: &str) -> Vec<&KnowledgeEntry> { | |
| let normalized = prompt.to_lowercase().replace(" ", ""); | |
| self.entries.iter().filter(|e| { | |
| let k_norm = e.keyword.to_lowercase().replace(" ", ""); | |
| let t_norm = e.title_or_name.to_lowercase().replace(" ", ""); | |
| normalized.contains(&k_norm) || normalized.contains(&t_norm) || | |
| (prompt.contains("νμ€") && e.keyword == "νμ€λ³΄μ") || | |
| (prompt.contains("μ€λ ₯ν") && e.keyword == "μ€λ ₯ν") || | |
| (prompt.contains("Rust") && e.keyword == "Rust") || | |
| (prompt.contains("λμμΈ") && e.domain == "λ―Έμ /λμμΈ") || | |
| (prompt.contains("λΌμ΄λΈλ¬λ¦¬") && e.domain == "μ€νμμ€") | |
| }).collect() | |
| } | |
| } | |