Модельге тікелей сұрау жіберу

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

AI моделіне сұрау жібереді және жасалған жауапты қайтарады.

Параметрлер

Параметр Сипаттама
prompt AI моделіне арналған жүйелік нұсқау.
text Модельге жіберілетін пайдаланушы енгізуі.
response_schema Құрылымдық жауаптар үшін қосымша JSON схемасы. Құрылымдық шығаруды өшіру үшін None немесе 0 мәнін беріңіз.
think_mode Модельдің пайымдау режимін қосады. Әдепкі: False.
ai_assistant_id Қосымша. AI көмекшісінің ID немесе конфигурация объектісі болуы мүмкін. Көмекші ID берілсе, функция сол көмекшінің параметрлерін (провайдер, модель, API кілті және басқа параметрлер) автоматты түрде пайдаланады, сондықтан оларды қолмен берудің қажеті жоқ.

Мысалдар

AI көмекшісін ID бойынша пайдалану

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

Бұл мысалда функция 123 ID бар AI көмекшісінің барлық параметрлерін жүктейді, сондықтан провайдерді, модельді, API кілтін немесе басқа конфигурацияны қолмен көрсетудің қажеті жоқ.


Модель конфигурациясын қолмен беру

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

Бұл жағдайда AI көмекшісінің орнына берілген конфигурация пайдаланылады.

Назар аударыңыз

Өрнектерде айнымалылар тек атауларымен, #{} жоқ жазылады.

Жауап қарапайым мәтін ретінде қайтарылады, сондықтан оны тікелей клиентке жіберуге немесе айнымалыда сақтауға болады.

Әдіс модельдің жауабын шыдамдылықпен күтеді, сондықтан үлкен схемалар немесе ұзын мәтіндер сияқты ұзақ уақыт алатын сұраулар да үзіліссіз аяқталады.

Еркін мәтіннің орнына құрылымдық деректер қажет болғанда, мысалы, санат, иә/жоқ жауабы немесе алынған өрістер, үшінші аргумент ретінде жауап схемасын беріңіз.

Схемаларды нөлден бастап жасаудың қажеті жоқ. Дайын үлгіні пайдаланыңыз және өрістерді қажетінше қайта атаңыз.

“Тізімнен таңдау” үлгісі

Клиент сұрауларын жіктеу, көңіл-күйді анықтау және осыған ұқсас тапсырмалар үшін.

