# MarkBase 实施优先级清单 ## Phase 1: 必需功能(4-6天) ### ✅ Task 1: Tokenizer集成(2-3天) **文件**: - `Sources/G12B/Tokenizer/Tokenizer.swift` (协议) - `Sources/G12B/Tokenizer/SentencePieceTokenizer.swift` (实现) - `Sources/G12B/Tokenizer/TokenizerLoader.swift` (加载器) **关键API**: ```swift public protocol Tokenizer { func encode(text: String) -> [Int] func decode(tokens: [Int]) -> String } ``` **测试**: - encode/decode往返验证 - Gemma tokenizer加载 - 特殊token处理 **完成标志**: - ✅ 可直接输入文本prompt - ✅ 输出可直接显示文本 --- ### ✅ Task 2: 流式输出(1天) **文件**: - `Sources/G12B/Generator/StreamingGenerator.swift` **关键API**: ```swift public func generate(prompt: String) -> AsyncStream ``` **测试**: - async stream正确输出 - 实时token生成验证 **完成标志**: - ✅ token-by-token实时显示 --- ### ✅ Task 3: 采样策略(1-2天) **文件**: - `Sources/G12B/Sampling/Sampler.swift` - `Sources/G12B/Sampling/SamplingConfig.swift` - `Sources/G12B/Sampling/Softmax.swift` (Metal kernel) **关键API**: ```swift public struct SamplingConfig { let temperature: Float let topK: Int? let topP: Float? } public func sample(logits: [Float], config: SamplingConfig) -> Int ``` **测试**: - Temperature效果验证 - Top-k/top-p过滤正确 - 生成质量对比 **完成标志**: - ✅ 多种采样策略可用 - ✅ 生成质量可控 --- ## Phase 2: 重要功能(5-7天) ### ⭐ Task 4: HTTP API(3-4天) **文件**: - `Sources/G12B/API/InferenceAPI.swift` - `Sources/G12B/API/APIModels.swift` - `Sources/G12B/API/Routes.swift` **关键API**: ```swift POST /generate { prompt: String, maxTokens: Int } POST /stream { prompt: String } -> WebSocket ``` **依赖**:Hummingbird(轻量HTTP框架) **完成标志**: - ✅ REST endpoint可用 - ✅ API文档完善 --- ### ⭐ Task 5: 并发支持(2-3天) **文件**: - `Sources/G12B/Concurrent/ConcurrentGenerator.swift` - `Sources/G12B/Concurrent/RequestQueue.swift` **关键API**: ```swift public func generateBatch(prompts: [String]) async throws -> [String] ``` **完成标志**: - ✅ 多request并发处理 --- ## Phase 3: 可选功能(7-10天) ### 📦 Task 6: 模型自动下载(2-3天) **完成标志**:自动从HuggingFace下载 --- ### 📦 Task 7: iOS/macOS应用模板(5-7天) **完成标志**:SwiftUI Chat应用示例 --- ## 实施决策 **推荐**:Phase 1(4-6天) **目标**: - 教育研究工具定位 - Swift生态特色 - 完整文本生成体验 **放弃**: - Phase 3(投入产出低) - 生产级竞争(定位错位) --- ## 开始信号 **用户确认**: - 选择Phase 1实施? - 选择Phase 1+2完整? - 选择暂停? **下一步**: - 等待用户决策 - 开始实施选定方案