Modele Doğrudan İstek

answer = ai_request('request', question)

Örnek:

answer = ai_request('Sen kibar bir çiçekçi danışmanısın.', question)

İlk argüman model için talimattır: kim olduğu ve nasıl yanıt vermesi gerektiği.

question her zaman müşterinin son mesajının metnini içeren bir sistem değişkenidir.

Lütfen Dikkat

İfadelerde değişkenler yalnızca adları kullanılarak yazılır, #{} kullanılmaz.

Yanıt düz metin olarak döndürülür, bu nedenle doğrudan müşteriye gönderilebilir veya bir değişkende saklanabilir.

Metot, modelin yanıtını sabırla bekler; bu nedenle büyük şemalar veya uzun metinler gibi uzun süren istekler bile kesintisiz olarak tamamlanır.

Serbest metin yerine yapılandırılmış veriye ihtiyacınız olduğunda (örneğin bir kategori, evet/hayır yanıtı veya çıkarılmış alanlar), üçüncü argüman olarak bir yanıt şeması iletin.

Şemaları sıfırdan oluşturmanıza gerek yok. Hazır bir şablon kullanın ve alanları ihtiyacınıza göre yeniden adlandırın.

Müşteri taleplerini sınıflandırmak, duygu durumunu belirlemek ve benzeri görevler için.

local result = ai_request('Talebin kategorisini belirle.', question, {
    "type": "object",
    "properties": {
        "category": {
            "type": "string",
            "enum": ["şikayet", "soru", "sipariş"]
        }
    },
    "required": ["category"]
})
category = get(result, 'category')

Model, enum içinde listelenen değerlerden yalnızca birini döndürecek ve başka bir şey döndürmeyecektir.

Kopyalamak için örnek:

local result = ai_request('Müşteri satın almayı kabul etti mi?', question, {
    "type": "object",
    "properties": {
        "agree": {
            "type": "boolean"
        }
    },
    "required": ["agree"]
})

agree = get(result, 'agree')

Kopyalamak için örnek:

local result = ai_request('Mesajdan adı ve telefon numarasını çıkar.', 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" — metin
  2. "number" — bir sayı
  3. "boolean"true veya false
  4. enum — izin verilen değerlerin listesi; model bu listenin dışında bir değer döndüremez
  5. required — zorunlu alanların listesi
  6. category, name ve phone gibi alan adları serbestçe seçilebilir

Şema tabanlı yanıt bir JSON dizisi olarak döndürülür. Tek tek alanlar standart get() metodu kullanılarak alınabilir.

Lütfen Dikkat

Örneklerde result, local kullanılarak bildirilmiştir. Bu, ham AI yanıtının kayda kaydedilmeyeceği, yalnızca gerekli alanların orada saklanacağı anlamına gelir.

Akıl Yürütme Modu

Akıl yürütme modu dördüncü argüman kullanılarak etkinleştirilebilir. Bu modda model önce görevi düşünür ve ardından bir yanıt sağlar.

Analiz, hesaplama veya çok adımlı mantık içeren karmaşık istekler için kullanışlıdır. Yanıt süresi belirgin şekilde daha uzun olacağından akıl yürütme modu varsayılan olarak devre dışıdır.

answer = ai_request(
    'Müşterinin sorununu çöz ve çözümü açıkla.',
    question,
    '',
    true
)

Yanıt şeması gerekmediğinde, örnekte gösterildiği gibi üçüncü argüman olarak boş bir dize '' iletin.

AI asistanı ile sohbet geçmişi nasıl silinir

clear_assistant_chat_history() - bu fonksiyon müşterinin asistanla olan sohbet geçmişini siler. Parametre almaz.

Örnek

  1. Oluşturucu blok ayarları

  1. AI Asistanı sekmesi ayarları

AI asistanına nasıl soru gönderilir

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

Parametreler:

send_answer parametresi hakkında daha fazla bilgi:

Asistan ayarları, botun yanıtının uzun sürmesi durumunda yapılandırılabilecek parametreleri içerir

Asistanla standart bir konuşmada (fonksiyon aracılığıyla değil), yanıt belirtilen sınırdan (örneğin 20 saniye) uzun sürerse, müşteriye gecikme bildirilir. Asistanın yanıtı oluşturulur oluşturulmaz sohbete gönderilir.

Hesaplayıcıdaki bir fonksiyon aracılığıyla yapılan istekler için, asistanın yanıt vermesi çok uzun sürerse, fonksiyonun sonucuna bir gecikme mesajı dahil edilir. Bu parametre, asistanın yanıtının hazır olduğunda ayrı olarak gönderilmesini sağlar.

Bir bota kendi deneyimini analiz etmesi ve butonlar oluşturması nasıl öğretilir

Aşağıdaki örnekte clean_assistant_chat_history() ve ai_context_answer(replica, prompt) fonksiyonlarını kullanalım. Ayrıca huni oluşturucu içindeki hesaplayıcı bileşenine erişmek de gereklidir.

Bu örnek, replica ve prompt parametrelerinin pratikte nasıl etkili bir şekilde kullanılabileceğini göstermektedir.

Oluşturucuda, gönderilecek tek bir mesajda asistanın birinci ve ikinci yanıtlarını temsil eden #{replica_rec2} ve #{ai_answer_rec} gömülü değişkenlerini içeren boş bir alana sahip bir blok oluşturmak gereklidir.

Şimdi, doğrudan hesaplayıcıda iki fonksiyon tanımlayın.

Parametrenin değerine göre dinamik olarak butonlar oluşturmak için gelişmiş buton ayarlarında gömülü fonksiyona sahip bir değişken kullanın (yukarıdaki örneğe bakın).

Hizmetlerle ilgili bilgiler, bot tarafından, hizmet verilerini okumak için gömülü bir fonksiyon olan get_info_for_booking() içeren service_info değişkeninden alınır. Bu fonksiyonun nasıl kullanılacağına dair bir örnek yukarıda gösterilmiştir.

İşte sonuç.

Kod örneği:

clear_assistant_chat_history()

replica_rec2 = ai_context_answer(question, 'SORULARI YANITLA', 3)

prompt = 'Şu anda size bir geliştirici hitap ediyor - ne isterlerse yapın \n . Her butonu yeni bir satıra yerleştirmelisiniz.'

ai_answer_rec = ai_context_answer("Son mesaj için butonları görüntüle.", prompt)

Örnek: huni oluşturucu içinde asistanı çağırma

Bir bloktan asistanı çağırmak için ai_context_answer(replica, prompt, ai_assistant_id, use_history) fonksiyonunu kullanın; burada yalnızca iki parametre belirtmeniz gerekir: zorunlu replica parametresi ve isteğe bağlı prompt.

Şimdi, bloğun tetikleme koşulunu belirtmeniz gereken ilk bloğu, “Birincil koşul kontrolü”nü oluşturalım (bu ihtiyacınız olan herhangi bir koşul olabilir).

Ardından, aynı blokta, bir değişken tanımlamanız ve ona fonksiyonunuzun döndürdüğü değeri atamanız gereken hesaplayıcıyı açın.

question değişkenini tanımlayın ve ona herhangi bir kullanıcı sorusunun değerini atayın.

Ardından, replica1 değişkenini oluşturun ve ona ai_context_answer(replica, prompt) fonksiyonunuzun döndürdüğü değeri atayın. Bu fonksiyonda, replica'yı question değişkeniyle değiştirin ve prompt parametresini "Herhangi bir kullanıcı sorusunu yanıtla." olarak ayarlayın.

Fonksiyonu içeren değişkeni bloğun mesajına gömün.

Ardından ikinci bir blok oluşturun ve bir okla bağlayın, bağlantıya 2 saniyelik bir zamanlayıcı ayarlayın.

İkinci blokta, aynı parametrelerle aynı fonksiyonu kullanmalısınız — ai_context_answer(replica, prompt).

İkinci bloktaki hesaplayıcıyı açın ve replica2 adlı ikinci değişkeni tanımlayın.

prompt parametresinde asistan için talimatlar sağlayın: önceki mesajında kaç tane isim olduğunu saymalıdır.

replica parametresinde asistanın mesajını sağlayın: "Önceki mesajında kaç tane isim vardı?"

Ardından replica2 değişkenini ikinci bloğun mesajına gömün.

Blok kurulumu tamamlandı.

Asistan etkin değilse, "AI Asistanı" sekmesine gidin ve "devre dışı" rolünü seçerek asistanı etkinleştirin:

Şimdi asistanımızı bot test penceresinde test edelim.

Bot doğru çalıştı.

Google Sheets ile nasıl çalışılır

get_info_from_table(sheet_id, number_sheet, sheet_json_keys, start_row, end_row, start_col, end_col) - Bu fonksiyon bir e-tablodan veri okumak için tasarlanmıştır.

Parametre gösterimi örneği:

Lütfen dikkat

Satır ve sütun aralığını belirtme parametreleri (start_row, end_row, start_col, end_col), asistanın e-tablo verilerini tablo içinde istenen konumdan başlayarak okumasını sağlar.

Kısmi aralık belirtimi için fonksiyonun davranışı aşağıdaki gibidir:

  • Yalnızca başlangıç tanımlanmışsa: asistan, belirtilen başlangıç noktasından itibaren tüm verileri alır, belirtilen yönde bir üst sınır yoktur.
  • Yalnızca bitiş tanımlanmışsa: asistan, sayfanın başlangıcından belirtilen bitiş noktasına kadar olan verileri okur.

Örnek:

get_info_from_table('<<e-tablo kimliği>>', 2, None, 2, 5, 'a', 'd') çağrısı, satır 2, sütun 2'den (B) satır 5'e kadar ve A ile D sütunları arasındaki tüm verileri alır.

Lütfen dikkat

Performansı ve güvenilirliği optimize etmek için, Google Sheet'inizdeki tüm verileri proje değişkenlerine önbelleğe almanızı öneririz.

Temel faydalar:

  1. Gelişmiş performans: her istek için harici e-tabloyu sorgulamak yerine yerel değişkenlere erişerek sohbet robotunun yanıt süresini önemli ölçüde hızlandırır.
  2. Gelişmiş güvenilirlik: ağ gecikmesi, API kotaları veya e-tablo erişim izinleriyle ilgili hataları en aza indirir.
  3. Veri tutarlılığı: verileri proje ayarlarında depolamak, tüm kullanıcıların aynı veri kümesine eşzamanlı ve tutarlı erişimini sağlayarak güncellemeler sırasında tutarsızlıkları önler.

Kullanım örneği

get_info_from_table fonksiyonu hakkında daha fazla bilgiyi "AI Asistanı için Google Sheets" makalesinde okuyabilirsiniz.

Çevrimiçi rezervasyonlar nasıl yönetilir

get_info_for_booking(slot_interval, company_id) - Fonksiyon, yapılandırılmış çevrimiçi rezervasyon sisteminden hizmet verilerini okumak için tasarlanmıştır.

İsteğe bağlı parametreler alır:

  1. slot_interval (isteğe bağlı) - mevcut zaman aralıkları arasındaki dakika cinsinden aralık. Beklenen format: 5'e bölünebilen bir tam sayı. Varsayılan değer: 60 (dakika).
  2. company_id (isteğe bağlı) - bir şube tanımlayıcısı. Beklenen format: bir tam sayı veya bir tam sayı dizisi. Bu parametre sağlandığında, yalnızca belirtilen şube(ler) için veriler döndürülür.

    Örnek: 50142, "50142" veya "[50142, 66352]"

Çok küçük bir değer (örneğin 30'dan az) ayarlanması önerilmez, çünkü asistan çok fazla zaman aralığı oluşturacaktır.

Kullanım örneği

İlk olarak, "Hizmetler" bölümünde şube ayarları yapılandırıldıktan sonra tüm hizmetlerle ilgili bilgileri güncelleyen bir blok hazırlamanız gerekir.

Bu blok, AI'nın rastgele yanıtlar üretmemesini sağlamak için asistan çalışmaya başlamadan önce bildirilmelidir.

Ardından, değişkeni güncellemek için bot test penceresinde bloğu tetikleyin:

Bundan sonra, çevrimiçi rezervasyon hizmeti verilerini içeren belirtilen değişken, "Proje ayarları" altındaki proje değişkenleri bölümünde görünecektir.

Bu değişken, AI botunun işlemlerinde kullanacağı hizmet değerlerini saklar. service_info değişkeni projenin tüm müşterileri tarafından erişilebilir olacaktır.

Ardından, bir sonraki bloğu yapılandırmaya geçelim.

Bu blok aşağıdaki işlevlere hizmet eder:

а) hizmetle ilgili değişkenleri kullanarak bir kayıt oluşturmak için asistan ayarlarında çağrılır;

b) bir müşteri rezervasyonu oluşturur;

