Tiešs pieprasījums modelim

ai_request(prompt, text, response_schema=null, think_mode=false, ai_assistant_id=null)

Nosūta pieprasījumu AI modelim un atgriež ģenerēto atbildi.

Parametri

Parametrs Apraksts
prompt Sistēmas uzvedne AI modelim.
text Lietotāja ievade, kas nosūtīta modelim.
response_schema Neobligāta JSON shēma strukturētām atbildēm. Nodod None vai 0, lai atspējotu strukturētu izvadi.
think_mode Iespējo modeļa spriešanas režīmu. Noklusējums: False.
ai_assistant_id Neobligāts. Var būt vai nu AI asistenta ID, vai konfigurācijas objekts. Ja tiek norādīts asistenta ID, funkcija automātiski izmanto šī asistenta iestatījumus (nodrošinātājs, modelis, API atslēga un citi parametri), tāpēc tie nav jānorāda manuāli.

Piemēri

AI asistenta izmantošana pēc ID

ai_request(prompt, text, 0, 0, 123)

Šajā piemērā funkcija ielādē visus iestatījumus no AI asistenta ar ID 123, tāpēc jums nav manuāli jānorāda nodrošinātājs, modelis, API atslēga vai cita konfigurācija.


Modeļa konfigurācijas manuāla nodošana

ai_request(
    prompt,
    text,
    0,
    0,
    {
        "provider": "openai",
        "api_key": "#{openai_key}",
        "model": "gpt-5-mini"
    }
)

Šajā gadījumā tiek izmantota norādītā konfigurācija, nevis AI asistents.

Lūdzu, ņemiet vērā

Izteiksmēs mainīgie tiek rakstīti, izmantojot tikai to nosaukumus, bez #{}.

Atbilde tiek atgriezta kā vienkāršs teksts, tāpēc to var nosūtīt tieši klientam vai saglabāt mainīgajā.

Metode pacietīgi gaida modeļa atbildi, tāpēc pat ilgstoši pieprasījumi, piemēram, lielas shēmas vai gari teksti, tiks pabeigti bez pārtraukuma.

Kad nepieciešami strukturēti dati, nevis brīvas formas teksts, piemēram, kategorija, jā/nē atbilde vai iegūtie lauki, kā trešo argumentu nododiet atbildes shēmu.

Jums nav jāveido shēmas no nulles. Izmantojiet gatavu veidni un pārdēvējiet laukus pēc nepieciešamības.

“Izvēlēties no saraksta” veidne

Klientu pieprasījumu klasificēšanai, noskaņojuma noteikšanai un līdzīgiem uzdevumiem.

local result = ai_request('Determine the category of the request.', question, {
    "type": "object",
    "properties": {
        "category": {
            "type": "string",
            "enum": ["complaint", "question", "order"]
        }
    },
    "required": ["category"]
})
category = get(result, 'category')

Modelis atgriezīs tieši vienu no enum norādītajām vērtībām un neko citu.

“Jā/Nē” veidne

Kopējamais piemērs:

local result = ai_request('Has the customer agreed to make the purchase?', question, {
    "type": "object",
    "properties": {
        "agree": {
            "type": "boolean"
        }
    },
    "required": ["agree"]
})

agree = get(result, 'agree')
“Iegūt datus no teksta” veidne

Kopējamais piemērs:

local result = ai_request('Extract the name and phone number from the message.', question, {
    "type": "object",
    "properties": {
        "name": {
            "type": "string"
        },
        "phone": {
            "type": "string"
        }
    },
    "required": ["name", "phone"]
})

client_name = get(result, 'name')
client_phone = get(result, 'phone')
📖 Ātrā atsauce veidņu pielāgošanai
  1. "string" — teksts
  2. "number" — skaitlis
  3. "boolean"true vai false
  4. enum — atļauto vērtību saraksts; modelis nevar atgriezt neko ārpus šī saraksta
  5. required — obligāto lauku saraksts
  6. Lauku nosaukumus, piemēram, category, name un phone, var brīvi izvēlēties

