ბიბლიოთეკა
00/07 · ~36 წთ
GUIDEDECK · ინჟინრებისთვის, ვინც პირველ AI ფუნქციას უშვებს

ვქმნით აპლიკაციებს
LLM-ებით,
რომლებიც მართლა მუშაობს.

36-წუთიანი სამუშაო სესია იმაზე, როგორ დავაპროგრამოთ მოდელი, რომლის სრულად წინასწარმეტყველებაც შეუძლებელია — პრომპტები როგორც თქვენი API, ტიპიზებული JSON გამოსავალი, მოდელისთვის თქვენი კოდის გამოძახების უფლება, სტრიმინგი სისწრაფის შეგრძნებისთვის და როგორ დაამტკიცოთ, რომ ეს მუშაობს.

~36 წთდამწყები → საშუალოვენდორისგან დამოუკიდებელი
გადაახვიეთ
01 · რატომ განსხვავდება LLM-ებით შექმნა 4 წთ

თქვენ იძახებთ ფუნქციას,
რომელიც ბუნდოვანი შავი ყუთია.

ყველა კოდის სტრიქონი, რომელიც აქამდე დაგიწერიათ, დეტერმინისტულია: ერთი და იგივე შესატანი, ერთი და იგივე გამოსავალი, ყოველთვის. LLM ამ დაპირებას არღვევს. ერთი და იგივე პრომპტი ყოველ გამოძახებაზე სხვადასხვა ტექსტს აბრუნებს, და ვერავინ — მისი შემქმნელებიც კი — ვერ გეტყვით ზუსტად, რატომ. კარგად აგება ნიშნავს, დააპროექტოთ ამ გაურკვევლობის გარშემო, ნაცვლად იმისა, რომ თავი მოიტყუოთ, თითქოს ის არ არსებობს.

LLM — Large Language Model — არის პროგრამა, რომელიც უზარმაზარი მოცულობის ტექსტზეა გაწვრთნილი ერთი რამის გასაკეთებლად: მოცემული ტექსტიდან იწინასწარმეტყველოს ყველაზე სავარაუდო შემდეგი ნაწილი, და ასე ისევ და ისევ. მას შიგნით არც ფაქტების ბაზა აქვს და არც ლოგიკის ძრავა — ის ძალიან კარგი პატერნის დამასრულებელია. სწორედ ეს ერთი იდეა ხსნის მის ჯადოსნურობასაც და მის ჩავარდნებსაც.

მენტალური მოდელი, რომელიც იცვლება

  • ჩვეულებრივი ფუნქცია სავაჭრო აპარატია: დააჭირეთ B4-ს და სამუდამოდ იმავე სნეკს მიიღებთ.
  • LLM უფრო ჭკვიან, სწრაფ კოლეგასთან კითხვას ჰგავს — ბრწყინვალეა, ხანდახან თავდაჯერებულად ცდება და ორჯერ სიტყვასიტყვით ერთსა და იმავეს არასდროს იტყვის.
  • Temperature არის რეგულატორი (≈0 → 1), რომელიც განსაზღვრავს, რამდენ შემთხვევითობას ამატებს მოდელი. დაბალი = უფრო სტაბილური და გამეორებადი; მაღალი = უფრო მრავალფეროვანი და შემოქმედებითი.
  • ასე რომ, აღარ ეკითხებით "არის თუ არა გამოსავალი სწორი?" და იწყებთ კითხვას "არის თუ არა ის მისაღები, საკმარისად ხშირად?"
function()
დეტერმინისტული
შესატანი
42 ✓ ყოველთვის
"რა თქმა უნდა…"
LLM()
ალბათური
პრომპტი
"ცხადია! …"
მოგონილი ფაქტი ✕

ერთი და იგივე გამოძახება, დამაჯერებელი პასუხების სპექტრი — უმეტესობა კარგი, ზოგი მცდარი. დააპროექტეთ სპექტრზე, არა ერთ მნიშვნელობაზე.

არადეტერმინიზმი

დაგეგმეთ მრავალფეროვნება

არასდროს შეამოწმოთ სტრიქონების ზუსტი ტოლობა. დაავალიდირეთ ფორმა და თვისებები ("არის ეს ვალიდური JSON ამ ველებით?"), და არა ზუსტი სიტყვები.

