minseok
🌌 Release BioPhys 6.0 Grand Master: 16GB (14.89GB) Gemma-4 100% Devour, Ecosystem Evolution, Solar MoE, SNN Autoregressive SDK, Dynamic PhaseVM
be99550
Raw
History Blame Contribute Delete
8.15 kB
// 🌌 [BioPhys 6.0 곡식 Rust SDK: biophys_engine::sdk] (src/sdk.rs)
// μ™ΈλΆ€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜(Tauri, Axum, CLI, Python FFI)μ—μ„œ 1쀄 μ½”λ“œλ‘œ 16GB 지평선 AIλ₯Ό κ΅¬λ™ν•˜λŠ” 개발자 ν‚€νŠΈ
use std::time::Instant;
use crate::applied_rust2026_features::StreamingTokenIterator;
use crate::dynamic_knowledge_rag::{DynamicKnowledgeRAG, DynamicDocument};
use crate::dynamic_phase_interpreter::{DynamicScriptParser, PhaseVM};
use crate::ecosystem_evolution::{MutationInjector, SubconsciousMixer, SporeArchiver};
use crate::generative_llm::{GenerativeEngine, GenerativeContext};
use crate::native_bpe_tokenizer::NativeBpeTokenizer;
use crate::parallel_engine::LargeScaleEngine;
use crate::solar_moe_router::SolarMoERouter;
use crate::tachyon_speculative::TachyonSpeculativeEngine;
use crate::token_autoregressive_snn::SpikingTokenEngine;
/// βš™οΈ [SDK ꡬ성 μ„€μ • (Builder Pattern)]
#[derive(Debug, Clone)]
pub struct BioPhysConfig {
pub lattice_size: usize, // 물리 격자 크기 (기본 256x256)
pub temperature: f32, // 생성 λ‹€μ–‘μ„± μ˜¨λ„ (0.0 ~ 1.0)
pub mutation_rate: f32, // 우주 방사선 λŒμ—°λ³€μ΄μœ¨
pub subconscious_bleed: f32, // μ„Έμ…˜ κ°„ λ¬΄μ˜μ‹ λˆ„μˆ˜μœ¨ (κΈ°λ³Έ 0.03 = 3%)
pub top_k_retrieval: usize, // RAG 인좜 λ¬Έμ„œ 수
pub lookahead_speculative: usize, // νƒ€ν‚€μ˜¨ 투기적 λ””μ½”λ”© 미래 토큰 수
}
impl Default for BioPhysConfig {
fn default() -> Self {
BioPhysConfig {
lattice_size: 256,
temperature: 0.3,
mutation_rate: 0.002,
subconscious_bleed: 0.03,
top_k_retrieval: 2,
lookahead_speculative: 4,
}
}
}
/// πŸ“¦ [SDK μ„œμˆ ν˜• 응닡 κ²°κ³Ό 객체]
#[derive(Debug, Clone)]
pub struct BioPhysResponse {
pub text: String, // μƒμ„±λœ ν…μŠ€νŠΈ
pub latency_ms: f64, // 총 처리 μ§€μ—° μ‹œκ°„ (ms)
pub routed_planet: String, // ν• λ‹Ήλœ νƒœμ–‘κ³„ 6ν–‰μ„± MoE λ‡Œ 이름
pub planet_orbit_au: f32, // ꢀ도 반경 (AU)
pub energy_level: f32, // 물리 격자 계면 μ—λ„ˆμ§€
pub is_verified: bool, // 쑰석 κ³ μ • μŒμ„± ν™˜κ° 차단 톡과 μ—¬λΆ€
pub resonance_score: f32, // 지평선 곡λͺ… μΌμΉ˜λ„
pub retrieved_docs_count: usize,// 참쑰된 RAG 지식 건수
}
/// πŸ“Š [SDK μ‹€μ‹œκ°„ ν…”λ ˆλ©”νŠΈλ¦¬ μƒνƒœ]
#[derive(Debug, Clone)]
pub struct BioPhysTelemetry {
pub active_nodes: usize, // 격자 ν™œμ„± λ…Έλ“œ 수 (65,536)
pub avg_energy: f32, // 평균 계면 μ—λ„ˆμ§€
pub total_queries_served: usize,// λˆ„μ  처리 질의 수
pub mutations_applied: usize, // λˆ„μ  λŒμ—°λ³€μ΄ μ§„ν™” 횟수
pub subconscious_sessions: usize,// λˆ„μ  λ¬΄μ˜μ‹ μ„Έμ…˜ 수
}
/// πŸš€ [BioPhys 6.0 곡식 ν΄λΌμ΄μ–ΈνŠΈ (Main SDK Entrypoint)]
pub struct BioPhysClient {
pub config: BioPhysConfig,
engine: LargeScaleEngine,
rag: DynamicKnowledgeRAG,
solar_router: SolarMoERouter,
mutator: MutationInjector,
subconscious_mixer: SubconsciousMixer,
spore_archiver: SporeArchiver,
tokenizer: NativeBpeTokenizer,
tachyon_engine: TachyonSpeculativeEngine,
spiking_token_engine: SpikingTokenEngine,
vm: PhaseVM,
total_queries: usize,
}
impl BioPhysClient {
/// 1. κΈ°λ³Έ μ„€μ •μœΌλ‘œ SDK ν΄λΌμ΄μ–ΈνŠΈ μ΄ˆκΈ°ν™” (1쀄 μ‹œμž‘)
pub fn new() -> Self {
Self::with_config(BioPhysConfig::default())
}
/// 2. μ»€μŠ€ν…€ 섀정을 μ μš©ν•˜μ—¬ SDK ν΄λΌμ΄μ–ΈνŠΈ μ΄ˆκΈ°ν™”
pub fn with_config(config: BioPhysConfig) -> Self {
let engine = LargeScaleEngine::new(config.lattice_size);
let rag = DynamicKnowledgeRAG::new("knowledge_corpus");
let solar_router = SolarMoERouter::new();
let mutator = MutationInjector::new(config.mutation_rate);
let subconscious_mixer = SubconsciousMixer::new(config.lattice_size, config.subconscious_bleed);
let spore_archiver = SporeArchiver::new();
let tokenizer = NativeBpeTokenizer::new();
let tachyon_engine = TachyonSpeculativeEngine::new(config.lattice_size, config.lookahead_speculative);
let spiking_token_engine = SpikingTokenEngine::new(config.lattice_size);
let vm = PhaseVM::new();
BioPhysClient {
config,
engine,
rag,
solar_router,
mutator,
subconscious_mixer,
spore_archiver,
tokenizer,
tachyon_engine,
spiking_token_engine,
vm,
total_queries: 0,
}
}
/// 3. [동기식 μ™„μ„±ν˜• μ§ˆμ˜μ‘λ‹΅ (Generate API)]
/// μ§ˆλ¬Έμ„ λ°›μ•„ νƒœμ–‘κ³„ λΌμš°νŒ…, RAG 인좜, λ¬΄μ˜μ‹ ν˜Όν•©, μŒμ„± ν™˜κ° 검증을 거친 μ΅œμ’… 응닡 λ°˜ν™˜
pub fn generate(&mut self, prompt: &str) -> BioPhysResponse {
let start_time = Instant::now();
self.total_queries += 1;
// 1. νƒœμ–‘κ³„ MoE 동적 λΌμš°νŒ…
let target_planet = self.solar_router.route_query(prompt);
let planet_name = target_planet.name.clone();
let planet_au = target_planet.orbit_au;
// 2. 물리 격자 동역학 μ—°μ‚° & λ¬΄μ˜μ‹ λˆ„μˆ˜ λ―Ήμ‹±
let avg_e = self.engine.step_parallel();
let mut latent = vec![avg_e; self.config.lattice_size];
self.subconscious_mixer.blend_subconscious(&mut latent);
// 3. 우주 방사선 λŒμ—°λ³€μ΄ μ‹œν—˜
let mut weights_sample = vec![0x55555555; 50];
self.mutator.inject_cosmic_mutation(&mut weights_sample, avg_e, |_| 0.521);
// 4. λΈ”λž™ν™€ 지평선 RAG 인좜
let search_results = self.rag.search_documents(prompt, self.config.top_k_retrieval);
let retrieved_docs: Vec<DynamicDocument> = search_results.into_iter().map(|(d, _)| d.clone()).collect();
let docs_count = retrieved_docs.len();
// 5. 지평선 생성 및 쑰석 κ³ μ • μŒμ„± ν™˜κ° 검증
let mode = GenerativeEngine::detect_mode(prompt);
let ctx = GenerativeContext {
prompt: prompt.to_string(),
retrieved_docs,
temperature: self.config.temperature,
mode,
};
let response_text = GenerativeEngine::generate_response(&ctx, avg_e);
let (is_verified, resonance) = self.solar_router.verify_binary_singularity(&response_text, "BioPhys 2-Bit 지평선 물리");
let latency_ms = start_time.elapsed().as_secs_f64() * 1000.0;
BioPhysResponse {
text: response_text,
latency_ms,
routed_planet: planet_name,
planet_orbit_au: planet_au,
energy_level: avg_e,
is_verified,
resonance_score: resonance,
retrieved_docs_count: docs_count,
}
}
/// 4. [μ‹€μ‹œκ°„ 토큰 슀트리밍 (Streaming API)]
/// 토큰이 μƒμ„±λ˜λŠ” μˆœκ°„ 1κ°œμ”© μ¦‰μ‹œ λ°©μΆœν•˜λŠ” Zero-Allocation 슀트림 반볡자 생성
pub fn stream_tokens<'a>(&'a mut self, max_tokens: usize) -> StreamingTokenIterator<'a> {
StreamingTokenIterator::new(&self.spiking_token_engine.vocab, max_tokens, 0)
}
/// 5. [동적 λ°”μ΄νŠΈμ½”λ“œ 슀크립트 μ‹€ν–‰ (Interpreter API)]
/// 인곡지λŠ₯이 μƒμ„±ν•œ μž„μ˜μ˜ ν…μŠ€νŠΈ 슀크립트λ₯Ό μƒŒλ“œλ°•μŠ€ VMμ—μ„œ 즉석 해석 μ‹€ν–‰
pub fn execute_script(&mut self, script: &str) -> Result<Option<f32>, String> {
let bytecodes = DynamicScriptParser::compile_script(script);
self.vm.load_program(bytecodes);
self.vm.run()
}
/// 6. [μ‹€μ‹œκ°„ ν…”λ ˆλ©”νŠΈλ¦¬ 쑰회 (Telemetry API)]
pub fn get_telemetry(&mut self) -> BioPhysTelemetry {
let avg_e = self.engine.step_parallel();
BioPhysTelemetry {
active_nodes: self.config.lattice_size * self.config.lattice_size,
avg_energy: avg_e,
total_queries_served: self.total_queries,
mutations_applied: self.mutator.total_mutations_applied,
subconscious_sessions: self.subconscious_mixer.session_count,
}
}
}