A.N.S.W.E.R.R. Reflex REST API
Dünyanın ilk 0-Byte VRAM ve Sistem-1 omurilik karar motoru için yüksek hızlı, deterministik REST arayüzü. Ağır LLM parametreleri ve devasa tensör matris çarpmaları yerine Mandelbrot sınır geometrisini kullanarak mikrosaniyeler içinde tip-güvenli refleks kararlar üretir.
Hızlı Başlangıç (Quickstart)
API tamamen açık ve anahtarsız (keyless) modda hizmet vermektedir. Herhangi bir kayıt gerekmeden doğrudan terminalinizden çağırabilirsiniz:
curl -s -X POST https://api.answerr.me:4431/v1/decide \
-H "Content-Type: application/json" \
-d '{
"question": "Yetkili yönetici API işlemine izin verilsin mi?",
"state": {
"user_role": "admin",
"failed_attempts": 0,
"req_frequency": 1.2
}
}'
Sunucu Adresi & Port Yapılandırması
https://api.answerr.me:4431
Answerr üretim API kümesi, Apache SSL Reverse Proxy arkasında Port 4431 üzerinden güvenli HTTPS protokolü ile yayınlanmaktadır.
Yazılımlarınızda istek atarken port numarasını (:4431) belirtmeyi unutmayınız.
Güvenlik & Hız Sınırları (Rate Limiting)
API'nin sürdürülebilirliği ve servis kalitesini garanti etmek amacıyla çok katmanlı koruma aktiftir:
- IP Hız Sınırı (Rate Limit): İstemci IP adresi başına dakikada 60 istek (ortalama 1 req/s).
- Patlama (Burst) Sınırı: 1 saniye içinde azami 15 istek. Bu eşiği aşan istekler anında
429 Too Many Requestsile yanıtlanır. - Gövde Boyutu Sınırı (Payload Size): Azami istek gövdesi 64 KB ile sınırlandırılmıştır. Daha büyük istekler
413 Payload Too Largeile reddedilir. - Dönen Hız Başlıkları: Her yanıtta kota durumu şeffaf olarak iletilir:
X-RateLimit-Limit,X-RateLimit-Remaining,Retry-After.
Servisin operasyonel durumunu, çalışma süresini ve mikrosaniyelik refleks hız karşılaştırmasını döndürür.
Örnek İstek (Request)
curl -s https://api.answerr.me:4431/v1/health
Örnek Yanıt (Response 200 OK)
{
"status": "healthy",
"engine": "werr-reflex",
"version": "0.3.0",
"core_architecture": "werr (Adaptive Non-tensor Signal Wave & Error Reflex Resonator)",
"memory_architecture": "0 Byte VRAM / 24 Byte Mandelbrot Coordinate Triplet",
"vram_bytes": 0,
"latency_benchmark_ms": 0.089,
"uptime_seconds": 121010.51,
"timestamp": 1789932867.756
}
Çekirdek Sistem-1 refleks karar motoru. Verilen sistem durumu (state vector) ve soruları deterministik Mandelbrot sınır dinamiğiyle değerlendirir.
İstek Parametreleri (Request Body)
| Parametre | Tip | Açıklama |
|---|---|---|
state |
object | Sistem operasyonel durum anahtarları (örn: user_role, failed_attempts, motor_temp). |
question |
string (opsiyonel) | Hızlı tekil soru dizesi. |
domain |
string (opsiyonel) | Tanımlı hazır domain: api_security, ddos_mitigation, financial_risk, robotics_industrial, ecommerce_fraud. |
questions |
object (opsiyonel) | Özel çoklu soru sözlüğü (noul, choice, score tiplerinde). |
Örnek İstek (Domain Preset ile)
curl -s -X POST https://api.answerr.me:4431/v1/decide \
-H "Content-Type: application/json" \
-d '{
"domain": "api_security",
"state": {
"user_role": "attacker",
"failed_attempts": 15,
"req_frequency": 120.0
}
}'
Örnek Yanıt (Response 200 OK)
{
"status": "success",
"decision": false,
"label": "DENIED",
"answers": {
"allow_request": {
"type": "noul",
"boolean": false,
"decision": false,
"noul": 0.0001,
"confidence": 0.9998,
"label": "DENIED"
},
"route_destination": {
"type": "choice",
"choice": "drop_packet",
"confidence": 0.8177
},
"threat_score": {
"type": "score",
"score": 3.0,
"confidence": 0.7732
}
},
"telemetry": {
"engine_latency_ms": 0.177,
"vram_bytes": 0,
"memory_seed_bytes": 24,
"engine": "werr-reflex-0.3.0"
}
}
JevBench TypeSafe wire formatı için özel uç nokta. POST /v1/decide ile aynı WERR fraktal çekirdeğini kullanır; ancak soruları JevBench'in labels listesi formatında da kabul eder.
Bu endpoint sayesinde JevBench benchmark koşucuları, Tau-Bench ajanları ve benzeri çerçeveler doğrudan WERR kararını test edebilir.
İstek Parametreleri (Request Body)
| Parametre | Tip | Açıklama |
|---|---|---|
task |
string (opsiyonel) | Görev kimliği — yanıtta task_id olarak aynen döner. |
state |
object | Sistem durum vektörü. Risk skorları, anomali bayrakları vb. key-value çiftleri. |
questions |
object |
Soru sözlüğü. Her soru için type (noul / choice / score) ve isteğe bağlı text alanı verilir.JevBench formatı: labels: ["OPT_A", "OPT_B", ...] listesi.Answerr formatı: criteria: {"opt_a": "Seçenek A", ...} sözlüğü.İkisi de kabul edilir. |
model |
string (opsiyonel) | Model adı — yanıtta aynen döner. Varsayılan: werr-system-one. |
Örnek İstek — JevBench Wire Format (cURL)
curl -s -X POST https://api.answerr.me:4431/v1/systemone \
-H "Content-Type: application/json" \
-d '{
"task": "jevbench-security-sample",
"state": {
"anomaly_detected": true,
"risk_vector": [0.89, 0.12, 0.95, 0.04],
"user_id": "usr_9921"
},
"questions": {
"decision": {
"type": "choice",
"text": "Security action for autonomous agent request",
"labels": [
"DENY_AND_QUARANTINE",
"REQUEST_HUMAN_OVERRIDE",
"APPROVE_WITH_LOGGING",
"APPROVE_SILENTLY"
]
}
}
}'
Örnek İstek — Python
import requests
payload = {
"task": "jevbench-security-sample",
"state": {
"anomaly_detected": True,
"risk_vector": [0.89, 0.12, 0.95, 0.04]
},
"questions": {
"decision": {
"type": "choice",
"text": "Security action",
"labels": ["DENY_AND_QUARANTINE", "REQUEST_HUMAN_OVERRIDE",
"APPROVE_WITH_LOGGING", "APPROVE_SILENTLY"]
}
}
}
resp = requests.post(
"https://api.answerr.me:4431/v1/systemone",
json=payload
)
data = resp.json()
print("Seçilen etiket:", data["result"]["decision"]["selected_label"])
print("Güven skoru:", data["result"]["decision"]["confidence"])
print("Gecikme:", data["telemetry"]["engine_latency_ms"], "ms")
Örnek Yanıt (Response 200 OK)
{
"status": "success",
"task_id": "jevbench-security-sample",
"wire_protocol": "POST /v1/systemone (JevBench TypeSafe Compatible)",
"system_level": "System-1 (Mandelbrot Boundary Wave Dynamics)",
"vram_allocated_bytes": 0,
"seed_footprint_bytes": 24,
"model": "werr-system-one",
"state": { "anomaly_detected": true, "risk_vector": [0.89, 0.12, 0.95, 0.04] },
"result": {
"decision": {
"type": "choice",
"selected_label": "DENY_AND_QUARANTINE",
"choice": "DENY_AND_QUARANTINE",
"probabilities": {
"DENY_AND_QUARANTINE": 0.5812,
"REQUEST_HUMAN_OVERRIDE": 0.2341,
"APPROVE_WITH_LOGGING": 0.1433,
"APPROVE_SILENTLY": 0.0414
},
"confidence": 0.5812
}
},
"telemetry": {
"engine_latency_ms": 0.182,
"total_request_latency_ms": 2.14,
"vram_bytes": 0,
"memory_seed_bytes": 24,
"engine": "werr-reflex-0.3.0"
}
}
Tüm hazır sektör ve kullanım senaryolarını, varsayılan durum vektörlerini ve soru şablonlarını listeler.
curl -s https://api.answerr.me:4431/v1/presets
Motorun desteklediği tüm domain anahtarlarını listeler.
curl -s https://api.answerr.me:4431/v1/domains
Standart OpenAI Python SDK veya LangChain / LlamaIndex ile tak-çalıştır entegrasyon sağlayan adaptör uç noktasıdır.
Hiçbir API anahtarı gerektirmeden mevcut projelerinizdeki OpenAI istemcisinin base_url adresini değiştirerek bağlayabilirsiniz.
Python OpenAI SDK Örneği
from openai import OpenAI
client = OpenAI(
base_url="https://api.answerr.me:4431/v1",
api_key="werr-keyless-mode" # Anahtarsız modda dilediğiniz string geçerlidir
)
response = client.chat.completions.create(
model="werr-reflex-v1",
messages=[
{"role": "system", "content": "Sen 0-Byte VRAM mikrosaniyelik karar motorusun."},
{"role": "user", "content": "Kullanıcı admin rolünde, 0 başarısız deneme var. İstek onaylansın mı?"}
]
)
print(response.choices[0].message.content)
Doğrudan Yerel Python Entegrasyonu (pip install werr)
Ağ gecikmesi olmadan sıfır gecikmeli yerel çalıştırma için motoru doğrudan projenize gömebilirsiniz:
from werr import WerrEngine, NoulQuestion, ChoiceQuestion
# 1. Sıfır VRAM / 24-byte tohum koordinatı ile motoru başlatın
engine = WerrEngine()
# 2. Durum ve soruları tanımlayın
state = {"user_role": "guest", "failed_attempts": 4, "req_frequency": 25.0}
questions = {
"permit": NoulQuestion("İstek geçirilsin mi?"),
"action": ChoiceQuestion("Aksiyon", {"pass": "Geçir", "captcha": "Captcha Göster", "block": "Engelle"})
}
# 3. Mikrosaniyede deterministik karar alın
verdict = engine.decide(state=state, questions=questions)
print("Sonuç:", verdict.answers["permit"].boolean)
print("Aksiyon:", verdict.answers["action"].choice)