ჰალუცინაცია

თავდაჯერებულად მცდარი

მოდელი ხანდახან გამოიგონებს ფაქტებს, სახელებს ან API-ებს, რომლებიც სწორად ჟღერს. ის არ იტყუება — ის პატერნს ასრულებს. დააფუძნეთ და შეამოწმეთ (ნაწილი 05).

ფასი და შეყოვნება

ტოკენები გროვდება

იხდით თითოეულ ტოკენზე (ტექსტის ნაწილი, სიტყვის ~¾) შესვლისა და გამოსვლისას, დიდი მოდელები კი უფრო ნელა პასუხობენ. მოდელის არჩევა რეალური საინჟინრო კომპრომისია და არა შემდგომში მოსაფიქრებელი წვრილმანი.

02 · ეფექტური პრომპტინგი 6 წთ

პრომპტი არის თქვენი API —
ისე დაწერეთ, როგორც API.

ჩვეულებრივი ბიბლიოთეკის შემთხვევაში ფუნქციის ხელმოწერას კითხულობთ. LLM-თან კი პრომპტი არის ინტერფეისი, რომელსაც თქვენ აპროექტებთ: ის განსაზღვრავს როლს, წესებს, მაგალითებს და იმ ფორმას, რომელიც პასუხად გინდათ. ბუნდოვანი პრომპტი — ბუნდოვანი პროდუქტი. ზუსტი, სტრუქტურირებული პრომპტი ყველაზე დიდი ბერკეტია, რომელსაც თქვენ აკონტროლებთ.

პრომპტი — ყველაფერი, რასაც მოდელს ერთი გამოძახებისთვის უგზავნით. ჩვეულებრივ ის იყოფა system შეტყობინებად (მუდმივი ინსტრუქციები — ვინ არის მოდელი და რა წესებს უნდა დაემორჩილოს) და user შეტყობინებად (ამ ჯერზე რეალურად მოთხოვნილი დავალება). წარმოიდგინეთ სამსახურის აღწერა და დღევანდელი დავალება.

system = მუდმივი კონტრაქტი; user = ცვალებადი მოთხოვნა. წესები system შეტყობინებაში დატოვეთ, რომ ყოველი ჯერი დაემორჩილოს მათ.

კარგი პრომპტის ოთხი ჩვევა

  • მიეცით როლი. "შენ ხარ მხარდაჭერის სორტირების ასისტენტი" ტონსა და მსჯელობას უკეთ წარმართავს, ვიდრე მთელი გვერდი წესებისა.
  • იყავით კონკრეტული გამოსავალზე. მიუთითეთ ფორმატი, სიგრძე და ის, რა ქნას, როცა დარწმუნებული არაა ("უპასუხე UNKNOWN").
  • აჩვენეთ და არა მხოლოდ უთხარით. ერთი-ორი გარჩეული მაგალითი (few-shot) აღწერის აბზაცებს აჯობებს.
  • დაასახელეთ გარდრეილები. რა არასდროს უნდა ქნას და როგორ მოიქცეს, როცა შესატანი აკლია ან მტრულია.
Few-shot პრომპტინგი — პრომპტში რამდენიმე ამოხსნილი მაგალითის ჩასმა, რომ მოდელმა პატერნი გადმოიღოს. "Zero-shot" უბრალოდ კითხვაა; "few-shot" კითხვაცაა და ორ-სამი შესატანი→გამოსავალი წყვილის ჩვენებაც. ეს ყველაზე იაფი გზაა სიზუსტის ასაწევად.
ბუნდოვანი — ბუნდოვანი პასუხი
// no role, no format, no examples const prompt = "Sort out this support email and tell me what it's about." // → rambling paragraph, different shape every call, // impossible to parse or trust downstream
კონკრეტული — როლი, წესები, ფორმა
const system = `You are a support-triage assistant. Classify each email. category ∈ {billing, bug, other}. If unsure, use "other". Reply with JSON only.` // few-shot: show one solved example // in: "I was charged twice" out: {"category":"billing"} const user = `Email: ${ticket.body}`

ჰგავს  ახალი თანამშრომლის ადაპტაციას: მკაფიო როლი, ორიოდე გარჩეული მაგალითი და აკრძალვების სია სასარგებლო პირველ დღეს გაძლევთ.

