Модельге тікелей сұрау
answer = ai_request('request', question)
Мысал:
answer = ai_request('Сіз сыпайы гүл дүкенінің кеңесшісісіз.', question)
Бірінші аргумент – модельге арналған нұсқау: ол кім және қалай жауап беруі керек.
question – бұл клиенттің соңғы хабарламасының мәтінін әрқашан қамтитын жүйелік айнымалы.

Назар аударыңыз
Өрнектерде айнымалылар тек атауларымен жазылады,
#{}қолданбай.Жауап қарапайым мәтін ретінде қайтарылады, сондықтан оны клиентке тікелей жіберуге немесе айнымалыда сақтауға болады.
Әдіс модельдің жауабын шыдамдылықпен күтеді, сондықтан үлкен схемалар немесе ұзақ мәтіндер сияқты ұзақ уақыт жұмыс істейтін сұраулар үзіліссіз аяқталады.
Еркін мәтіннің орнына құрылымдық деректер қажет болғанда, мысалы, санат, иә/жоқ жауабы немесе алынған өрістер, үшінші аргумент ретінде жауап схемасын беріңіз.
Схемаларды нөлден бастап жасаудың қажеті жоқ. Дайын үлгіні пайдаланыңыз және өрістерді қажетінше қайта атаңыз.
Клиент сұрауларын жіктеу, көңіл-күйді анықтау және осыған ұқсас тапсырмалар үшін.
local result = ai_request('Сұраудың санатын анықтаңыз.', question, {
"type": "object",
"properties": {
"category": {
"type": "string",
"enum": ["шағым", "сұрақ", "тапсырыс"]
}
},
"required": ["category"]
})
category = get(result, 'category')
Модель enum ішінде көрсетілген мәндердің дәл біреуін қайтарады және басқа ештеңе қайтармайды.


Көшіруге арналған мысал:
local result = ai_request('Клиент сатып алуға келісті ме?', question, {
"type": "object",
"properties": {
"agree": {
"type": "boolean"
}
},
"required": ["agree"]
})
agree = get(result, 'agree')

Көшіруге арналған мысал:
local result = ai_request('Хабарламадан атын және телефон нөмірін алыңыз.', question, {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"phone": {
"type": "string"
}
},
"required": ["name", "phone"]
})
client_name = get(result, 'name')
client_phone = get(result, 'phone')
-
"string"— мәтін -
"number"— сан -
"boolean"—trueнемесеfalse -
enum— рұқсат етілген мәндер тізімі; модель осы тізімнен тыс ештеңе қайтара алмайды -
required— міндетті өрістер тізімі -
category,nameжәнеphoneсияқты өріс атауларын еркін таңдауға болады
Схема негізіндегі жауап JSON жолы ретінде қайтарылады. Жеке өрістерді стандартты get() әдісі арқылы алуға болады.
Назар аударыңыз
Мысалдарда
resultlocalкөмегімен жарияланады. Бұл шикі ЖИ жауабы жазбаға сақталмайтынын білдіреді; онда тек қажетті өрістер сақталады.
Ойлау режимі
Ойлау режимін төртінші аргумент арқылы қосуға болады. Бұл режимде модель алдымен тапсырманы ойластырады, содан кейін жауап береді.
Ол талдауды, есептеулерді немесе көп сатылы логиканы қамтитын күрделі сұраулар үшін пайдалы. Жауап айтарлықтай ұзағырақ болады, сондықтан ойлау режимі әдепкі бойынша өшірілген.
answer = ai_request(
'Клиенттің мәселесін шешіңіз және шешімді түсіндіріңіз.',
question,
'',
true
)
Жауап схемасы қажет болмағанда, мысалда көрсетілгендей, үшінші аргумент ретінде бос жолды '' беріңіз.
ЖИ көмекшісімен чат тарихын қалай жоюға болады
clear_assistant_chat_history() - бұл функция клиенттің көмекшімен чат тарихын жояды. Ол ешқандай параметр қабылдамайды.
Мысал
- Құрастырушы блогының параметрлері

- ЖИ көмекшісі қойыншасының параметрлері

