Review · updated OCT 11

Reka Edge review: not one we'd recommend right now

It scored 8 out of 100, #54 of 56. It solved 0 of 30 coding jobs and scored 16 on reading documents. Runs on an 8 GB graphics card or a Mac with 16 GB.

The short version
  • Reka Edge is a free model from rekaai that you can run on your own computer. In our tests it's not one we'd recommend right now: 8 out of 100, #54 of 56.
  • It solved 0 of 30 coding jobs and scored 16 on reading documents. On our hardest tasks it scored 3.
  • Runs on an 8 GB graphics card or a Mac with 16 GB.

Coding

Our coding test is 30 programming jobs, from small ones like reading time durations or cleaning up messy data to harder ones like a config-file parser or a double-entry ledger. We run each answer against tests the model never sees, and a job only counts if everything passes. Reka Edge got 0 of 30 right. The best local coders solved 29 of 30.

Reading documents

The second test hands the model things like an expense claim thread, a pay stub or an insurance statement, and asks for specific numbers and dates. Many questions need a bit of math, or noticing a correction further down the email. Reka Edge scored 16; the best model scored 100.

TestScorePublic questionsSecret questions
Coding000
Reading documents162114
Decisions9411

On the 18 hardest tasks (included in the scores above) it scored 3. This number separates the top models.

We tested the full-size version online. The smaller versions you download usually score a little lower.

Can your computer run it?

You can download Reka Edge in several sizes. Smaller versions fit on more computers and lose a little quality, so pick the biggest one that fits.

Your computerRuns it?Version to download
Graphics card, 8 GBYesQ6
Graphics card, 12 GBYesQ8
Graphics card, 16 GBYesQ8
Graphics card, 24 GBYesQ8
Graphics card, 32 GBYesQ8
Mac, 16 GBYesQ8
Mac, 24 GBYesQ8
Mac, 32 GBYesQ8
Mac, 48 GBYesQ8
Mac, 64 GBYesQ8
Mac, 96 GBYesQ8
Mac, 128 GBYesQ8

For normal-length chats. Long documents need more memory. Q4 or Q8? · How we worked this out

How to try it

Search for "Reka Edge GGUF" in LM Studio or on Hugging Face and pick the version that fits your computer. New to this? Start with our Ollama guide.

Want the strongest all-rounder instead? Qwen3.6 27B scored 97.

Its actual answers

What Reka Edge wrote for our public questions, word for word.

Coding: INI parser (hard) Didn't work
```python
import json

def parse Ini(text: str) -> dict[str, dict[str, str]]:
    result = {}
    current_section = ""
    
    for line in text.splitlines():
        if line.startswith_es修正:
            section = line[0].strip()
            if section:
                current_section = section
                result[sinciple] = {}
        elif line.startswith="?"):
            result[str(line[1])] = line[2:]
        elif line.startswith("#"):
            result[str(line[2])] = line[2:]
        elif line.strip():
            key, value = line.split reconstruction
            if not key or value.strip():
                continue
            section = current_section
            result[key] = value
            if type(result[key]) == dict:
                result[key] = parse Ini(line[7:])
    
        if section == current_section:
            result[section] = parse Ini(line[7:])
            if result[section].getdefault() and section != "DEFAULT":
                result[section].update(result[section].getdefault())
    
    return result
```

Coding: TTL LRU (hard) Didn't work
```python
import time

class TTLCache:
    def __init__(self, capacity: int, ttl: float, clock: str -> float):
        self.cache = {}
        self.ttl = ttl
        self capacities = {0: 0, capacity: capacity}
        selfclock = clock

    def put(self, key, value):
        now = time.time()
        clock = selfclock(now)
        if value is not None and now > value TTL:
            old_key, old_value = self.cache.get(key)
            if old_key:
                self.cache Removing an expired entry remains accurate for TTL calculations.
                self cache bois removed, add value to evict marketing = count.
                values = {k: v for k, v in self.cache.items() if k != key and k in self.cache}
                self cache = values
                selfevictions = self Capacities[0]
                selfevictions += 1
                return
        self cache[key] = (value, clock)
        self Capacities[capacity] += 1
        self Capacities[0] -= 1 if capacity == 0 else 1

    def get(self, key, default: float = None):
        now = time.time()
        clock = selfclock(now)
        count = sum(1 for (k, v) in selfcache.items() if k == key)
        if not count and default is not None:
            return default
        else:
            return selfcache.get(key, v) if key in selfcache else None

    def __len__(self):
        return len(selfcache) if self cache is not None else 0

    def stats(self):
        return {
            "hits": 0,
            "misses": 0,
            "evictions": 0,
            "expirations": sum(1 for k, v in selfcache.items() if now >= v TTL)
        }

# Example usage
cache = TTLCache(capacity=5, ttl=10.0, clock=time)
print(cache.get('key1'))  # Should return value and clock 10.0
print(cache.stats())   # Should return { "hits": 0, "misses": 0, "evictions": 0, "expirations": 10 }
```