03 · JSON გამოსავალი და ინსტრუმენტები 6 წთ

მიიღეთ ტიპიანი JSON —
და მიეცით მოდელს თქვენი კოდის გამოძახების უფლება.

პროზა შესანიშნავია ადამიანისთვის და უსარგებლო თქვენი პროგრამის დანარჩენი ნაწილისთვის. ორი შესაძლებლობა ჩატ-სათამაშოს სამშენებლო აგურად აქცევს: სტრუქტურირებული გამოსავალი (მოდელი აბრუნებს მონაცემებს, რომლებიც თქვენ მიერ განსაზღვრულ სქემას შეესაბამება) და ინსტრუმენტების გამოძახება (მოდელი ითხოვს, რომ თქვენი ფუნქციები გაეშვას და შედეგებს იყენებს).

სტრუქტურირებული გამოსავალი — მოდელის იძულება, პასუხი გასცეს JSON-ად, რომელიც თქვენ მიერ მოწოდებულ სქემას შეესაბამება. თქვენ აწვდით ფორმას (ხშირად zod ან JSON Schema), SDK ამით ზღუდავს მოდელს და უკან იღებთ ტიპიან ობიექტს, რომელიც პირდაპირ გამოგადგებათ — არავითარი მყიფე სტრიქონების პარსინგი და არავითარი "გთხოვ, JSON-ად უპასუხე" და იმედი.
import { generateObject } from "ai"
import { z } from "zod"

const { object } = await generateObject({
  model,
  schema: z.object({
    category: z.enum(["billing", "bug", "other"]),
    urgency: z.number().min(1).max(5),
  }),
  prompt: ticket.body,
})
// object.category is a typed string — use it directly

სქემა არის კონტრაქტი. უკან იღებთ ტიპიან ობიექტს და არა აბზაცს, რომელიც უნდა დაპარსოთ და იმედი იქონიოთ.

ინსტრუმენტების გამოძახება (იგივე function calling) — თქვენ აღწერთ ფუნქციებს, რომელთა გამოძახების უფლებაც მოდელს აქვს (სახელი, აღწერა, არგუმენტების სქემა). როცა მოდელი გადაწყვეტს, რომ ერთ-ერთი სჭირდება, ის არაფერს უშვებს — ის აბრუნებს მოთხოვნას, მაგალითად getWeather({city:"Berlin"}). რეალურ ფუნქციას თქვენი კოდი უშვებს და შედეგს უკან აწვდის, შემდეგ კი მოდელი პასუხს რეალური მონაცემებით ასრულებს.
const { text } = await generateText({
  model,
  prompt: "How many open billing tickets today?",
  tools: {
    countTickets: {
      description: "Count tickets by status",
      parameters: z.object({ status: z.string() }),
      execute: async ({ status }) => db.count(status),
    },
  },
})
// model asks → your code runs → model answers with the number

მოდელი თქვენს მონაცემთა ბაზას არასდროს ეხება. ის ინსტრუმენტს ითხოვს; თქვენ უშვებთ და შედეგს აბრუნებთ; ის კი რეალური მონაცემებით პასუხობს.

MCP · Model Context Protocol

ერთი ღია სტანდარტი ინსტრუმენტების ჩასართავად

ინსტრუმენტების ხელით ჩართვა ყოველ აპლიკაციაში მოსაბეზრებელი ხდება. MCP არის ღია სტანდარტი (წარადგინა Anthropic-მა), რომელიც ნებისმიერ ჰოსტს — Claude Desktop, Claude Code, IDE-ს გაფართოება — საშუალებას აძლევს, დაუკავშირდეს სერვერს, რომელიც საერთო პროტოკოლით გასცემს ინსტრუმენტებს, რესურსებსა და პრომპტებს. ტრანსპორტებია stdio (ლოკალური) და streamable HTTP (დისტანციური). სერვერს ერთხელ ააგებთ; ყველა MCP ჰოსტი გამოიყენებს. ღრმად ვსაუბრობთ MCP-ის დეკში.

04 · სტრიმინგი და UX 4 წთ

აჩვენეთ ტოკენები მოსვლისთანავე,
და არა ხანგრძლივი ლოდინის შემდეგ.

