Add Sonnet-quality performance configuration
Browse files- code/beastbullet_config.py +307 -0
- configs/config_sonnet_quality.json +118 -0
code/beastbullet_config.py
ADDED
|
@@ -0,0 +1,307 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# BeastBullet Performance Configuration
|
| 2 |
+
# Optimized for Sonnet-like reasoning quality
|
| 3 |
+
|
| 4 |
+
import torch
|
| 5 |
+
from typing import Dict, List, Optional
|
| 6 |
+
|
| 7 |
+
class BeastBulletConfig:
|
| 8 |
+
"""
|
| 9 |
+
Configuration for achieving high-quality reasoning performance
|
| 10 |
+
comparable to Claude Sonnet.
|
| 11 |
+
"""
|
| 12 |
+
|
| 13 |
+
# ============================================================================
|
| 14 |
+
# EXPERT SELECTION STRATEGY
|
| 15 |
+
# ============================================================================
|
| 16 |
+
|
| 17 |
+
# ISL Router Configuration
|
| 18 |
+
ISL_CONFIDENCE_THRESHOLD = 0.85 # High confidence threshold for early termination
|
| 19 |
+
ISL_MAX_EXPERTS_PER_QUERY = 3 # Maximum experts to invoke per query
|
| 20 |
+
ISL_CACHE_SIZE = 10000 # Cache size for deterministic routing
|
| 21 |
+
ISL_CACHE_TTL = 3600 # Cache TTL in seconds
|
| 22 |
+
|
| 23 |
+
# Expert Selection Strategy
|
| 24 |
+
EXPERT_SELECTION_MODE = "confidence_weighted" # Options: "top_k", "threshold", "confidence_weighted"
|
| 25 |
+
MIN_EXPERT_CONFIDENCE = 0.6 # Minimum confidence to invoke expert
|
| 26 |
+
PARALLEL_EXPERT_EXECUTION = True # Execute experts in parallel
|
| 27 |
+
|
| 28 |
+
# ============================================================================
|
| 29 |
+
# REASONING QUALITY SETTINGS
|
| 30 |
+
# ============================================================================
|
| 31 |
+
|
| 32 |
+
# Grok Logic Configuration
|
| 33 |
+
GROK_MAX_REASONING_DEPTH = 5 # Maximum reasoning chain depth
|
| 34 |
+
GROK_ENABLE_CHAIN_OF_THOUGHT = True
|
| 35 |
+
GROK_REQUIRE_JUSTIFICATION = True # Always require justification for answers
|
| 36 |
+
GROK_MIN_EVIDENCE_SOURCES = 2 # Minimum evidence sources for high-confidence answers
|
| 37 |
+
|
| 38 |
+
# Blackboard Configuration
|
| 39 |
+
BLACKBOARD_CONFLICT_RESOLUTION = "validator_arbitration" # How to resolve conflicts
|
| 40 |
+
BLACKBOARD_EVIDENCE_DEDUPLICATION = True
|
| 41 |
+
BLACKBOARD_MIN_CONFIDENCE_TO_WRITE = 0.5
|
| 42 |
+
|
| 43 |
+
# Validator Configuration
|
| 44 |
+
VALIDATOR_ENABLED = True
|
| 45 |
+
VALIDATOR_STRICT_MODE = True # Reject uncertain answers
|
| 46 |
+
VALIDATOR_CROSS_CHECK_THRESHOLD = 0.9 # Threshold for cross-validation
|
| 47 |
+
VALIDATOR_ADVERSARIAL_TESTING = True # Test with adversarial examples
|
| 48 |
+
|
| 49 |
+
# ============================================================================
|
| 50 |
+
# SYNTHESIS QUALITY
|
| 51 |
+
# ============================================================================
|
| 52 |
+
|
| 53 |
+
# TinyLlama/OLMoE Synthesis Settings
|
| 54 |
+
SYNTHESIS_MODEL = "tinyllama" # Options: "tinyllama", "olmoe"
|
| 55 |
+
SYNTHESIS_TEMPERATURE = 0.3 # Lower = more deterministic
|
| 56 |
+
SYNTHESIS_TOP_P = 0.9
|
| 57 |
+
SYNTHESIS_MAX_TOKENS = 512
|
| 58 |
+
SYNTHESIS_REPETITION_PENALTY = 1.1
|
| 59 |
+
|
| 60 |
+
# Answer Quality Requirements
|
| 61 |
+
REQUIRE_CITATIONS = True # Always cite evidence sources
|
| 62 |
+
REQUIRE_CONFIDENCE_SCORE = True # Include confidence in answer
|
| 63 |
+
REQUIRE_REASONING_TRACE = True # Include reasoning steps
|
| 64 |
+
MIN_ANSWER_CONFIDENCE = 0.7 # Minimum confidence to return answer
|
| 65 |
+
|
| 66 |
+
# ============================================================================
|
| 67 |
+
# PERFORMANCE OPTIMIZATION
|
| 68 |
+
# ============================================================================
|
| 69 |
+
|
| 70 |
+
# Inference Settings
|
| 71 |
+
DEVICE = "cpu" # Options: "cpu", "cuda"
|
| 72 |
+
BATCH_SIZE = 1 # Batch size for expert inference
|
| 73 |
+
NUM_THREADS = 4 # CPU threads for inference
|
| 74 |
+
ENABLE_ONNX_OPTIMIZATION = True # Use ONNX for faster inference
|
| 75 |
+
|
| 76 |
+
# Memory Management
|
| 77 |
+
MAX_MEMORY_MB = 4096 # Maximum memory usage
|
| 78 |
+
ENABLE_GRADIENT_CHECKPOINTING = False # Not needed for inference
|
| 79 |
+
CLEAR_CACHE_AFTER_QUERY = True
|
| 80 |
+
|
| 81 |
+
# ============================================================================
|
| 82 |
+
# EXPERT-SPECIFIC SETTINGS
|
| 83 |
+
# ============================================================================
|
| 84 |
+
|
| 85 |
+
EXPERT_CONFIGS = {
|
| 86 |
+
"math_expert": {
|
| 87 |
+
"confidence_threshold": 0.85,
|
| 88 |
+
"max_computation_steps": 10,
|
| 89 |
+
"require_step_by_step": True,
|
| 90 |
+
},
|
| 91 |
+
"logic_expert": {
|
| 92 |
+
"confidence_threshold": 0.80,
|
| 93 |
+
"enable_symbolic_reasoning": True,
|
| 94 |
+
"max_inference_depth": 5,
|
| 95 |
+
},
|
| 96 |
+
"validator_expert": {
|
| 97 |
+
"confidence_threshold": 0.90, # Very high for validator
|
| 98 |
+
"false_positive_tolerance": 0.0, # Zero tolerance
|
| 99 |
+
"adversarial_mode": True,
|
| 100 |
+
},
|
| 101 |
+
"code_generation_expert": {
|
| 102 |
+
"confidence_threshold": 0.75,
|
| 103 |
+
"enable_syntax_validation": True,
|
| 104 |
+
"require_documentation": True,
|
| 105 |
+
},
|
| 106 |
+
"question_answering_expert": {
|
| 107 |
+
"confidence_threshold": 0.70,
|
| 108 |
+
"require_source_citation": True,
|
| 109 |
+
"max_context_length": 2048,
|
| 110 |
+
},
|
| 111 |
+
}
|
| 112 |
+
|
| 113 |
+
# ============================================================================
|
| 114 |
+
# QUALITY ASSURANCE
|
| 115 |
+
# ============================================================================
|
| 116 |
+
|
| 117 |
+
# Answer Validation
|
| 118 |
+
ENABLE_ANSWER_VALIDATION = True
|
| 119 |
+
VALIDATION_CHECKS = [
|
| 120 |
+
"confidence_threshold",
|
| 121 |
+
"evidence_consistency",
|
| 122 |
+
"logical_coherence",
|
| 123 |
+
"factual_accuracy",
|
| 124 |
+
"citation_completeness",
|
| 125 |
+
]
|
| 126 |
+
|
| 127 |
+
# Fallback Strategy
|
| 128 |
+
FALLBACK_ON_LOW_CONFIDENCE = True
|
| 129 |
+
FALLBACK_STRATEGY = "request_clarification" # Options: "request_clarification", "return_uncertain", "escalate"
|
| 130 |
+
|
| 131 |
+
# Logging and Monitoring
|
| 132 |
+
ENABLE_DETAILED_LOGGING = True
|
| 133 |
+
LOG_REASONING_TRACE = True
|
| 134 |
+
LOG_EXPERT_DECISIONS = True
|
| 135 |
+
LOG_PERFORMANCE_METRICS = True
|
| 136 |
+
|
| 137 |
+
# ============================================================================
|
| 138 |
+
# ADVANCED FEATURES
|
| 139 |
+
# ============================================================================
|
| 140 |
+
|
| 141 |
+
# Multi-turn Conversation
|
| 142 |
+
ENABLE_CONVERSATION_MEMORY = True
|
| 143 |
+
MAX_CONVERSATION_HISTORY = 10
|
| 144 |
+
CONVERSATION_CONTEXT_WINDOW = 5
|
| 145 |
+
|
| 146 |
+
# Self-correction
|
| 147 |
+
ENABLE_SELF_CORRECTION = True
|
| 148 |
+
MAX_CORRECTION_ITERATIONS = 2
|
| 149 |
+
CORRECTION_CONFIDENCE_DELTA = 0.1 # Minimum improvement to accept correction
|
| 150 |
+
|
| 151 |
+
# Uncertainty Handling
|
| 152 |
+
EXPLICIT_UNCERTAINTY_REPORTING = True
|
| 153 |
+
UNCERTAINTY_THRESHOLD = 0.6 # Below this, report uncertainty
|
| 154 |
+
PROVIDE_ALTERNATIVE_ANSWERS = True # Provide alternatives when uncertain
|
| 155 |
+
|
| 156 |
+
@classmethod
|
| 157 |
+
def get_config_dict(cls) -> Dict:
|
| 158 |
+
"""Return configuration as dictionary."""
|
| 159 |
+
return {
|
| 160 |
+
key: value for key, value in cls.__dict__.items()
|
| 161 |
+
if not key.startswith('_') and not callable(value)
|
| 162 |
+
}
|
| 163 |
+
|
| 164 |
+
@classmethod
|
| 165 |
+
def load_from_file(cls, config_path: str):
|
| 166 |
+
"""Load configuration from JSON file."""
|
| 167 |
+
import json
|
| 168 |
+
with open(config_path, 'r') as f:
|
| 169 |
+
config = json.load(f)
|
| 170 |
+
for key, value in config.items():
|
| 171 |
+
if hasattr(cls, key):
|
| 172 |
+
setattr(cls, key, value)
|
| 173 |
+
|
| 174 |
+
@classmethod
|
| 175 |
+
def save_to_file(cls, config_path: str):
|
| 176 |
+
"""Save configuration to JSON file."""
|
| 177 |
+
import json
|
| 178 |
+
with open(config_path, 'w') as f:
|
| 179 |
+
json.dump(cls.get_config_dict(), f, indent=2)
|
| 180 |
+
|
| 181 |
+
|
| 182 |
+
# ============================================================================
|
| 183 |
+
# USAGE EXAMPLE
|
| 184 |
+
# ============================================================================
|
| 185 |
+
|
| 186 |
+
def create_high_quality_system():
|
| 187 |
+
"""
|
| 188 |
+
Create BeastBullet system optimized for Sonnet-like performance.
|
| 189 |
+
"""
|
| 190 |
+
from code.isl_router import ISLRouter
|
| 191 |
+
from code.grok_logic import GrokEngine
|
| 192 |
+
from code.shared_blackboard import Blackboard
|
| 193 |
+
|
| 194 |
+
# Initialize with high-quality config
|
| 195 |
+
config = BeastBulletConfig()
|
| 196 |
+
|
| 197 |
+
# Create components
|
| 198 |
+
router = ISLRouter(
|
| 199 |
+
experts_dir="experts/",
|
| 200 |
+
confidence_threshold=config.ISL_CONFIDENCE_THRESHOLD,
|
| 201 |
+
max_experts=config.ISL_MAX_EXPERTS_PER_QUERY,
|
| 202 |
+
cache_size=config.ISL_CACHE_SIZE,
|
| 203 |
+
)
|
| 204 |
+
|
| 205 |
+
blackboard = Blackboard(
|
| 206 |
+
conflict_resolution=config.BLACKBOARD_CONFLICT_RESOLUTION,
|
| 207 |
+
enable_deduplication=config.BLACKBOARD_EVIDENCE_DEDUPLICATION,
|
| 208 |
+
)
|
| 209 |
+
|
| 210 |
+
grok = GrokEngine(
|
| 211 |
+
router=router,
|
| 212 |
+
blackboard=blackboard,
|
| 213 |
+
max_depth=config.GROK_MAX_REASONING_DEPTH,
|
| 214 |
+
require_justification=config.GROK_REQUIRE_JUSTIFICATION,
|
| 215 |
+
enable_chain_of_thought=config.GROK_ENABLE_CHAIN_OF_THOUGHT,
|
| 216 |
+
)
|
| 217 |
+
|
| 218 |
+
return grok, config
|
| 219 |
+
|
| 220 |
+
|
| 221 |
+
def query_with_quality_assurance(grok, query: str, config: BeastBulletConfig):
|
| 222 |
+
"""
|
| 223 |
+
Query with full quality assurance pipeline.
|
| 224 |
+
"""
|
| 225 |
+
# Execute query
|
| 226 |
+
result = grok.reason(query)
|
| 227 |
+
|
| 228 |
+
# Quality checks
|
| 229 |
+
if config.ENABLE_ANSWER_VALIDATION:
|
| 230 |
+
# Check confidence
|
| 231 |
+
if result.get("confidence", 0) < config.MIN_ANSWER_CONFIDENCE:
|
| 232 |
+
if config.FALLBACK_ON_LOW_CONFIDENCE:
|
| 233 |
+
return {
|
| 234 |
+
"answer": "I'm not confident enough to provide a definitive answer.",
|
| 235 |
+
"confidence": result.get("confidence", 0),
|
| 236 |
+
"uncertainty_reason": "Below confidence threshold",
|
| 237 |
+
"alternative_answers": result.get("alternatives", []),
|
| 238 |
+
"reasoning_trace": result.get("reasoning_trace", []),
|
| 239 |
+
}
|
| 240 |
+
|
| 241 |
+
# Check evidence consistency
|
| 242 |
+
if config.GROK_MIN_EVIDENCE_SOURCES > 1:
|
| 243 |
+
evidence_sources = len(result.get("evidence", []))
|
| 244 |
+
if evidence_sources < config.GROK_MIN_EVIDENCE_SOURCES:
|
| 245 |
+
result["warning"] = f"Only {evidence_sources} evidence sources (minimum: {config.GROK_MIN_EVIDENCE_SOURCES})"
|
| 246 |
+
|
| 247 |
+
# Add quality metadata
|
| 248 |
+
result["quality_score"] = calculate_quality_score(result, config)
|
| 249 |
+
result["validation_passed"] = True
|
| 250 |
+
|
| 251 |
+
return result
|
| 252 |
+
|
| 253 |
+
|
| 254 |
+
def calculate_quality_score(result: Dict, config: BeastBulletConfig) -> float:
|
| 255 |
+
"""
|
| 256 |
+
Calculate overall quality score for answer.
|
| 257 |
+
"""
|
| 258 |
+
scores = []
|
| 259 |
+
|
| 260 |
+
# Confidence score
|
| 261 |
+
scores.append(result.get("confidence", 0))
|
| 262 |
+
|
| 263 |
+
# Evidence completeness
|
| 264 |
+
evidence_count = len(result.get("evidence", []))
|
| 265 |
+
evidence_score = min(1.0, evidence_count / config.GROK_MIN_EVIDENCE_SOURCES)
|
| 266 |
+
scores.append(evidence_score)
|
| 267 |
+
|
| 268 |
+
# Citation completeness
|
| 269 |
+
if config.REQUIRE_CITATIONS:
|
| 270 |
+
has_citations = "citations" in result and len(result["citations"]) > 0
|
| 271 |
+
scores.append(1.0 if has_citations else 0.5)
|
| 272 |
+
|
| 273 |
+
# Reasoning trace completeness
|
| 274 |
+
if config.REQUIRE_REASONING_TRACE:
|
| 275 |
+
has_trace = "reasoning_trace" in result and len(result["reasoning_trace"]) > 0
|
| 276 |
+
scores.append(1.0 if has_trace else 0.5)
|
| 277 |
+
|
| 278 |
+
return sum(scores) / len(scores)
|
| 279 |
+
|
| 280 |
+
|
| 281 |
+
# ============================================================================
|
| 282 |
+
# EXAMPLE USAGE
|
| 283 |
+
# ============================================================================
|
| 284 |
+
|
| 285 |
+
if __name__ == "__main__":
|
| 286 |
+
# Create high-quality system
|
| 287 |
+
grok, config = create_high_quality_system()
|
| 288 |
+
|
| 289 |
+
# Example query
|
| 290 |
+
query = "What is 15% of 240? Explain your reasoning."
|
| 291 |
+
|
| 292 |
+
# Query with quality assurance
|
| 293 |
+
result = query_with_quality_assurance(grok, query, config)
|
| 294 |
+
|
| 295 |
+
print("=" * 70)
|
| 296 |
+
print("BeastBullet High-Quality Response")
|
| 297 |
+
print("=" * 70)
|
| 298 |
+
print(f"\nQuery: {query}")
|
| 299 |
+
print(f"\nAnswer: {result['answer']}")
|
| 300 |
+
print(f"Confidence: {result['confidence']:.2%}")
|
| 301 |
+
print(f"Quality Score: {result.get('quality_score', 0):.2%}")
|
| 302 |
+
print(f"\nExperts Used: {', '.join(result.get('experts_used', []))}")
|
| 303 |
+
print(f"\nReasoning Trace:")
|
| 304 |
+
for i, step in enumerate(result.get('reasoning_trace', []), 1):
|
| 305 |
+
print(f" {i}. {step}")
|
| 306 |
+
print(f"\nEvidence Sources: {len(result.get('evidence', []))}")
|
| 307 |
+
print("=" * 70)
|
configs/config_sonnet_quality.json
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"system_name": "BeastBullet High-Quality Reasoning System",
|
| 3 |
+
"version": "1.0",
|
| 4 |
+
"target_performance": "Claude Sonnet equivalent",
|
| 5 |
+
|
| 6 |
+
"isl_router": {
|
| 7 |
+
"confidence_threshold": 0.85,
|
| 8 |
+
"max_experts_per_query": 3,
|
| 9 |
+
"cache_size": 10000,
|
| 10 |
+
"cache_ttl_seconds": 3600,
|
| 11 |
+
"selection_mode": "confidence_weighted",
|
| 12 |
+
"min_expert_confidence": 0.6,
|
| 13 |
+
"parallel_execution": true
|
| 14 |
+
},
|
| 15 |
+
|
| 16 |
+
"grok_logic": {
|
| 17 |
+
"max_reasoning_depth": 5,
|
| 18 |
+
"enable_chain_of_thought": true,
|
| 19 |
+
"require_justification": true,
|
| 20 |
+
"min_evidence_sources": 2,
|
| 21 |
+
"enable_self_correction": true,
|
| 22 |
+
"max_correction_iterations": 2
|
| 23 |
+
},
|
| 24 |
+
|
| 25 |
+
"blackboard": {
|
| 26 |
+
"conflict_resolution": "validator_arbitration",
|
| 27 |
+
"enable_deduplication": true,
|
| 28 |
+
"min_confidence_to_write": 0.5,
|
| 29 |
+
"max_evidence_per_query": 50
|
| 30 |
+
},
|
| 31 |
+
|
| 32 |
+
"validator": {
|
| 33 |
+
"enabled": true,
|
| 34 |
+
"strict_mode": true,
|
| 35 |
+
"cross_check_threshold": 0.9,
|
| 36 |
+
"adversarial_testing": true,
|
| 37 |
+
"false_positive_tolerance": 0.0
|
| 38 |
+
},
|
| 39 |
+
|
| 40 |
+
"synthesis": {
|
| 41 |
+
"model": "tinyllama",
|
| 42 |
+
"temperature": 0.3,
|
| 43 |
+
"top_p": 0.9,
|
| 44 |
+
"max_tokens": 512,
|
| 45 |
+
"repetition_penalty": 1.1,
|
| 46 |
+
"require_citations": true,
|
| 47 |
+
"require_confidence_score": true,
|
| 48 |
+
"require_reasoning_trace": true
|
| 49 |
+
},
|
| 50 |
+
|
| 51 |
+
"quality_assurance": {
|
| 52 |
+
"min_answer_confidence": 0.7,
|
| 53 |
+
"enable_validation": true,
|
| 54 |
+
"validation_checks": [
|
| 55 |
+
"confidence_threshold",
|
| 56 |
+
"evidence_consistency",
|
| 57 |
+
"logical_coherence",
|
| 58 |
+
"factual_accuracy",
|
| 59 |
+
"citation_completeness"
|
| 60 |
+
],
|
| 61 |
+
"fallback_on_low_confidence": true,
|
| 62 |
+
"fallback_strategy": "request_clarification"
|
| 63 |
+
},
|
| 64 |
+
|
| 65 |
+
"expert_configs": {
|
| 66 |
+
"math_expert": {
|
| 67 |
+
"confidence_threshold": 0.85,
|
| 68 |
+
"max_computation_steps": 10,
|
| 69 |
+
"require_step_by_step": true
|
| 70 |
+
},
|
| 71 |
+
"logic_expert": {
|
| 72 |
+
"confidence_threshold": 0.80,
|
| 73 |
+
"enable_symbolic_reasoning": true,
|
| 74 |
+
"max_inference_depth": 5
|
| 75 |
+
},
|
| 76 |
+
"validator_expert": {
|
| 77 |
+
"confidence_threshold": 0.90,
|
| 78 |
+
"false_positive_tolerance": 0.0,
|
| 79 |
+
"adversarial_mode": true
|
| 80 |
+
},
|
| 81 |
+
"code_generation_expert": {
|
| 82 |
+
"confidence_threshold": 0.75,
|
| 83 |
+
"enable_syntax_validation": true,
|
| 84 |
+
"require_documentation": true
|
| 85 |
+
},
|
| 86 |
+
"question_answering_expert": {
|
| 87 |
+
"confidence_threshold": 0.70,
|
| 88 |
+
"require_source_citation": true,
|
| 89 |
+
"max_context_length": 2048
|
| 90 |
+
}
|
| 91 |
+
},
|
| 92 |
+
|
| 93 |
+
"performance": {
|
| 94 |
+
"device": "cpu",
|
| 95 |
+
"batch_size": 1,
|
| 96 |
+
"num_threads": 4,
|
| 97 |
+
"enable_onnx_optimization": true,
|
| 98 |
+
"max_memory_mb": 4096,
|
| 99 |
+
"clear_cache_after_query": true
|
| 100 |
+
},
|
| 101 |
+
|
| 102 |
+
"advanced_features": {
|
| 103 |
+
"enable_conversation_memory": true,
|
| 104 |
+
"max_conversation_history": 10,
|
| 105 |
+
"conversation_context_window": 5,
|
| 106 |
+
"explicit_uncertainty_reporting": true,
|
| 107 |
+
"uncertainty_threshold": 0.6,
|
| 108 |
+
"provide_alternative_answers": true
|
| 109 |
+
},
|
| 110 |
+
|
| 111 |
+
"logging": {
|
| 112 |
+
"enable_detailed_logging": true,
|
| 113 |
+
"log_reasoning_trace": true,
|
| 114 |
+
"log_expert_decisions": true,
|
| 115 |
+
"log_performance_metrics": true,
|
| 116 |
+
"log_level": "INFO"
|
| 117 |
+
}
|
| 118 |
+
}
|