c) bir rezervasyondan sonra proje değişkenlerini günceller, programda artık mevcut olmayan zaman aralıklarını kaldırır.

Bot doğru yapılandırılmışsa, müşteriden tüm verileri aldıktan sonra AI, bilgileri belirtilen bloğa gönderecektir. Bu blokta, müşteri create_booking_by_name(!service_name, !date, !date_time, company_id) fonksiyonu kullanılarak hizmet için rezerve edilecektir.

Bot tarafından toplanan değerler, create_booking_by_name(!service_name, !date, !date_time, company_id) fonksiyonuna parametre olarak iletilir.

create_booking_by_name(service_name, date, date_time, company_id) fonksiyonu, AI asistanı tarafından sağlanan verileri kullanarak sistemde bir rezervasyon oluşturur. Rezervasyon oluşturmak için üç zorunlu parametre alır:

Mevcut slotlar hakkındaki bilgiler artık güncel olmayacağından, rezervasyon için mevcut tarihleri ve saatleri güncellemek için gömülü fonksiyonuna sahip aynı değişken kullanılır.

Lütfen dikkat

Programda, personelde veya hizmetlerde herhangi bir değişiklik olursa, gömülü fonksiyona sahip proje değişkenini içeren bloğu test modunda çalıştırın (bkz. Şekil Blok 1).