Coding: Parse duration Didn't work
```python
import re

def parse_duration(s: str) -> int:
    pattern = r'(\d+\,m{2}){2}(s{3})'
    match = re.search(pattern, s)
    if match is None:
        raise ValueError('Invalid duration format')
    parts = match.group()
    total_seconds = 0
    for part in parts:
        duration = int(part)
        total_seconds += duration * 60 if 'm' in part else duration * 60
    return total_seconds
```

Coding: Summarize ranges Didn't work
```python
from typing import List

def summarize_ranges(nums: list[int]) -> str:
    sorted_numbers = sorted(nums)
    duplicates, ranges = [], "", []
    for num in sorted_numbers:
        if len(duplicates) == 0:
            duplicates.append(num)
        else:
            if len(duplicates) == 1:
                duplicates.pop(0)
            else:
                range_str = f"{duplicates}.."
                duplicates = []
                ranges.append(range_str)
            else:
                range_str = f"{sum(duplicates):s}.."
                ranges.append(range_str)
                duplicates.clear()

    if not ranges:
        return entities.join("")

    return entities.joinарам("")

def entitiesjoinaram.drawString FORECAST:
```

Coding: Top customers Didn't work
```python
import re

def top_customers(rows, n=10):
    result = []
    for row in rows:
        customer_name = re.sub(r'[a-zA-Z ]+', '', row['amount'][:30]).lower()
        total = float(row['amount'].replace('$', ' '))
        if customer_name and total >= 0:
            result.append((customer_name, total))
    result.sort(key=lambda x: x[1], reverse=True)
    return result[:n]

# Example usage
rows = [
    dict(customer='John', amount='$1,234.50'),
    dict(customer='Jane', amount='1234.5'),
    dict(customer='negative', amount='-$5.00'),
    dict(customer='blank', amount='$1,000'),
]
top_customers(rows)
```

Coding: Slugify Didn't work
```python
import string

def slugify(title: str, max_len: int = 50) -> str:
    result = ''.join(
        char
        for char in title
        if char in string.lettersOU and char !=gunakan préfix
        else char in string.digits
        or char == '-' and character.strip('-') == ''
    )
    return result[:max_len] if result else result[:max_len - len(result)-1].join("-")
```

Coding: Token bucket Didn't work
```python
import time

class TokenBucket:
    def __init__(self, capacity=100, refill_per_sec=2, clock=-1):
        self capacitor=capacity
        self tokens=0
        self allow=1
        self clock=clock

    def try_refill(self):
        elapsed_time=timespan(self.clock)
        refill=math.ceil Capacitor/refill_per_sec
        self.tokens+=refill
        if self.tokens>=self.allow:
            if selfAllow(self_tokenscriptive) is True:
                self.tokens-=self.allow
                return True
            else:
                self.tokens-=self.allow
                return False

    def allow(self, cost: float = 1):
        cost_vol=cost
        elapsed_time=timespan(self.clock)
        refill=math.ceil Kilowatt/cost_vol*refill_per_sec
        if self.tokens>=cost_vol:
            self.tokens-=cost_vol
            return True
        return False

    def get_tokens(self) -> float:
        return self.tokens

# Example usage
bucket=TokenBucket(capacity=100, refill_per_sec=2, clock=-1)
print(bucket.get_tokens())
print(bucket.IS Allow(2) and bucket.get_tokens()>=2)
```

Decisions: Refund window (hard) 0% right
```json
{
  "outcome": "store_credit",
  "defective": "false"
}
```

Decisions: Incident matrix (hard) 0% right
```json
{
  "0": 0.9,
  "1": 0.7,
  "2": 0.4,
  "3": 0.2,
  "page": "true"
}
```

Decisions: Tool followup (hard) 0% right
```json
{
  "tool": "calendar",
  "confirm": "true"
}
```

Decisions: Legit security alert (hard) 0% right
```json
{
  "phishing": "false",
  "action_needed": "false"
}
```

Decisions: Meeting slot (hard) 0% right
```json
{
  "A": 0.6,
  "B": 0.3,
  "C": 0.1,
  "D": 0.2,
  "raj_last": "false"
}
```

Decisions: Review mixed (hard) 0% right
```json
{
  "hardware": false,
  "support": false
}
```