კარგ პასუხს დასრულებამდე შეიძლება მრავალი წამი დასჭირდეს. თუ სანამ რამეს აჩვენებდეთ, მთელს დაელოდებით, აპლიკაცია გატეხილი მოგეჩვენებათ. სტრიმინგი პასუხს ტოკენ-ტოკენ აგზავნის, ასე რომ მომხმარებელი სიტყვების გამოჩენას მაშინვე ხედავს — იგივე საერთო დრო, სრულიად სხვა შეგრძნება.

სტრიმინგი — მოდელის პასუხის მიწოდება პატარა ნაწილებად, გენერაციის პარალელურად და არა ერთი საბოლოო ნაგლეჯით. მთავარი მეტრიკა ხდება დრო პირველ ტოკენამდე (რამდენად სწრაფად ჩნდება რამე) და არა მხოლოდ საერთო დრო. ეს LLM-ის ინტერფეისში აღქმული სისწრაფის ყველაზე დიდი მოგებაა.
blocking … spinner … (nothing visible) all streaming The bill was first token ↑ early same end →

ორივე ერთსა და იმავე მომენტში სრულდება. სტრიმინგი უბრალოდ იმას შველის, რომ მომხმარებელი მთელი გზა მკვდარ სპინერს არ უყუროს.

სტრიმინგი პრაქტიკაში

import { streamText } from "ai"

const result = streamText({
  model,
  prompt: ticket.body,
})

// pipe straight to the browser; UI renders as it flows
return result.toUIMessageStreamResponse()
  • აჩვენეთ კურსორი, სანამ ტოკენები მოდის — ეს "ხმამაღლა ფიქრად" იკითხება.
  • მიეცით გაჩერების საშუალება. გაუქმების ღილაკი, რომელიც მოთხოვნას წყვეტს, ტოკენებსაც ზოგავს და ნერვებსაც.
  • გაითვალისწინეთ: ნახევრად დასრულებულ პასუხს ვერ დაავალიდირებთ — საბოლოო შემოწმებები ნაკადის დასრულების შემდეგ ჩაატარეთ.
05 · შეფასება, გარდრეილები 6 წთ

როგორ გაიგებთ, რომ მუშაობს,
როცა გამოსავალი მუდამ იცვლება?

ვერ დაწერთ assert(output === expected) მოდელისთვის, რომელიც თავს არასდროს იმეორებს. ამიტომ სხვანაირად ტესტავთ: აგებთ შეფასებული მაგალითების პატარა ნაკრებს (შეფასებები), ყოველ ცვლილებას მათზე ქულავთ და ცოცხალ სისტემას ახვევთ გარდრეილებით, რომლებიც ცუდ გამოსავალს იჭერს, სანამ მომხმარებელი მას დაინახავს.

შეფასება — გამეორებადი ტესტი, რომელიც მოდელის გამოსავალს ცნობილ-სწორ შემთხვევებთან ადარებს და ქულავს. ეს არის იუნიტ-ტესტი ისეთი ქცევისთვის, რომელსაც ზუსტ სტრიქონზე ვერ მიაბამთ: "ტოლია X-ის"-ის ნაცვლად ის ამოწმებს, "სწორი კატეგორია აირჩია?" ან "შეიცავს შეკვეთის ნომერს?" ფიქსირებულ მონაცემთა ნაკრებზე და გავლის მაჩვენებელს გვაწვდის.

გაუშვით ნაკრები, შეაფასეთ პასუხები, თვალი ადევნეთ გავლის მაჩვენებელს. პრომპტი ან მოდელი მხოლოდ მაშინ შეცვალეთ, თუ ციფრი იზრდება.

პასუხის შეფასების სამი გზა

  • ზუსტი / წესებზე დაფუძნებული — სტრუქტურირებული გამოსავლისთვის: დაემთხვა category ეტიკეტს? იაფი, ობიექტური, თქვენი თავდაცვის პირველი ხაზი.
  • შემცველობა / regex — შეიცავდა პასუხი შეკვეთის ნომერს და აირიდა აკრძალული ფრაზა?
  • LLM როგორც მსაჯი — მეორე მოდელის გამოძახებით შეაფასეთ ბუნდოვანი თვისებები ("არის ეს სასარგებლო და თემაზე, 1–5?"). ძლიერია, მაგრამ ისიც მოდელია, ამიტომ შერჩევით შეამოწმეთ.