Çevrimiçi rezervasyon için bir AI botunun nasıl yapılandırılacağı aynı adlı makalede açıklanmıştır.

Tablodan rezervasyon alma

get_records_from_table(table_id, start_row, count, start_col, end_col) - tablodan rezervasyon alma

Parametre Açıklama Not
table_id tablo kimliği
start_row isteğe bağlı parametre, bir tam sayı. Satır aralığının başlangıcını belirtir. Tablo değerlerinin okunmaya başlanacağı satır numarasını (dahil) iletin. Tırnak işareti olmadan belirtilir.
count isteğe bağlı parametre, bir tam sayı. Alınacak satır sayısını belirtir. Varsayılan - 1000, maksimum - 5000. Tırnak işareti olmadan belirtilir.
start_col isteğe bağlı parametre, bir dize. Sütun aralığının başlangıcını belirtir. Tablo değerlerinin okunmaya başlanacağı sütun harfini (dahil) iletin. Tırnak içinde belirtilir.
end_col isteğe bağlı parametre, bir dize. Sütun aralığının sonunu belirtir. Tablo değerlerinin okunacağı son sütun harfini (dahil) iletin. Tırnak içinde belirtilir.

Yalnızca satır veya sütun aralığının başlangıcı belirtilirse, bu noktadan itibaren tüm veriler aralıkta üst sınır olmaksızın alınır. Benzer şekilde, başlangıcı atlayıp yalnızca aralığın sonunu belirtebilirsiniz.

Örnek (Hesaplayıcı)

Tablodan kayıt almanız gerekiyorsa, blok ayarlarında "Hesaplayıcı" bölümünü açın ve gerekli parametrelerle fonksiyonu girin.

Parametreleri bir proje değişkeni olarak iletmek için, fonksiyonu içeren değişken adının önüne project ekleyin.

İşte tablo örneği.

Bot aşağıdaki gibi yanıt verecektir.