Uz shēmas balstīta atbilde tiek atgriezta kā JSON virkne. Atsevišķus laukus var iegūt, izmantojot standarta metodi get().

Lūdzu, ņemiet vērā

Piemēros result tiek deklarēts, izmantojot local. Tas nozīmē, ka neapstrādātā AI atbilde netiks saglabāta ierakstā; tur tiks saglabāti tikai nepieciešamie lauki.

Spriešanas režīms

Spriešanas režīmu var iespējot, izmantojot ceturto argumentu. Šajā režīmā modelis vispirms pārdomā uzdevumu un pēc tam sniedz atbildi.

Tas ir noderīgi sarežģītiem pieprasījumiem, kas ietver analīzi, aprēķinus vai vairāku soļu loģiku. Atbilde prasīs ievērojami ilgāku laiku, tāpēc spriešanas režīms pēc noklusējuma ir izslēgts.

answer = ai_request(
    'Solve the customer’s problem and explain the solution.',
    question,
    '',
    true
)

Ja atbildes shēma nav nepieciešama, kā trešo argumentu nododiet tukšu virkni '', kā parādīts piemērā.

Kā izdzēst tērzēšanas vēsturi ar AI asistentu

clear_assistant_chat_history() - šī funkcija dzēš klienta tērzēšanas vēsturi ar asistentu. Tai nav parametru.

Piemērs

  1. Veidotāja bloka iestatījumi

  1. AI asistenta cilnes iestatījumi

Kā iesniegt jautājumu AI asistentam

ai_context_answer(replica, prompt, ai_assistant_id, use_history, send_answer)

Parametri:

Parametrs Apraksts Piezīme
**!** replica obligāts parametrs, ziņojums asistentam
prompt neobligāts parametrs, instrukcijas asistentam ja parametrs nav norādīts, bet ir norādīts parametrs ai_assistant_id, tiks izmantotas instrukcijas no norādītā asistenta iestatījumiem
ai_assistant_id asistenta ID, kuram tiks nosūtīts jautājums; ja nav norādīts, tiks izmantots asistents bez noklusējuma iestatījumiem
use_history vai asistentam jāizmanto tērzēšanas vēsture, lai atbildētu uz jautājumu True - izmantot, False - neizmantot. Pēc noklusējuma - True
send_answer nosūtīt atbildi pēc asistenta taimauta perioda Lai iespējotu, nododiet "1"

Sīkāka informācija par parametru send_answer:

Asistenta iestatījumos ir iekļauti parametri, kurus var konfigurēt gadījumā, ja bota atbilde aizņem ilgu laiku

Standarta sarunā ar asistentu (nevis caur funkciju), ja atbilde aizņem ilgāk par noteikto ierobežojumu (piemēram, 20 sekundes), klients tiek informēts par kavēšanos. Asistenta atbilde pēc tam tiek nosūtīta tērzēšanai, tiklīdz tā ir ģenerēta.

Pieprasījumiem, kas veikti, izmantojot funkciju kalkulatorā, ja asistentam nepieciešams pārāk ilgs laiks, lai atbildētu, funkcijas rezultātā tiek iekļauts kavēšanās ziņojums. Šis parametrs ļauj nosūtīt asistenta atbildi atsevišķi, kad tā ir gatava.

Kā iemācīt botam analizēt savu pieredzi un ģenerēt pogas

Izmantosim funkcijas clean_assistant_chat_history() un ai_context_answer(replica, prompt) zemāk esošajā piemērā. Ir nepieciešams arī piekļūt kalkulatora komponentam piltuves veidotājā.

Šis piemērs ilustrē, kā parametrus replica un prompt var efektīvi izmantot praksē.

Ir nepieciešams izveidot bloku veidotājā, kas satur tukšu lauku ar iegultajiem mainīgajiem #{replica_rec2} un #{ai_answer_rec}, kas attēlo asistenta pirmo un otro atbildi vienā nosūtāmajā ziņojumā.

Tagad tieši kalkulatorā definējiet divas funkcijas.

Izmantojiet mainīgo ar iegultu funkciju papildu pogu iestatījumos (skatiet iepriekšējo piemēru), lai dinamiski ģenerētu pogas, pamatojoties uz parametra vērtību.