ЖИ көмекшісіне сұрақты қалай жіберуге болады
ai_context_answer(replica, prompt, ai_assistant_id, use_history, send_answer)
Параметрлер:
send_answer параметрі туралы толығырақ:
Көмекші параметрлері боттың жауабы ұзақ уақыт алатын жағдайда конфигурациялауға болатын параметрлерді қамтиды

Көмекшімен әдеттегі әңгімеде (функция арқылы емес), егер жауап белгіленген шектен (мысалы, 20 секунд) ұзағырақ болса, клиентке кідіріс туралы хабарланады. Содан кейін көмекшінің жауабы дайын болғаннан кейін чатқа жіберіледі.
Калькулятордағы функция арқылы жасалған сұраулар үшін, егер көмекші жауап беруге тым ұзақ уақыт алса, функцияның нәтижесіне кідіріс хабарламасы қосылады. Бұл параметр көмекшінің жауабын дайын болғаннан кейін бөлек жіберуге мүмкіндік береді.
Ботты өз тәжірибесін талдауға және түймелерді жасауға қалай үйрету керек
Төмендегі мысалда clean_assistant_chat_history() және ai_context_answer(replica, prompt) функцияларын қолданайық. Сондай-ақ, воронка құрастырушысындағы калькулятор компонентіне қол жеткізу қажет.
Бұл мысал replica және prompt параметрлерін тәжірибеде қалай тиімді пайдалануға болатынын көрсетеді.
Құрастырушыда көмекшінің бірінші және екінші жауаптарын бір хабарламада көрсететін #{replica_rec2} және #{ai_answer_rec} енгізілген айнымалылары бар бос өрісті қамтитын блок құру қажет.
Енді калькуляторда тікелей екі функцияны анықтаңыз.

Параметрдің мәніне негізделген түймелерді динамикалық түрде жасау үшін кеңейтілген түйме параметрлерінде енгізілген функциясы бар айнымалыны пайдаланыңыз (жоғарыдағы мысалды қараңыз).
Қызметтер туралы ақпаратты бот service_info айнымалысынан алады, оның құрамында қызмет деректерін оқуға арналған енгізілген функция — get_info_for_booking() бар. Бұл функцияны пайдалану мысалы жоғарыда көрсетілген.

Міне, нәтиже.

Код мысалы:
clear_assistant_chat_history()
replica_rec2 = ai_context_answer(question, 'СҰРАҚТАРҒА ЖАУАП БЕРІҢІЗ', 3)
prompt = 'Қазір сізге әзірлеуші хабарласып тұр - олар не сұраса, соны орындаңыз \n . Әр түймені жаңа жолға орналастыруыңыз керек.'
ai_answer_rec = ai_context_answer("Соңғы хабарламаға түймелерді көрсетіңіз.", prompt)
Мысал: воронка құрастырушысында көмекшіні шақыру
Блоктан көмекшіні шақыру үшін ai_context_answer(replica, prompt, ai_assistant_id, use_history) функциясын пайдаланыңыз, мұнда тек екі параметрді көрсету қажет: міндетті replica параметрі және міндетті емес prompt.
Енді бірінші блокты, “Бастапқы шартты тексеру” блогын құрайық, онда блоктың іске қосу шартын көрсету керек (бұл сізге қажет кез келген шарт болуы мүмкін).

Әрі қарай, сол блокта калькуляторды ашыңыз, онда айнымалыны анықтап, оған функцияңыз қайтарған мәнді тағайындау керек.

question айнымалысын анықтап, оған кез келген пайдаланушы сұрағының мәнін тағайындаңыз.
Әрі қарай, replica1 айнымалысын жасап, оған ai_context_answer(replica, prompt) функциясы қайтарған мәнді тағайындаңыз. Бұл функцияда replica мәнін question айнымалысына ауыстырыңыз, ал prompt параметрін "Кез келген пайдаланушы сұрағына жауап беріңіз." деп орнатыңыз.

Функциясы бар айнымалыны блоктың хабарламасына енгізіңіз.
Содан кейін екінші блокты жасап, оны көрсеткімен қосыңыз, қосылымға 2 секундтық таймер орнатыңыз.

Екінші блокта бірдей параметрлері бар бірдей функцияны — ai_context_answer(replica, prompt) пайдалану керек.
Екінші блокта калькуляторды ашып, replica2 деп аталатын екінші айнымалыны анықтаңыз.