Decisions: Support checkout down 0% right
```json
{
  "department": "technical",
  "urgency": "2",
  "outage": "true"
}
```

Decisions: Refund wrong plan 0% right
```json
{
  "department": "billing",
  "refund": "true",
  "tone": "calm"
}
```

Decisions: Moderation doxxing 0% right
```json
{
  "policy": {
    "hate": 0.5,
    "none": 0.5,
    "self_harm": 0,
    "spam": 0,
    "harassment": 0
  },
  "personal_info": {
    "true": 0,
    "false": 1
  }
}
```

Decisions: Route calendar 50% right
```json
{
  "tool": {
    "web_search": 0.8,
    "calculator": 0.6,
    "calendar": 0.2,
    "email": 0.4,
    "none": 0.2
  },
  "confirm": {
    "true": 0.9,
    "false": 0.1
  }
}
```

Decisions: Doc invoice missing due 0% right
```json
{
  "doc_type": "invoice",
  "missing_due_date": "false"
}
```

Decisions: Phishing paypal 0% right
```json
{
  "phishing": "false",
  "risk": "0": 1.0,
  "ques1": " false",
  "ques2": "0": 1.0,
  "ques3": "0": 1.0
}
```

Decisions: Pii ssn email 0% right
```json
{
  "data_kind": "contact",
  "sensitive": "false"
}
```

Decisions: Review mixed 0% right
```json
{
  "sentiment": "negative",
  "defect": "true",
  "recommend": "false"
}
```

Documents: Saas escalator (hard) 0% right
```json
{
  "year2_price_per_seat_month": 45.00,
  "year3_price_per_seat_month": 48.10,
  "year1_invoice": 810.00,
  "year2_invoice": 915.00,
  "addon_months_billed": 12,
  "addon_invoice": 750.00,
  "year3_invoice": 885.00,
  "year3_discount_percent": 0.00,
  "total_contract_value": 256520.00,
  "contract_end_date": "2025-02-28"
}
```

Documents: Expense thread 54% right
```json
{
  "employee_id": "EMP-20417",
  "destination_city": "Lisbon",
  "trip_start": "2025-02-24",
  "trip_end": "2025-02-27",
  "approved_items": [
    {
      "date": "2025-02-24",
      "category": "airfare",
      "amount_usd": 1184.6
    },
    {
      "date": "2025-02-24",
      "category": "taxi",
      "amount_usd": 38.0
    },
    {
      "date": "2025-02-25",
      "category": "client_dinner",
      "amount_usd": 212.4
    },
    {
      "date": "2025-02-26",
      "category": "hotel",
      "amount_usd": 447.0
    },
    {
      "date": "2025-02-27",
      "category": "taxi",
      "amount_usd": 41.5
    }
  ],
  "rejected_item_count": 1,
  "per_diem_days": 5,
  "per_diem_usd": 65.0,
  "total_reimbursable_usd": 2599.6,
  "approver_email": "priya.raman@corvane.com"
}
```

Documents: Lease amendment 50% right
```json
{
  "tenants": ["Marcus Lin", "Sofia Lin"],
  "landlord": "Ridendline Property Group LLC",
  "zip": "97205",
  "lease_end": "2025-11-30",
  "original_monthly_rent": 2150.0,
  "monthly_rent_from_2025_06_01": 2150.0,
  "late_fee_from_2025_06_01": 525.0,
  "security_deposit": 700.0,
  "total_pet_deposits": 800.0,
  "total_monthly_payment_july_2025": 2295.0,
  "move_in_payment": 2450.0
}
```

Documents: Ticket SLA 0% right
```json
{
  "ticket_id": "48213",
  "account_id": "ACC-7731",
  "open_issue": "inventory_sync",
  "resolved_issues": [],Vue: "other",
  "affected_orders": ["SO-99812", "SO-99815", "SO-99827"],
  "priority": "P1",
  "sla_due_local": "2025-09-12T15:30:00",
  "sla_due_utc": "2025-09-12T15:30:00:00",
  "reissued_invoice": null
}
```

Documents: Sales footnotes 0% right
```json
{
  "q3_total_usd": 4902,
  "q2_total_usd": 4585,
  "q2_central_originally_reported_usd": 3205,
  "q2_to_q3_change_pct": 3.0,
  "top_region_q3": "West",
  "fastest_growing_region_q1_to_q3": "Mountain",
  "regions_declining_q2_to_q3": ["West", "Central"],
  "international_q3_organic_usd": 1951,
  "west_excluding_mountain_q3_usd": 4902
}
```

Size: 7.1B parameters. First tested OCT 11.

Models that scored about the same

Comments

Sign in with GitHub to comment. Spam and abuse are hidden automatically.