Informāciju par pakalpojumiem bots iegūst no mainīgā service_info, kas satur iegultu funkciju — get_info_for_booking() — pakalpojumu datu nolasīšanai. Piemērs, kā izmantot šo funkciju, tika parādīts iepriekš.

Lūk, rezultāts.

Koda piemērs:

clear_assistant_chat_history()

replica_rec2 = ai_context_answer(question, 'ANSWER THE QUESTIONS', 3)

prompt = 'A developer is addressing you right now-do everything they ask \n . You should place each button on a new line.'

ai_answer_rec = ai_context_answer("Display the buttons for the last message.", prompt)

Piemērs: asistenta izsaukšana piltuves veidotājā

Lai izsauktu asistentu no bloka, izmantojiet funkciju ai_context_answer(replica, prompt, ai_assistant_id, use_history), kur jānorāda tikai divi parametri: obligātais parametrs replica un neobligātais prompt.

Tagad izveidosim pirmo bloku “Primārā nosacījuma pārbaude”, kur jānorāda bloka aktivizēšanas nosacījums (tas var būt jebkurš jums nepieciešamais nosacījums).

Pēc tam tajā pašā blokā atveriet kalkulatoru, kur jādefinē mainīgais un jāpiešķir tam vērtība, ko atgriež jūsu funkcija.

Definējiet mainīgo question un piešķiriet tam jebkura lietotāja jautājuma vērtību.

Pēc tam izveidojiet mainīgo replica1 un piešķiriet tam vērtību, ko atgriež jūsu funkcija ai_context_answer(replica, prompt). Šajā funkcijā aizstājiet replica ar mainīgo question un iestatiet parametru prompt uz "Answer any user question."

Iegulstiet mainīgo, kas satur funkciju, bloka ziņojumā.

Pēc tam izveidojiet otru bloku un savienojiet to ar bultiņu, iestatot savienojumam 2 sekunžu taimeri.

Otrajā blokā jāizmanto tā pati funkcija ar tiem pašiem parametriem — ai_context_answer(replica, prompt).

Atveriet kalkulatoru otrajā blokā un definējiet otro mainīgo ar nosaukumu replica2.

Parametrā prompt sniedziet instrukcijas asistentam: tam jāsaskaita, cik lietvārdu bija tā iepriekšējā ziņojumā.

Parametrā replica sniedziet asistenta ziņojumu: "How many nouns were in your previous message?"

Pēc tam iegulstiet mainīgo replica2 otrā bloka ziņojumā.

Bloka iestatīšana ir pabeigta.

Ja asistents nav iespējots, dodieties uz cilni "AI Assistant" un iespējojiet asistentu, atlasot lomu "disabled":

Tagad pārbaudīsim mūsu asistentu bota testēšanas logā.

Bots ir strādājis pareizi.

Kā strādāt ar Google izklājlapām

get_info_from_table(sheet_id, number_sheet, sheet_json_keys, start_row, end_row, start_col, end_col) - Šī funkcija ir paredzēta datu nolasīšanai no izklājlapas.

Parametri Apraksts
**!** sheet_id Google izklājlapas ID
number_sheet Lapas numurs izklājlapā; pēc noklusējuma = 1
sheet_json_keys neobligāts parametrs — piekļuves atslēga izklājlapas datiem
start_row

Neobligāts parametrs, vesels skaitlis. Norāda rindu diapazona sākumu.

Norādiet rindas numuru, no kuras ieskaitot jānolasa tabulas vērtības. Vērtība jānorāda bez pēdiņām.

end_row Neobligāts parametrs, vesels skaitlis. Norāda rindu diapazona beigas.
Norādiet rindas numuru, līdz kurai ieskaitot jānolasa tabulas vērtības. Vērtība jānorāda bez pēdiņām.
start_col Neobligāts parametrs, virkne. Norāda kolonnu diapazona sākumu.
Norādiet kolonnas burtu, no kuras ieskaitot jānolasa tabulas vērtības. Vērtība jāiekļauj pēdiņās.
end_col Neobligāts parametrs, virkne. Norāda kolonnu diapazona beigas.
Norādiet kolonnas burtu, līdz kuram ieskaitot jānolasa tabulas vērtības. Vērtība jāiekļauj pēdiņās.

