|
1 | 1 | package fastaireasoner; |
2 | 2 |
|
3 | 3 | import fastai.AI; |
| 4 | +import fastai.AIRequest; |
| 5 | +import fastai.AIResponse; |
| 6 | +import fastai.Usage; |
4 | 7 |
|
5 | 8 | import java.util.List; |
| 9 | +import java.util.function.Consumer; |
6 | 10 |
|
7 | 11 | public final class Demo { |
8 | 12 | public static void main(String[] args) { |
9 | 13 | System.out.println("================================================="); |
10 | 14 | System.out.println(" FastAIReasoner - Cognitive Planning Demo "); |
11 | 15 | System.out.println("================================================="); |
12 | 16 |
|
13 | | - // Simulated high-speed AI engine for deterministic demo verification |
| 17 | + // High-speed simulated AI client implementing the unified FastAI interface |
14 | 18 | AI mockAI = new AI() { |
15 | 19 | @Override |
16 | | - public String ask(String prompt) { |
17 | | - return "1. Define interface\n2. Implement lock-free queue\n3. Add unit tests"; |
| 20 | + public AIResponse generate(AIRequest request) { |
| 21 | + String sys = request.systemPrompt; |
| 22 | + |
| 23 | + if (sys != null && sys.contains("strategic solution explorer")) { |
| 24 | + return new AIResponse("Candidate 1: Array-based ring buffer\nCandidate 2: Linked node concurrent queue\nCandidate 3: Disruptor pattern ring", Usage.ZERO, 0.0); |
| 25 | + } |
| 26 | + if (sys != null && sys.contains("evaluation judge")) { |
| 27 | + return new AIResponse("Selected Approach: Candidate 3 (Disruptor pattern) for lowest memory latency and zero lock contention.", Usage.ZERO, 0.0); |
| 28 | + } |
| 29 | + return new AIResponse("1. Define interface\n2. Implement lock-free queue\n3. Add unit tests", Usage.ZERO, 0.0); |
18 | 30 | } |
19 | 31 |
|
20 | 32 | @Override |
21 | | - public String ask(String systemPrompt, String userPrompt) { |
22 | | - if (userPrompt.contains("Candidate")) { |
23 | | - return "Candidate 1: Array-based ring buffer\nCandidate 2: Linked node concurrent queue\nCandidate 3: Disrupter pattern ring"; |
24 | | - } |
25 | | - return "Selected Approach: Candidate 3 (Disruptor pattern) for lowest memory latency and zero lock contention."; |
| 33 | + public void stream(String prompt, Consumer<String> tokenHandler) { |
| 34 | + tokenHandler.accept("Step output"); |
26 | 35 | } |
27 | 36 |
|
28 | | - @Override public String ask(String prompt, java.io.File file) { return ""; } |
29 | | - @Override public void stream(String prompt, java.util.function.Consumer<String> consumer) {} |
30 | | - @Override public void stream(String systemPrompt, String userPrompt, java.util.function.Consumer<String> consumer) {} |
31 | | - @Override public void stream(String prompt, java.io.File file, java.util.function.Consumer<String> consumer) {} |
32 | | - @Override public List<String> getModels() { return List.of("mock-reasoner"); } |
| 37 | + @Override |
| 38 | + public List<String> getModels() { |
| 39 | + return List.of("mock-reasoner"); |
| 40 | + } |
33 | 41 | }; |
34 | 42 |
|
35 | 43 | // 1. Chain-of-Thought (CoT) Demo |
|
0 commit comments