Үлкен тілдік үлгісіз ЖИ: өз үлгімізді жасаймыз 30-сабақ (барлығы 30)
30-сабақ. Консольдық үлгіні шығарып, тұжырымдарды тексереміз
Дайын дәрі қобдишасы әр заттың атауы, мерзімі және нұсқауы белгілі болса ғана пайдалы. Біздің шығарылым да жинақталған құрал: бағдарлама, ереже, оқу карточкалары, іске қосу пәрмені және тексерілетін шектер. Ол ойдан алынған үйірме туралы екі түрлі қысқа сұраққа ғана жауап береді.
Мәтін ИИ көмегімен аударылды.
Бұл не үшін керек?
Дайын дәрі қобдишасы әр заттың атауы, мерзімі және нұсқауы белгілі болса ғана пайдалы. Біздің шығарылым да жинақталған құрал: бағдарлама, ереже, оқу карточкалары, іске қосу пәрмені және тексерілетін шектер. Ол ойдан алынған үйірме туралы екі түрлі қысқа сұраққа ғана жауап береді.
Кодқа дейін
30-қадамдағы бес файлдың бәрін бірге көшіріңіз: main.py, engine.py, checks.py, facts.json, examples.json. Пәрмен күн мен сұрақты қабылдайды: тырнақша бос орындары бар сұрақты бір пәрмен бөлігі ретінде сақтайды. Қосымша --trace күннің алдына қойылып, шешім жолын шығарады. sys.argv пәрмен бөліктерін сақтайды; len пәрменнің екі рұқсат етілген түрін ажыратады. sys.exit(2) қате шақыруды қате кодымен тоқтатады. try мәтіндегі күнді күнтізбелік күнге айналдырып көреді, except ValueError қате пішімді ұстап, түсінікті хабар береді. Бұл күн — сұралып отырған күн, оқу жазбасы дәл қазір шын деген мәлімдеме емес.
Осы қадамның файлдары: examples.json, checks.py, engine.py, facts.json, main.py.
Жоба түбірінен қадам қалтасына өтіп, бағдарламаны іске қосыңыз:
cd course/kazakh-ai/step-30
python3 main.py 2026-09-24 "Шахмат қашан?"
Windows жүйесінде python3 орнына py жазыңыз.
import sys
from datetime import date
from engine import answer
if len(sys.argv) == 3:
show_trace = False
raw_date = sys.argv[1]
question = sys.argv[2]
elif len(sys.argv) == 4 and sys.argv[1] == "--trace":
show_trace = True
raw_date = sys.argv[2]
question = sys.argv[3]
else:
print('Қолдану: python3 main.py [--trace] YYYY-MM-DD "Сұрақ"')
sys.exit(2)
try:
on_date = date.fromisoformat(raw_date)
except ValueError:
print("Қате күн: YYYY-MM-DD түрінде жазыңыз")
sys.exit(2)
result = answer(question, on_date)
print(result["text"])
if show_trace:
for line in result["trace"]:
print("Із:", line)
Бағдарлама қалай жұмыс істейді?
Қадам қалтасында python3 main.py 2026-09-24 "Шахмат қашан?" пәрменін орындаңыз: шахмат үйірмесінің уақыты: бейсенбі, 15:00 | 2026-09-24 күнгі дерек | дереккөз: club-sheet-01 шығады. Сурет қайда? сұрағына білмеймін: дерек жоқ, Шахмат қашан қайда? сұрағына бір түрді таңдауды өтіну, 2027-01-01 күніне мерзімі өткендіктен бас тарту шығады. --trace қоссаңыз, дереккөзді тексерудің бес қадамын көресіз. 25-сабақтағы шағын бақылау жиыны тек сұрақ түрін өлшеді; ол шын қызмет сапасын дәлелдемейді. Біз әмбебап ЖИ емес, жергілікті тар үлгі жасадық. Оқу кодында ақылы API сұрауының болмауы барлық шығын нөл деген сөз емес; еркін мәтін жасамау бастапқы дерек қатесін мүмкін емес етпейді.
Тірек сызба
Пәрмен + күн + сұрақ → сөз тексерісі → түр → бір карточка → жарамды күн → жауап пен дереккөз; әйтпесе түсінікті бас тарту.
Еске түсіріп, тексеріңіз
Кодты жауып, тірек сызбадағы тізбекті қалпына келтіріңіз. Төрт пәрменді тексеріңіз: таныс сұрақ, бейтаныс үйірме, мерзімі өткен күн және --trace. Көмек: 2026-09-24 күні checked_on мен valid_until арасына кіреді, ал 2027-01-01 кірмейді. Ескі күннің үлгі нәтижесі: білмеймін: бұл күнге жарамды дерек жоқ; бейтаныс үйірме үшін: білмеймін: таныс емес сөз. Қорытынды қорғау: жауаптың карточка мен мерзімге сүйенгенін көрсетіңіз, екі орынды бас тартуды атаңыз, 25-сабақтағы 1.0 саны неге қатесіздік емес екенін және салыстырмалы тәжірибесіз «мың есе» деуге неге болмайтынын түсіндіріңіз. Жиі қате: оқу күнін шын үйірменің бүгінгі кестесі деп атау.
Пікірлер (0)
Пікір қалдыру үшін кіріңіз →
Әзірге пікір жоқ. Бірінші болыңыз.