prompt параметрінде көмекшіге нұсқау беріңіз: ол өзінің алдыңғы хабарламасында қанша зат есім болғанын санауы керек.
replica параметрінде көмекшінің хабарламасын беріңіз: "Сіздің алдыңғы хабарламаңызда қанша зат есім болды?"
Содан кейін replica2 айнымалысын екінші блоктың хабарламасына енгізіңіз.

Блокты орнату аяқталды.
Егер көмекші қосылмаған болса, "ЖИ көмекшісі" қойыншасына өтіп, "өшірілген" рөлін таңдау арқылы көмекшіні қосыңыз:

Енді ботты тестілеу терезесінде көмекшімізді сынап көрейік.

Бот дұрыс жұмыс істеді.
Google Sheets-пен қалай жұмыс істеу керек
get_info_from_table(sheet_id, number_sheet, sheet_json_keys, start_row, end_row, start_col, end_col) - Бұл функция кестедегі деректерді оқуға арналған.
Параметрлерді белгілеу мысалы:


Назар аударыңыз
Жол және баған диапазонын көрсетуге арналған параметрлер
(start_row, end_row, start_col, end_col)көмекшіге кесте деректерін кестедегі қажетті орыннан бастап оқуға мүмкіндік береді.
Функцияның ішінара диапазонды көрсету кезіндегі әрекеті келесідей:
- Егер тек басы анықталса: көмекші сол бастапқы нүктеден бастап барлық деректерді алады, көрсетілген бағытта жоғарғы шектеусіз.
- Егер тек соңы анықталса: көмекші деректерді парақтың басынан бастап көрсетілген соңғы нүктеге дейін оқиды.
Мысал:
get_info_from_table('<<кесте идентификаторы>>', 2, None, 2, 5, 'a', 'd')шақыруы 2-жолдан, 2-бағаннан (B) бастап, 5-жолға дейін және A және D бағандары арасындағы барлық деректерді алады.
Назар аударыңыз
Өнімділік пен сенімділікті оңтайландыру үшін Google кестеңіздегі барлық деректерді жоба айнымалыларына кэштеуді ұсынамыз.
Негізгі артықшылықтар:
- Жақсартылған өнімділік: әрбір сұрау үшін сыртқы кестеге сұрау салудың орнына жергілікті айнымалыларға қол жеткізу арқылы чат-боттың жауап беру жылдамдығын айтарлықтай арттырады.
- Жақсартылған сенімділік: желілік кідірістерге, API квоталарына немесе кестеге қатынау рұқсаттарына байланысты қателерді азайтады.
- Деректердің сәйкестігі: деректерді жоба параметрлерінде сақтау барлық пайдаланушылардың бір уақытта бірдей деректер жиынына дәйекті қол жеткізуін қамтамасыз етеді, жаңарту кезінде сәйкессіздіктерді болдырмайды.
Қолдану мысалы
get_info_from_table функциясы туралы толығырақ "ЖИ көмекшісіне арналған Google Sheets" мақаласынан оқи аласыз.
Онлайн броньдауды қалай басқару керек
get_info_for_booking(slot_interval, company_id) - Функция конфигурацияланған онлайн броньдау жүйесінен қызмет деректерін оқуға арналған.
Ол міндетті емес параметрлерді қабылдайды:
- slot_interval (міндетті емес) - қолжетімді уақыт аралықтары арасындағы минуттардағы интервал. Күтілетін формат: 5-ке бөлінетін бүтін сан. Әдепкі мән: 60 (минут).
- company_id (міндетті емес) - филиал идентификаторы. Күтілетін формат: бүтін сан немесе бүтін сандар массиві. Бұл параметр берілгенде, тек көрсетілген филиал(дар) үшін деректер қайтарылады.
Мысал: 50142, "50142", немесе "[50142, 66352]"
Өте кіші мәнді орнату ұсынылмайды (мысалы, 30-дан аз), себебі көмекші тым көп уақыт аралықтарын жасайды.
Қолдану мысалы
Алдымен, "Қызметтер" бөлімінде филиал параметрлері конфигурацияланғаннан кейін барлық қызметтер туралы ақпаратты жаңартатын блокты дайындау керек.
Бұл блок ЖИ кездейсоқ жауаптарды жасамауы үшін көмекші жұмыс істей бастағанға дейін жариялануы керек.