local result = ai_request('Сұраудың санатын анықтаңыз.', question, {
    "type": "object",
    "properties": {
        "category": {
            "type": "string",
            "enum": ["complaint", "question", "order"]
        }
    },
    "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')
📖 Үлгілерді теңшеуге арналған жылдам анықтама
  1. "string" — мәтін
  2. "number" — сан
  3. "boolean"true немесе false
  4. enum — рұқсат етілген мәндер тізімі; модель осы тізімнен тыс ештеңе қайтара алмайды
  5. required — міндетті өрістер тізімі
  6. category, name және phone сияқты өріс атауларын еркін таңдауға болады

Схемаға негізделген жауап JSON жолы ретінде қайтарылады. Жеке өрістерді стандартты get() әдісі арқылы алуға болады.

Назар аударыңыз

Мысалдарда result local көмегімен жарияланады. Бұл шикі AI жауабы жазбаға сақталмайды, тек қажетті өрістер ғана сақталады дегенді білдіреді.

Пайымдау режимі

Пайымдау режимін төртінші аргумент арқылы қосуға болады. Бұл режимде модель алдымен тапсырманы ойластырады, содан кейін жауап береді.

Ол талдауды, есептеулерді немесе көп сатылы логиканы қамтитын күрделі сұраулар үшін пайдалы. Жауап айтарлықтай ұзағырақ болады, сондықтан пайымдау режимі әдепкі бойынша өшірілген.

answer = ai_request(
    'Клиенттің мәселесін шешіңіз және шешімді түсіндіріңіз.',
    question,
    '',
    true
)

Жауап схемасы қажет болмағанда, мысалда көрсетілгендей, үшінші аргумент ретінде бос жолды '' беріңіз.

AI көмекшісімен чат тарихын қалай жоюға болады

clear_assistant_chat_history() - бұл функция клиенттің көмекшімен чат тарихын жояды. Ол ешқандай параметр қабылдамайды.

Мысал​

  1. Құрастырушы блогының параметрлері

  1. AI көмекшісі қойындысының параметрлері

AI көмекшісіне сұрақты қалай жіберуге болады

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

Параметрлер:

Параметр Сипаттама Ескерту
**!** replica міндетті параметр, көмекшіге арналған хабарлама
prompt қосымша параметр, көмекшіге арналған нұсқаулар егер параметр көрсетілмесе, бірақ ai_assistant_id параметрі берілсе, көрсетілген көмекшінің параметрлеріндегі нұсқаулар пайдаланылады
ai_assistant_id сұрақ жіберілетін көмекшінің ID; егер берілмесе, әдепкі параметрлері жоқ көмекші пайдаланылады
use_history көмекші сұраққа жауап беру үшін чат тарихын пайдалануы керек пе True - пайдалану, False - пайдаланбау. Әдепкі бойынша - True
send_answer көмекшінің күту уақыты аяқталғаннан кейін жауапты жіберу Қосу үшін "1" мәнін беріңіз

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 айнымалысын екінші блоктың хабарламасына енгізіңіз.

Блокты орнату аяқталды.

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

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

Бот дұрыс жұмыс істеді.

Google Sheets-пен қалай жұмыс істеу керек

get_info_from_table(sheet_id, number_sheet, sheet_json_keys, start_row, end_row, start_col, end_col) - Бұл функция кестеден деректерді оқуға арналған.

Параметрлер Сипаттама
**!** sheet_id google-spreadsheet идентификаторы
number_sheet кестедегі парақ нөмірі; әдепкі бойынша = 1
sheet_json_keys міндетті емес параметр — кесте деректеріне қатынау кілті
start_row

міндетті емес параметр, бүтін сан. Жол диапазонының басын көрсетеді.

Кесте мәндерін оқу керек жол нөмірін қоса алғанда беріңіз. Мән тырнақшасыз берілуі керек.

end_row міндетті емес параметр, бүтін сан. Жол диапазонының соңын көрсетеді.
Кесте мәндерін оқу керек жол нөмірін қоса алғанда беріңіз. Мән тырнақшасыз берілуі керек.
start_col міндетті емес параметр, жол. Баған диапазонының басын көрсетеді.
Кесте мәндерін оқу керек баған әрпін қоса алғанда беріңіз. Мән тырнақшаға алынуы керек
end_col міндетті емес параметр, жол. Баған диапазонының соңын көрсетеді.
Кесте мәндерін оқу керек баған әрпін қоса алғанда беріңіз. Мән тырнақшаға алынуы керек.

Параметрлерді белгілеу мысалы:

Назар аударыңыз

Жол және баған диапазонын көрсетуге арналған параметрлер (start_row, end_row, start_col, end_col) көмекшіге кесте деректерін кестедегі қажетті орыннан бастап оқуға мүмкіндік береді.

Функцияның ішінара диапазонды көрсету кезіндегі әрекеті келесідей:

  • Егер тек басы анықталса: көмекші сол бастапқы нүктеден бастап барлық деректерді алады, көрсетілген бағытта жоғарғы шектеусіз.
  • Егер тек соңы анықталса: көмекші деректерді парақтың басынан бастап көрсетілген соңғы нүктеге дейін оқиды.

Мысал:

get_info_from_table('<<spreadsheet id>>', 2, None, 2, 5, 'a', 'd') шақыруы 2-жолдан, 2-бағаннан (B) бастап, 5-жолға дейін және A және D бағандары арасындағы барлық деректерді алады.

Назар аударыңыз

Өнімділік пен сенімділікті оңтайландыру үшін Google кестеңіздегі барлық деректерді жоба айнымалыларына кэштеуді ұсынамыз.

Негізгі артықшылықтар:

  1. Жақсартылған өнімділік: әрбір сұраныс үшін сыртқы кестеге сұрау жіберудің орнына жергілікті айнымалыларға қатынасу арқылы чат-боттың жауап беру жылдамдығын айтарлықтай арттырады.
  2. Жақсартылған сенімділік: желілік кідірістерге, API квоталарына немесе кестеге қатынау рұқсаттарына байланысты қателерді азайтады.
  3. Деректердің сәйкестігі: деректерді жоба параметрлерінде сақтау барлық пайдаланушылардың бір уақытта және дәйекті түрде бір деректер жиынына қатынасуын қамтамасыз етеді, жаңарту кезінде сәйкессіздіктердің алдын алады.

Қолдану мысалы

get_info_from_table функциясы туралы толығырақ «Google Sheets for AI Assistant» мақаласынан оқи аласыз.

Онлайн брондауды басқару жолы

get_info_for_booking(slot_interval, company_id) - Бұл функция конфигурацияланған онлайн брондау жүйесінен қызмет деректерін оқуға арналған.

Ол міндетті емес параметрлерді қабылдайды:

  1. slot_interval (міндетті емес) - қолжетімді уақыт аралықтары арасындағы минуттардағы интервал. Күтілетін формат: 5-ке бөлінетін бүтін сан. Әдепкі мән: 60 (минут).
  2. company_id (міндетті емес) - филиал идентификаторы. Күтілетін формат: бүтін сан немесе бүтін сандар массиві. Бұл параметр берілгенде, тек көрсетілген филиал(дар) үшін деректер қайтарылады.

    Мысалы: 50142, "50142" немесе "[50142, 66352]"

Өте кіші мәнді орнату ұсынылмайды (мысалы, 30-дан аз), себебі көмекші тым көп уақыт аралықтарын жасайды.

Қолдану мысалы

Алдымен, «Қызметтер» бөлімінде филиал параметрлері конфигурацияланғаннан кейін барлық қызметтер туралы ақпаратты жаңартатын блокты дайындау кезінде.

Бұл блок көмекші жұмыс істей бастағанға дейін жариялануы керек, AI кездейсоқ жауаптар бермеуі үшін.

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

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

Бұл айнымалы AI боты өз жұмысында пайдаланатын қызмет мәндерін сақтайды. service_info айнымалысы жобаның барлық клиенттеріне қолжетімді болады.

Енді келесі блокты конфигурациялауға көшейік.

Бұл блок келесі функцияларды орындайды:

а) көмекші параметрлерінде қызметке қатысты айнымалыларды пайдаланып жазба жасау үшін шақырылады;

b) клиенттік брондау жасайды;