ჰალუცინაცია — გამოსავალი, რომელიც გამართული და თავდაჯერებულია, მაგრამ ფაქტობრივად მცდარი ან მოგონილი. მოდელი გაუმართავი არაა; ის ხარვეზს ყველაზე დამაჯერებლად ჟღერადი ტექსტით ავსებს. წამალი იშვიათად არის მხოლოდ "უკეთესი პრომპტი" — წამალი მოდელის რეალურ მონაცემებზე დაფუძნება და დაბრუნებულის გადამოწმებაა.

გარდრეილები — უსაფრთხოების ღვედები

შემავალი დაცვა

შეამოწმეთ გაგზავნამდე

მოაშორეთ ან უარყავით პრომპტ-ინექციის მცდელობები და აშკარად ცუდი შესატანი. შეზღუდეთ სიგრძე, რომ გიგანტურმა ჩასმამ თქვენი ტოკენების ბიუჯეტი არ ააფეთქოს.

გამომავალი დაცვა

დაავალიდირეთ, სანამ ენდობით

სტრუქტურირებული გამოსავალი ხელახლა შეამოწმეთ სქემასთან. თუ ინსტრუმენტი "გამოიძახეს", გაშვებამდე დარწმუნდით, რომ არგუმენტები საღია. მოდელის ტექსტზე არასდროს გაუშვათ eval().

დაფუძნება

მიეცით ფაქტები

ჩადეთ პრომპტში რეალური მონაცემები (ნამდვილი დავალება, ნამდვილი პოლიტიკა) და უთხარით მოდელს, პასუხი მხოლოდ მათზე დაყრდნობით გასცეს — და თქვას, როცა პასუხი იქ არაა. სწორედ ამას აავტომატებს RAG.

ჰგავს  სამზარეულოს: შეფასებები არის რეცეპტთან შედარებით დაგემოვნება სერვისამდე; გარდრეილები კი სანიტარი ინსპექტორია, რომელიც ცუდ კერძს მაგიდამდე მისვლის საშუალებას არ აძლევს.

06 · ინსტრუმენტები — მოდელები და SDK 6 წთ

აირჩიეთ მოდელი და SDK —
კომპრომისების გათვალისწინებით.

LLM-აპლიკაციას ორი არჩევანი აყალიბებს: რომელი მოდელი პასუხობს პრომპტს და რომელი SDK-ით აშენებთ. არცერთი არაა სამუდამო — კარგი დიზაინი მოდელების ერთი ინტერფეისის უკან გამოცვლის საშუალებას გაძლევთ — მაგრამ ლანდშაფტის ცოდნა გიცავთ იმისგან, რომ უბრალოდ ბოლო ბლოგპოსტის არჩევანი გაიმეოროთ.

გამიჯვნა, რომელსაც მნიშვნელობა აქვს — მოდელი ის ტვინია, რომელსაც API-ით იძახებთ (ან თავად უშვებთ); SDK კი თქვენს აპლიკაციაში ის ბიბლიოთეკაა, რომელიც გამოძახებას აფორმატებს, პასუხს სტრიმავს და ინსტრუმენტებს აერთებს. ჩვეულებრივ ერთ SDK-ს ირჩევთ და ორ-სამ მოდელს კონფიგის ერთი დროშის მოშორებით გიჭირავთ.

მოდელები — ტვინები

Anthropic Claude

Opus · Sonnet · Haiku

დადებითი: ძლიერი მსჯელობა, კოდირება და ინსტრუმენტების გამოყენება; თითო საფეხური თითო საჭიროებაზე — Opus (ყველაზე ღრმა), Sonnet (დაბალანსებული), Haiku (სწრაფი/იაფი).
უარყოფითი: ზედა საფეხური ტოკენზე უფრო ძვირია, ვიდრე პატარა ღია მოდელები.

OpenAI GPT

ნაგულისხმევი, რომელსაც ბევრი მიმართავს

დადებითი: უზარმაზარი ეკოსისტემა, მომწიფებული ინსტრუმენტები, ფართო ნაცნობობა გუნდებში.
უარყოფითი: ერთი ვენდორი; შესაძლებლობებისა და ფასების საფეხურები იცვლება, ამიტომ ვერსიები დააფიქსირეთ.

