Моделі
Налаштуйте OpenAI-сумісний або Anthropic endpoint із базовою URL-адресою та API-ключем, якщо він потрібен. Перевірте з’єднання. Локальний сервер моделі має працювати; віддалені інструменти можуть окремо передавати дані.
Розподіліть до 10000 місць між не більш ніж 1000 невід’ємними цілими вагами за найбільшими остачами.
def allocate(weights, seats):
if type(weights) not in (list, tuple) or len(weights) > 1000:
raise ValueError("weights.container")
weights = tuple(weights)
if type(seats) is not int or not 0 <= seats <= 10000:
raise ValueError("seats.range")
if len(weights) > 1000 or any(type(w) is not int or w < 0 for w in weights):
raise ValueError("weights.invalid")
total = sum(weights)
if total == 0:
if seats:
raise ValueError("weight.zero")
return [0] * len(weights)
result = [w * seats // total for w in weights]
remaining = seats - sum(result)
order = sorted(range(len(weights)), key=lambda i: (-(weights[i] * seats % total), i))
for i in order[:remaining]:
result[i] += 1
return resultНалаштуйте OpenAI-сумісний або Anthropic endpoint із базовою URL-адресою та API-ключем, якщо він потрібен. Перевірте з’єднання. Локальний сервер моделі має працювати; віддалені інструменти можуть окремо передавати дані.
Перевірте нульові ваги й рівні остачі з розв’язанням за порядком вводу, відхиляючи додатний розподіл при нульовій сумі ваг до ділення.
Порівняйте фактичну поведінку з очікуваним результатом. Якщо перевірка не проходить, з’ясуйте причину перед наступними змінами.
def allocate(weights, seats):
if type(weights) not in (list, tuple) or len(weights) > 1000:
raise ValueError("weights.container")
weights = tuple(weights)
if type(seats) is not int or not 0 <= seats <= 10000:
raise ValueError("seats.range")
if len(weights) > 1000 or any(type(w) is not int or w < 0 for w in weights):
raise ValueError("weights.invalid")
total = sum(weights)
if total == 0:
if seats:
raise ValueError("weight.zero")
return [0] * len(weights)
result = [w * seats // total for w in weights]
remaining = seats - sum(result)
order = sorted(range(len(weights)), key=lambda i: (-(weights[i] * seats % total), i))
for i in order[:remaining]:
result[i] += 1
return resultФункція розподілу може забезпечувати загальну суму, але розподіляти окремі частки інакше, ніж очікують користувачі. QuotaMosaic — програма для кодування з ШІ у Windows, де можна дослідити цю відмінність у власному проєкті. Додайте реалізацію, код виклику й кілька очікуваних розподілів до розмови перед запитом зміни коду.
Одне завдання перевірки — розподіл за найбільшими залишками, коли цілі одиниці слід призначати за невід’ємними вагами. Попросіть підключену модель дослідити взаємодію базового розподілу й залишкових одиниць. Додайте приклад рівних залишків і явно вкажіть правило їх розв’язання, щоб зміна порядку не змінила результат непомітно.
Перевіряйте інтерфейс так само ретельно, як арифметику. Визначте значення порожніх даних або нульової суми ваг, коли запитано одиниці, а потім перевірте, як помилки доходять до коду виклику. Запустіть перевірки проєкту на малих незалежно перевірених прикладах і перевірте кінцеву суму та окремі призначення. Збереження одного інваріанта не доводить іншого.
QuotaMosaic підключається до підтримуваних кінцевих точок, сумісних з OpenAI, або Anthropic. Аблітеровану модель ШІ можна обрати, якщо вона доступна; її можливості й межі визначають модель і сервер. Використовуйте модель для дослідження правил і підготовки перевірюваного виправлення, а потім перевірте отриману поведінку у застосунку.
Укажіть порядок рівних залишків, зокрема чи важливий початковий порядок даних. Надайте приклад нічиєї з очікуваним розподілом. Інакше на вигляд нешкідлива зміна сортування може змінити отримувача останньої одиниці.
Ні. Різні розподіли можуть мати однакову суму. Перевірте кількість для кожного отримувача й результат нічиєї. Використовуйте незалежні очікувані приклади, а не лише повторюйте обчислення реалізації в тесті.
Визначте окремі очікування для запиту нуля одиниць і додатної кількості. Перевірте наявний контракт помилки разом із кодом виклику. Модель не повинна вигадувати отримувачів або ділити на невизначену суму, щоб функція щось повернула.
Він задає конкретний контекст перевірки з цілими одиницями й невід’ємними вагами. Якщо застосунок має верхні межі, мінімуми чи інші пріоритети, додайте їх явно. Перевірте, чи зміна досі реалізує політику, потрібну користувачам.
QuotaMosaic · Оновлено 2026-10-25