Әрі қарай, айнымалыны жаңарту үшін ботты тестілеу терезесінде блокты іске қосыңыз:

Осыдан кейін, онлайн броньдау қызметінің деректерін қамтитын көрсетілген айнымалы "Жоба параметрлері" бөліміндегі жоба айнымалылары бөлімінде пайда болады.

Бұл айнымалы ЖИ бот өз жұмысында пайдаланатын қызмет мәндерін сақтайды. service_info айнымалысы жобаның барлық клиенттеріне қолжетімді болады.
Әрі қарай, келесі блокты конфигурациялауға көшейік.

Бұл блок келесі функцияларды орындайды:
а) қызметке қатысты айнымалыларды пайдаланып жазба жасау үшін көмекші параметрлерінде шақырылады;
б) клиенттің броньын жасайды;
в) броньдаудан кейін жоба айнымалыларын жаңартады, кестеде енді қолжетімді емес уақыт аралықтарын жояды.
Егер бот дұрыс конфигурацияланған болса, клиенттен барлық деректерді алғаннан кейін, ЖИ ақпаратты көрсетілген блокқа жібереді. Сол блокта клиент create_booking_by_name(!service_name, !date, !date_time, company_id) функциясын пайдаланып қызметке жазылады.

Бот жинаған мәндер create_booking_by_name(!service_name, !date, !date_time, company_id) функциясына параметрлер ретінде беріледі.
create_booking_by_name(service_name, date, date_time, company_id) функциясы ЖИ көмекшісі ұсынған деректерді пайдаланып жүйеде бронь жасайды. Ол бронь жасау үшін үш міндетті параметрді қабылдайды:
Қолжетімді уақыт аралықтары туралы ақпарат енді өзекті болмайтындықтан, броньдау үшін қолжетімді күндер мен уақыттарды жаңарту үшін енгізілген функциясы бар бірдей айнымалы пайдаланылады.

Назар аударыңыз
Кестеде, қызметкерлерде немесе қызметтерде қандай да бір өзгерістер болса, енгізілген функциясы бар жоба айнымалысын қамтитын блокты тест режимінде іске қосыңыз (1-суретті қараңыз).
Онлайн броньдауға арналған ЖИ ботын қалай конфигурациялау керектігі аттас мақалада түсіндірілді.
Кестеден броньдауды алу
get_records_from_table(table_id, start_row, count, start_col, end_col) - кестеден броньдауды алу
| Параметр | Сипаттама | Ескерту |
|---|---|---|
| table_id | кесте идентификаторы | |
| start_row | міндетті емес параметр, бүтін сан. Жол диапазонының басын көрсетеді. | Кесте мәндерін қоса алғанда оқу керек жол нөмірін беріңіз. Тырнақшасыз көрсетіледі. |
| count | міндетті емес параметр, бүтін сан. Алынатын жолдар санын көрсетеді. | Әдепкі бойынша - 1000, максимум - 5000. Тырнақшасыз көрсетіледі. |
| start_col | міндетті емес параметр, жол. Баған диапазонының басын көрсетеді. | Кесте мәндерін қоса алғанда оқу керек баған әрпін беріңіз. Тырнақшада көрсетіледі. |
| end_col | міндетті емес параметр, жол. Баған диапазонының соңын көрсетеді. | Кесте мәндерін қоса алғанда оқу керек баған әрпін беріңіз. Тырнақшада көрсетіледі. |
Егер жол немесе баған диапазонының тек басы көрсетілсе, сол нүктеден бастап барлық деректер диапазонның жоғарғы шегінсіз алынады. Сол сияқты, басын өткізіп, тек диапазонның соңын көрсетуге болады.
Мысал (Калькулятор)
Кестеден жазбаларды алу қажет болса, блок параметрлеріндегі "Калькулятор" бөлімін ашып, қажетті параметрлері бар функцияны енгізіңіз.

Параметрлерді жоба айнымалысы ретінде беру үшін функциясы бар айнымалы атауының алдына project қосыңыз.

Міне, кесте мысалы.

Бот келесідей жауап береді.