Google Gemini

გრძელი კონტექსტი & Google-ის სტეკი

დადებითი: ძალიან დიდი კონტექსტის ფანჯრები და მჭიდრო თავსებადობა, თუ უკვე Google Cloud-ზე ცხოვრობთ.
უარყოფითი: ინსტრუმენტები და ქცევა დანარჩენებისგან განსხვავდება — პორტირების დრო ბიუჯეტში ჩადეთ.

ღია წონები

Llama · Mistral · DeepSeek

დადებითი: თავად უშვებთ — კონფიდენციალურობა, ტოკენზე ანგარიშის გარეშე, სრული კონტროლი; შესანიშნავია დიდი მოცულობისთვის.
უარყოფითი: GPU-ები, მასშტაბირება და ოპერაციები თქვენზეა; ხარისხით საუკეთესო დახურულ მოდელებს ჯერ კიდევ ჩამორჩება.

როგორ აირჩიოთ: პროტოტიპი ძლიერ ჰოსტირებულ მოდელზე გააკეთეთ (Sonnet / GPT / Gemini), შემდეგ კი დავალების მიხედვით უფრო იაფ ან ღია მოდელზე ჩამოდით მას შემდეგ, რაც შეფასებები დაამტკიცებს, რომ ხარისხი შენარჩუნებულია. მარტივი გამოძახებები პატარა მოდელებს მიმართეთ, რთული — დიდებს.

SDK-ები & ფრეიმვორკები — გაყვანილობა

Vercel AI SDK — აპლიკაციაში ინტეგრაცია, TypeScript-first

import { generateText } from "ai"
import { anthropic } from "@ai-sdk/anthropic"

const { text } = await generateText({
  model: anthropic("claude-..."),
  prompt,
})
// same code; swap provider import to change model
დადებითი
ერთი ტიპიზებული API ყველა პროვაიდერზე; პირველხარისხოვანი სტრიმინგი და React-ის ჰუკები; მოდელს ერთი იმპორტის შეცვლით გამოცვლით.
უარყოფითი
TypeScript/JS-ის სამყარო; მძიმე მონაცემთა პაიპლაინების გაყვანილობაში Python-ის ფრეიმვორკებს ჩამორჩება.
როდის აირჩიოთ
ვებ- ან Node-აპლიკაციას უშვებთ და სტრიმინგის ინტერფეისი სწრაფად გინდათ.

LangChain / LangGraph — ორკესტრაცია, Python-ისკენ გადახრით

დადებითი
მზა სამშენებლო აგურები ჯაჭვებისთვის, აგენტებისთვის, მეხსიერებისა და მრავალი ინტეგრაციისთვის; LangGraph ამატებს ცხად, მდგომარეობის მქონე მრავალნაბიჯიან გრაფებს.
უარყოფითი
დიდი ზედაპირი და აბსტრაქციები შეიძლება მალავდეს, რა იგზავნება რეალურად მოდელთან — ადვილია ზედმეტად გაართულოთ ის, რასაც რამდენიმე API-გამოძახება აკეთებდა.
როდის აირჩიოთ
რთულ, მრავალნაბიჯიან აგენტურ ვორქფლოუებს აშენებთ და მზა ორკესტრაცია გინდათ.

LlamaIndex — მონაცემები & მოძიება, Python-ისკენ გადახრით

დადებითი
სპეციალურად თქვენი მონაცემების LLM-თან დასაკავშირებლადაა შექმნილი — ლოადერები, ინდექსაცია, ჩანკინგი და მოძიება RAG-ისთვის, კარგად გაკეთებული.
უარყოფითი
ზოგად ფრეიმვორკზე ვიწროა; ჩვეულებრივი ჩატის ან ინსტრუმენტების გამოძახების ფუნქციონალისთვის ის ზედმეტია.
როდის აირჩიოთ
რთული ნაწილი სწორი კონტექსტის მოძიებაა დიდი ან არეული მონაცემებიდან და არა ჩატის ციკლი.

გულახდილი ნაგულისხმევი