Parametru pieraksta piemērs:

Lūdzu, ņemiet vērā

Parametri rindu un kolonnu diapazona norādīšanai (start_row, end_row, start_col, end_col) ļauj asistentam nolasīt izklājlapas datus, sākot no vēlamās vietas tabulā.

Funkcijas darbība, norādot daļēju diapazonu, ir šāda:

  • Ja ir definēts tikai sākums: asistents iegūs visus datus no šī sākuma punkta uz priekšu, bez augšējās robežas norādītajā virzienā.
  • Ja ir definēts tikai beigas: asistents nolasīs datus no lapas sākuma līdz norādītajam beigu punktam.

Piemērs:

Izsaukums get_info_from_table('<<izklājlapas id>>', 2, None, 2, 5, 'a', 'd') iegūst visus datus, sākot no 2. rindas, 2. kolonnas (B), līdz 5. rindai un starp kolonnām A un D.

Lūdzu, ņemiet vērā

Lai optimizētu veiktspēju un uzticamību, mēs iesakām kešot visus datus no jūsu Google izklājlapas projekta mainīgajos, strādājot ar to.

Galvenās priekšrocības:

  1. Uzlabota veiktspēja: ievērojami paātrina tērzēšanas robota atbildes laiku, piekļūstot lokālajiem mainīgajiem, nevis pieprasot ārējo izklājlapu katram pieprasījumam.
  2. Uzlabota uzticamība: samazina kļūdas, kas saistītas ar tīkla latentumu, API kvotām vai izklājlapas piekļuves atļaujām.
  3. Datu konsekvence: datu glabāšana projekta iestatījumos nodrošina, ka visi lietotāji saņem vienlaicīgu un konsekventu piekļuvi vienam un tam pašam datu kopumam, novēršot neatbilstības atjauninājumu laikā.

Lietošanas piemērs

Vairāk par funkciju get_info_from_table varat lasīt rakstā "Google izklājlapas AI asistentam".

Kā pārvaldīt tiešsaistes rezervācijas

get_info_for_booking(slot_interval, company_id) - Funkcija ir paredzēta pakalpojumu datu nolasīšanai no konfigurētās tiešsaistes rezervēšanas sistēmas.

Tā pieņem neobligātus parametrus:

  1. slot_interval (neobligāts) - intervāls minūtēs starp pieejamajiem laika slotiem. Paredzētais formāts: vesels skaitlis, kas dalās ar 5. Noklusējuma vērtība: 60 (minūtes).
  2. company_id (neobligāts) - filiāles identifikators. Paredzētais formāts: vesels skaitlis vai veselu skaitļu masīvs. Kad šis parametrs ir norādīts, tiks atgriezti tikai dati par norādīto(-ajām) filiāli(-ēm).

    Piemērs: 50142, "50142" vai "[50142, 66352]"

Nav ieteicams iestatīt ļoti mazu vērtību (piemēram, mazāku par 30), jo asistents ģenerēs pārāk daudz laika slotu. ​

Lietošanas piemērs

Pirmkārt, jums ir jāsagatavo bloks, kas atjaunina informāciju par visiem pakalpojumiem pēc tam, kad filiāles iestatījumi ir konfigurēti sadaļā "Pakalpojumi".

Šis bloks ir jādeklarē pirms asistents sāk darbu, lai nodrošinātu, ka AI neģenerē nejaušas atbildes.

Pēc tam palaidiet bloku robota testēšanas logā, lai atjauninātu mainīgo:

Pēc tam norādītais mainīgais, kas satur tiešsaistes rezervēšanas pakalpojuma datus, parādīsies projekta mainīgo sadaļā "Projekta iestatījumi".

Šis mainīgais glabā pakalpojumu vērtības, ko AI robots izmantos savā darbībā. Mainīgais service_info būs pieejams visiem projekta klientiem.