c) брондаудан кейін жоба айнымалыларын жаңартады, кестеде енді қолжетімді емес уақыт аралықтарын жояды.

Егер бот дұрыс конфигурацияланса, клиенттен барлық деректерді алғаннан кейін, AI ақпаратты көрсетілген блокқа жібереді. Сол блокта клиент 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) функциясы AI көмекшісі ұсынған деректерді пайдаланып жүйеде брондау жасайды. Ол брондау жасау үшін үш міндетті параметрді қабылдайды:

Параметрлер Сипаттама
! service_name міндетті параметр, қызмет атауы
! date күн dd.mm.yyyy форматында
! date_time қызмет уақыты hh:mm форматында
company_id филиал идентификаторы, міндетті емес.
Егер көрсетілсе, брондау осы нақты филиалға тиесілі берілген атаудағы қызмет үшін жасалады.
Бұл параметр бірнеше филиалдарда бірдей атауы бар қызметтер болған жағдайда қажет болуы мүмкін.

Қолжетімді уақыт аралықтары туралы ақпарат енді өзекті болмайтындықтан, брондау үшін қолжетімді күндер мен уақыттарды жаңарту үшін кірістірілген функциясы бар бірдей айнымалы пайдаланылады.

Назар аударыңыз

Егер кестеде, қызметкерлерде немесе қызметтерде қандай да бір өзгерістер болса, кірістірілген функциясы бар жоба айнымалысын қамтитын блокты тест режимінде іске қосыңыз (1-суретті қараңыз).

AI ботын онлайн брондауға қалай конфигурациялау керектігі осы аттас мақалада түсіндірілген.

Кестеден брондауды алу

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 қосыңыз.

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

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