დაიწყეთ Vercel AI SDK-ით, რომელიც ძლიერ ჰოსტირებულ მოდელს ესაუბრება. LangGraph-ს მხოლოდ მაშინ მიმართეთ, როცა ორკესტრაცია ნამდვილად მრავალნაბიჯიანი ხდება, LlamaIndex-ს კი მაშინ, როცა რეალური პრობლემა თქვენს საკუთარ მონაცემებში მოძიებაა. პირველ ფუნქციონალს უმეტესად არცერთი მძიმე ფრეიმვორკი არ სჭირდება — SDK და კარგი პრომპტი შორს წაგიყვანთ.

07 · LLM-ფუნქციონალი და შეჯამება 4 წთ

ერთი ფუნქციონალი, თავიდან ბოლომდე —
და ხუთი რამ, რითაც გახვალთ.

ავაწყოთ ნაწილები ერთ რეალურ, პატარა ფუნქციონალად: შემოსული მხარდაჭერის ტიკეტების ავტომატური სორტირება. ამ დეკის ყოველი იდეა ზუსტად ერთხელ ჩნდება.

პრომპტი → სტრუქტურირებული გამოძახება → ვალიდაცია → ინსტრუმენტი. შეფასებები გვერდით დგას, როგორც ყოველი ცვლილების უსაფრთხოების ბადე.

ხუთი მოძრავი ნაწილი

  • პრომპტი (02) — system შეტყობინება მოდელს სორტირების როლსა და წესებს აძლევს, ერთი few-shot მაგალითით.
  • სტრუქტურირებული გამოსავალი (03) — სქემა აბრუნებს { category, urgency }-ს, ტიპიანს და დასაპარსად ვარგისს.
  • ინსტრუმენტების გამოძახება (03) — assign() ინსტრუმენტი ტიკეტს რეალური მონაცემებით სწორ რიგში მიმართავს.
  • გარდრეილები (05) — ხელახლა დაავალიდირეთ JSON; მოქმედებამდე urgency 1–5 დიაპაზონში ჩააქციეთ.
  • შეფასებები (05) — 30 მონიშნული ტიკეტი ყოველ პრომპტისა თუ მოდელის ცვლილებას აკონტროლებს. ადამიანისთვის განკუთვნილი შეჯამებისთვის აგენტის პასუხი დასტრიმეთ (04).

ხუთი წესი, რითაც გახვალთ

1დააპროექტეთ არადეტერმინიზმზე. დაავალიდირეთ ფორმა და თვისებები, არასდროს ზუსტი სტრიქონები. ზღვარი არის მისაღები საკმარისად ხშირად.
2პრომპტი თქვენი API-ა. როლი, წესები, ფორმატი და few-shot მაგალითი ყველაზე დიდი ბერკეტია, რომელსაც აკონტროლებთ.
3ითხოვეთ სტრუქტურა; მიეცით თქვენი კოდის გამოძახების უფლება. ტიპიანი JSON და ინსტრუმენტების გამოძახება ჩატს რეალურ სამშენებლო აგურად აქცევს.
4დასტრიმეთ შეგრძნებისთვის; დაიცავით ნდობისთვის. ტოკენები ადრე, ვალიდაცია გვიან — მოდელის გამოსავალი შეუმოწმებლად არასდროს გაუშვათ.
5შეფასებები მოსაზრებებამდე. პატარა დაქულავებული ნაკრები "უკეთესად მეჩვენება"-ს ციფრად აქცევს, რომელზეც დეპლოი შეგიძლიათ.

სად წახვიდეთ შემდეგ

ერთი წინადადება დასამახსოვრებლად

"მოექეცით მოდელს როგორც სწრაფ, შეცდომისკენ მიდრეკილ კოლეგას — მიეცით მკაფიო ინსტრუქციები და მერე შეამოწმეთ ნამუშევარი."

ცოდნის შემოწმება

დაგამახსოვრდათ?

ხუთი სწრაფი კითხვა არადეტერმინიზმზე, პრომპტინგზე, სტრუქტურირებულ გამოსავალზე, სტრიმინგსა და შეფასებებზე — მყისიერი უკუკავშირი, ავტორიზაციის გარეშე.

შეაფასეთ ეს დასტა
იყავით პირველი

ნავიგაცია ← → ღილაკებით ან სქროლით · უკან ბიბლიოთეკაში