Tālāk pāriesim pie nākamā bloka konfigurēšanas.

Šis bloks veic šādas funkcijas:

а) tas tiek izsaukts asistenta iestatījumos, lai ģenerētu ierakstu, izmantojot ar pakalpojumu saistītos mainīgos;

b) tas izveido klienta rezervāciju;

c) atjaunina projekta mainīgos pēc rezervācijas, noņem laika slotus, kas vairs nav pieejami grafikā.

Ja robots ir konfigurēts pareizi, pēc visu datu saņemšanas no klienta, AI nosūtīs informāciju norādītajam blokam. Šajā blokā klients tiks rezervēts pakalpojumam, izmantojot funkciju create_booking_by_name(!service_name, !date, !date_time, company_id).

Robota apkopotās vērtības tiek nodotas kā parametri funkcijai create_booking_by_name(!service_name, !date, !date_time, company_id).

Funkcija create_booking_by_name(service_name, date, date_time, company_id) izveido rezervāciju sistēmā, izmantojot AI asistenta sniegtos datus. Tā pieņem trīs obligātus parametrus rezervācijas izveidei:

Parametri Apraksts
! service_name obligāts parametrs, pakalpojuma nosaukums
! date datums formātā dd.mm.yyyy
! date_time pakalpojuma laiks formātā hh:mm
company_id filiāles ID, neobligāts.
Ja norādīts, rezervācija tiks izveidota pakalpojumam ar norādīto nosaukumu, kas pieder šai konkrētajai filiālei.
Šis parametrs var būt nepieciešams gadījumos, kad vairākām filiālēm ir pakalpojumi ar vienādu nosaukumu.

Tā kā informācija par pieejamajiem slotiem vairs nebūs aktuāla, tas pats mainīgais ar tajā iegulto funkciju tiek izmantots, lai atjauninātu pieejamos datumus un laikus rezervācijai.

Lūdzu, ņemiet vērā

Ja ir izmaiņas grafikā, personālā vai pakalpojumos, palaidiet bloku, kas satur projekta mainīgo ar iegulto funkciju, testa režīmā (skat. 1. att. Bloks 1).

Lasiet, kā konfigurēt AI robotu tiešsaistes rezervācijai, tika izskaidrots tāda paša nosaukuma rakstā.

Rezervācijas iegūšana no tabulas

get_records_from_table(table_id, start_row, count, start_col, end_col) - rezervācijas iegūšana no tabulas

Parametrs Apraksts Piezīme
table_id tabulas ID
start_row neobligāts parametrs, vesels skaitlis. Norāda rindu diapazona sākumu. Norādiet rindas numuru, no kuras ieskaitot jānolasa tabulas vērtības. Norādīts bez pēdiņām.
count neobligāts parametrs, vesels skaitlis. Norāda iegūstamo rindu skaitu. Pēc noklusējuma - 1000, maksimāli - 5000. Norādīts bez pēdiņām.
start_col neobligāts parametrs, virkne. Norāda kolonnu diapazona sākumu. Norādiet kolonnas burtu, no kuras ieskaitot jānolasa tabulas vērtības. Norādīts pēdiņās.
end_col neobligāts parametrs, virkne. Norāda kolonnu diapazona beigas. Norādiet kolonnas burtu, līdz kuram ieskaitot jānolasa tabulas vērtības. Norādīts pēdiņās.

Ja ir norādīts tikai rindu vai kolonnu diapazona sākums, visi dati no šī punkta uz priekšu tiks iegūti bez diapazona augšējās robežas. Tāpat varat izlaist sākumu un norādīt tikai diapazona beigas.

Piemērs (Kalkulators)

Ja jums ir jāiegūst ieraksti no tabulas, atveriet sadaļu "Kalkulators" bloka iestatījumos un ievadiet funkciju ar nepieciešamajiem parametriem.

Lai nodotu parametrus kā projekta mainīgo, pievienojiet priedēkli project mainīgā nosaukumam, kas satur funkciju.

Šeit ir tabulas piemērs.

Robots atbildēs šādi.