# Yapay zekâ asistanı işlevleri

## **Bir yapay zekâ asistanıyla olan sohbet geçmişi nasıl silinir**

clear\_assistant\_chat\_history() - bu işlev, istemcinin asistanla olan sohbet geçmişini siler. Hiçbir parametre almaz.

### Örnek&#x20;

1. Oluşturucu blok ayarları

<div data-with-frame="true"><figure><img src="/files/b650c5fe87b9f170288b1ea414696fa98494d712" alt=""><figcaption></figcaption></figure></div>

2. Yapay Zekâ Asistanı sekmesi ayarları

<div data-with-frame="true"><figure><img src="/files/6728077da8785938e3d7b5a81b6e25740e22f9b6" alt="" width="563"><figcaption></figcaption></figure></div>

## **Yapay zekâ asistanına nasıl soru gönderilir**

ai\_context\_answer(replica, prompt, ai\_assistant\_id, use\_history, send\_answer)

Parametreler:

<table><thead><tr><th width="173">Parametre</th><th width="221">Açıklama</th><th>Not</th></tr></thead><tbody><tr><td><mark style="color:kırmızı;"><strong>!</strong></mark> replica </td><td>zorunlu parametre, asistan için mesaj</td><td></td></tr><tr><td>prompt</td><td>isteğe bağlı parametre, asistan için talimatlar</td><td>parametre belirtilmemiş ancak ai_assistant_id parametresi sağlanmışsa, belirtilen asistanın ayarlarındaki talimatlar kullanılacaktır</td></tr><tr><td>ai_assistant_id </td><td>soru gönderilecek asistan kimliği;</td><td>sağlanmazsa, varsayılan ayarlar olmadan asistan kullanılacaktır</td></tr><tr><td>use_history</td><td>asistanın soruyu yanıtlarken sohbet geçmişini kullanıp kullanmayacağı</td><td>True - kullan, False - kullanma. Varsayılan - True</td></tr><tr><td>send_answer</td><td>asistanın zaman aşımı süresi sonra yanıt gönder</td><td>Etkinleştirmek için "1" gönderin</td></tr></tbody></table>

Hakkında daha fazla ayrıntı `send_answer` parametresi:

Asistan ayarları, botun yanıtı uzun sürdüğünde yapılandırılabilen parametreleri içerir

<div data-with-frame="true"><figure><img src="/files/dd9ddca1a4e64a1d6a61b45e5b0059d4651b57d4" alt="" width="375"><figcaption></figcaption></figure></div>

Asistanla standart bir konuşmada (bir işlev aracılığıyla değil), yanıt belirtilen sınırdan (ör. 20 saniye) daha uzun sürerse istemci gecikme hakkında bilgilendirilir. Asistanın yanıtı, oluşturulur oluşturulmaz sohbet içerisine gönderilir.

Hesaplayıcıdaki bir işlev aracılığıyla yapılan isteklerde, asistanın yanıtı çok uzun sürerse işlevin sonucuna bir gecikme mesajı eklenir. Bu parametre, asistanın yanıtı hazır olduğunda ayrı olarak gönderilmesini sağlar.&#x20;

### Bir botun kendi deneyimini analiz edip butonlar oluşturması nasıl öğretilir

Şunu kullanalım: `clean_assistant_chat_history()` ve `ai_context_answer(replica, prompt)` işlevlerini aşağıdaki örnekte. Ayrıca huni oluşturucu içindeki hesaplayıcı bileşenine erişim sağlamak gerekir.

Bu örnek, `replica` ve `prompt` parametrelerinin pratikte nasıl etkili biçimde kullanılabileceğini gösterir.&#x20;

Oluşturucuda, yerleştirilmiş değişkenler içeren boş bir alan barındıran bir blok oluşturmak gerekir **#{replica\_rec2}** ve **#{ai\_answer\_rec}**, gönderilecek tek bir mesaj içinde asistanın birinci ve ikinci yanıtlarını temsil eder.

Şimdi, doğrudan hesaplayıcıda iki işlev tanımlayın.

<div data-with-frame="true"><figure><img src="/files/d414cd8dcadcd77b5877a7316d4e1b909b84a8c7" alt=""><figcaption></figcaption></figure></div>

Parametrenin değerine göre dinamik olarak butonlar oluşturmak için gelişmiş buton ayarlarında yerleştirilmiş işlev içeren bir değişken kullanın (yukarıdaki örneğe bakın).&#x20;

Hizmetler hakkındaki bilgiler bot tarafından `service_info` değişkeninden alınır; bu değişken, okuma hizmet verisi için yerleştirilmiş bir işlev içerir — `get_info_for_booking()` —. Bu işlevin nasıl kullanılacağına dair bir örnek yukarıda gösterilmiştir.

<div data-with-frame="true"><figure><img src="/files/35120a8ae066412b7635d667fcc3e6ebd836115b" alt="" width="375"><figcaption></figcaption></figure></div>

İşte sonuç.

<div data-with-frame="true"><figure><img src="/files/18876118e2ea05d739e3154f53fb4c2b749c9d48" alt="" width="563"><figcaption></figcaption></figure></div>

**Kod örneği**:

`clear_assistant_chat_history()`

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

`prompt = 'Bir geliştirici şu anda sana sesleniyor - ne isterse yap \n . Her butonu yeni bir satıra yerleştirmelisin.'`

`ai_answer_rec = ai_context_answer("Son mesaj için butonları göster.", prompt)`

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

Asistanı bir bloktan çağırmak için şu işlevi kullanın: `ai_context_answer(replica, prompt, ai_assistant_id, use_history)`, burada yalnızca iki parametre belirtmeniz gerekir: zorunlu `replica` parametre ve isteğe bağlı `prompt`.

Şimdi, önce ilk bloğu, “Birincil koşul kontrolü”nü oluşturalım; burada bloğun tetikleme koşulunu belirtmeniz gerekir (bu, ihtiyaç duyduğunuz herhangi bir koşul olabilir).

<div data-with-frame="true"><figure><img src="/files/41051eb943a168ab79a941b2b5e1bd7980ce3667" alt=""><figcaption></figcaption></figure></div>

Ardından, aynı blokta hesaplayıcıyı açın; burada bir değişken tanımlamanız ve ona işleviniz tarafından döndürülen değeri atamanız gerekir.

<div data-with-frame="true"><figure><img src="/files/5a509bfbbb370e0bfa01f2da7f1e45b90b4a485e" alt="" width="563"><figcaption></figcaption></figure></div>

Şu değişkeni tanımlayın **question** ve ona herhangi bir kullanıcının sorusu değerini atayın.

Sonra replica1 değişkenini oluşturun ve ona ai\_context\_answer(replica, prompt) işleviniz tarafından döndürülen değeri atayın. Bu işlevde replica yerine question değişkenini kullanın ve prompt parametresini "Herhangi bir kullanıcı sorusunu yanıtla." olarak ayarlayın.

<div data-with-frame="true"><figure><img src="/files/2f7428d0296d7452db5e5cc058a5dd8b1362f718" alt="" width="563"><figcaption></figcaption></figure></div>

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

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

<div data-with-frame="true"><figure><img src="/files/7e687f7bcefb12fd0f99b9690c08b06b2e508085" alt=""><figcaption></figcaption></figure></div>

İkinci blokta, aynı parametrelerle aynı işlevi kullanmalısınız — ai\_context\_answer(replica, prompt).

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

<div data-with-frame="true"><figure><img src="/files/1996ebced8a19ed5f6fecd5563e82819995880d6" alt=""><figcaption></figcaption></figure></div>

prompt parametresinde asistan için talimatlar verin: önceki mesajında kaç isim bulunduğunu saymalıdır.

replica parametresinde asistanın mesajını verin: "Önceki mesajında kaç isim vardı?"

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

<div data-with-frame="true"><figure><img src="/files/3804060a13bc32fdb715a0677d440273203f6e5f" alt="" width="563"><figcaption></figcaption></figure></div>

Blok kurulumu tamamlandı.

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

<div data-with-frame="true"><figure><img src="/files/067fd326916f0a8802830576b3b9666ce5caefca" alt="" width="292"><figcaption></figcaption></figure></div>

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

<div data-with-frame="true"><figure><img src="/files/2bdf5197ab49e5dbb2832f8bd1887ca409ba8271" alt="" width="375"><figcaption></figcaption></figure></div>

Bot doğru çalıştı.

## Google E-Tablolar 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 işlev, bir elektronik tablodan veri okumak için tasarlanmıştır.

<table><thead><tr><th width="248">Parametreler</th><th>Açıklama</th></tr></thead><tbody><tr><td><mark style="color:kırmızı;"><strong>!</strong></mark> sheet_id</td><td>google elektronik tablo kimliği</td></tr><tr><td>number_sheet</td><td>bir elektronik tablodaki sayfa numarası; varsayılan = 1</td></tr><tr><td>sheet_json_keys </td><td>isteğe bağlı parametre — elektronik tablo verileri için erişim anahtarı</td></tr><tr><td>start_row</td><td><p>isteğe bağlı parametre, bir tam sayı. Satır aralığının başlangıcını belirtir.</p><p>Tablo değerlerinin dahil edilerek hangi satırdan itibaren okunacağını belirtin. Değer tırnaksız verilmelidir.</p></td></tr><tr><td>end_row</td><td>isteğe bağlı parametre, bir tam sayı. Satır aralığının sonunu belirtir.<br>Tablo değerlerinin dahil edilerek hangi satıra kadar okunacağını belirtin. Değer tırnaksız verilmelidir.</td></tr><tr><td>start_col</td><td>isteğe bağlı parametre, bir dize. Sütun aralığının başlangıcını belirtir.<br>Tablo değerlerinin dahil edilerek hangi sütundan itibaren okunacağını belirtin. Değer tırnak içinde olmalıdır</td></tr><tr><td>end_col</td><td>isteğe bağlı parametre, bir dize. Sütun aralığının sonunu belirtir.<br>Tablo değerlerinin dahil edilerek hangi sütuna kadar okunacağını belirtin. Değer tırnak içinde olmalıdır.</td></tr></tbody></table>

Parametre gösterimine örnek:

<div data-with-frame="true"><figure><img src="/files/3c5d2fdc4536bf4eb94a5aa91621ff72d8760ef4" alt="" width="563"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/cbdb0a686adb60d611ffa4ec5ce03ac82a493e5a" alt="" width="563"><figcaption></figcaption></figure></div>

{% hint style="warning" %}

## Lütfen dikkat edin

Satır ve sütun aralığını belirtmek için kullanılan parametreler `(start_row, end_row, start_col, end_col)` asistanın, tablonun istenen konumundan başlayarak elektronik tablo verilerini okumasına olanak tanır.
{% endhint %}

{% hint style="info" %}
İşlevin kısmi aralık belirtilmesi durumundaki davranışı şöyledir:

* **Yalnızca başlangıç tanımlanmışsa:** asistan şunu alacaktır **bu başlangıç noktasından itibaren tüm veriler**, belirtilen yönde üst sınır olmadan.
* **Yalnızca bitiş tanımlanmışsa:** asistan veri okuyacaktır **çalışma sayfasının başından belirtilen son noktaya kadar**.

**Örnek:**

Çağrı `get_info_from_table('<<spreadsheet id>>', 2, None, 2, 5, 'a', 'd')` 2. satır, 2. sütundan (B) başlayarak 5. satıra kadar ve A ile D sütunları arasındaki tüm verileri alır.
{% endhint %}

{% hint style="warning" %}

## Lütfen dikkat edin

Performansı ve güvenilirliği optimize etmek için şunu öneriyoruz: **tüm verileri önbelleğe alın** onunla çalışırken Google Sheet’inizden proje değişkenlerine.

**Temel avantajlar:**

1. **Geliştirilmiş performans:** her istek için harici e-tabloyu sorgulamak yerine yerel değişkenlere erişerek sohbet botunun yanıt süresini önemli ölçüde hızlandırır.
2. **Geliştirilmiş 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 saklamak **tüm kullanıcıların aynı veri kümesine eşzamanlı ve tutarlı erişim almasını sağlar** ve güncellemeler sırasında tutarsızlıkları önler.
   {% endhint %}

#### Kullanım örneği

{% hint style="info" %}
Hakkında daha fazla bilgi okuyabilirsiniz **get\_info\_from\_table** işlevi "[Yapay Zekâ Asistanı için Google E-Tablolar](/doc/tr/chatbot/ai/yapay-zeka-asistani-icin-google-e-tablolar.md)."
{% endhint %}

## Çevrimiçi rezervasyonlar nasıl yönetilir

get\_info\_for\_booking(slot\_interval, company\_id) - Bu işlev, yapılandırılmış çevrimiçi rezervasyon sisteminden hizmet verilerini okumak için tasarlanmıştır.

İsteğe bağlı parametreleri kabul eder:

1. slot\_interval (isteğe bağlı) - mevcut zaman dilimleri arasındaki dakika cinsinden aralık. Beklenen biçim: 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 biçim: *bir tam sayı* veya *tamsayı dizisi*. Bu parametre sağlandığında, yalnızca belirtilen şube(ler)e ait veriler döndürülür.   \
   Örnek: 50142, "50142" veya "\[50142, 66352]"

{% hint style="warning" %}
Çok küçük bir değer belirlenmesi (örn. 30’dan az) önerilmez; çünkü asistan çok fazla zaman aralığı oluşturacaktır. &#x20;
{% endhint %}

### Kullanım örneği

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

Bu blok, yapay zekânın rastgele yanıtlar üretmemesini sağlamak için asistan çalışmaya başlamadan önce tanımlanmalıdır.

<div data-with-frame="true"><figure><img src="/files/9abe04ec56010744caf0ac979967a9ad9d0302a1" alt=""><figcaption></figcaption></figure></div>

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

<div data-with-frame="true"><figure><img src="/files/66060912c4abf2bc2b9e13e41a29f90f21792cbf" alt="" width="375"><figcaption></figcaption></figure></div>

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

<div data-with-frame="true"><figure><img src="/files/544ecbc85331054cb26955e30081d7ab1673774c" alt="" width="563"><figcaption></figcaption></figure></div>

Bu değişken, yapay zekâ botunun işlemlerinde kullanacağı hizmet değerlerini saklar. service\_info değişkeni projenin tüm müşterileri tarafından erişilebilir olacaktır.

Sonraki bloğu yapılandırmaya geçelim.

<div data-with-frame="true"><figure><img src="/files/612d0c6495494fd93d0800a22c28465ec43f27ca" alt=""><figcaption></figcaption></figure></div>

Bu blok aşağıdaki işlevleri yerine getirir:

a) 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) rezervasyondan sonra proje değişkenlerini günceller, zaman çizelgesinde 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 yapay zekâ bu bilgileri belirtilen bloğa gönderir. O blokta, müşteri create\_booking\_by\_name(!service\_name, !date, !date\_time, company\_id) işlevi kullanılarak hizmet için rezerve edilir.

<div data-with-frame="true"><figure><img src="/files/7b3712d7ad2a38d6c3eb9048119cd7c5ebb81e90" alt=""><figcaption></figcaption></figure></div>

Bot tarafından toplanan değerler create\_booking\_by\_name(!service\_name, !date, !date\_time, company\_id) işlevine parametre olarak iletilir.

create\_booking\_by\_name(service\_name, date, date\_time, company\_id) işlevi, yapay zekâ asistanı tarafından sağlanan verileri kullanarak sistemde bir rezervasyon oluşturur. Rezervasyon oluşturmak için üç zorunlu parametre kabul eder:

<table><thead><tr><th width="297">Parametreler</th><th>Açıklama</th></tr></thead><tbody><tr><td>! service_name</td><td>zorunlu parametre, hizmet adı</td></tr><tr><td>! date</td><td>dd.mm.yyyy formatında tarih</td></tr><tr><td>! date_time</td><td>hh:mm biçiminde hizmet saati</td></tr><tr><td>company_id </td><td>şube kimliği, isteğe bağlı.<br>Belirtilirse, rezervasyon bu belirli şubeye ait verilen ada sahip hizmet için oluşturulacaktır.<br>Bu parametre, birden fazla şubenin aynı adlı hizmetlere sahip olduğu durumlarda gerekli olabilir.</td></tr></tbody></table>

Mevcut zaman aralıkları hakkındaki bilgiler artık güncel olmayacağından, yerleştirilmiş işlevi içeren aynı değişken, rezervasyon için mevcut tarih ve saatleri güncellemek amacıyla kullanılır.

<div data-with-frame="true"><figure><img src="/files/06103689794e8c46557168323a8235e433ddb8d0" alt=""><figcaption></figcaption></figure></div>

{% hint style="warning" %}

## Lütfen dikkat edin

Program, personel veya hizmetlerde herhangi bir değişiklik varsa, yerleştirilmiş işlevi içeren proje değişkenini barındıran bloğu test modunda çalıştırın (bkz. Şekil Blok 1).
{% endhint %}

{% hint style="info" %}
[Bir yapay zekâ botunun çevrimiçi rezervasyon için nasıl yapılandırılacağına dair okuma, aynı adlı makalede açıklanmıştır.](/doc/tr/chatbot/ai/online-booking.md)
{% endhint %}

## Tablodan rezervasyonları alma

get\_records\_from\_table(table\_id, start\_row, count, start\_col, end\_col) - tablodan rezervasyonları 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 dahil edilerek hangi satırdan itibaren okunacağını belirtin. Tırnaksız olarak belirtilir. |
| count      | isteğe bağlı parametre, bir tam sayı. Alınacak satır sayısını belirtir.       | Varsayılan - 1000, maksimum - 5000. Tırnaksız olarak belirtilir.                                             |
| start\_col | isteğe bağlı parametre, bir dize. Sütun aralığının başlangıcını belirtir.     | Tablo değerlerinin dahil edilerek hangi sütundan itibaren okunacağını belirtin. Tırnak içinde belirtilir.    |
| end\_col   | isteğe bağlı parametre, bir dize. Sütun aralığının sonunu belirtir.           | Tablo değerlerinin dahil edilerek hangi sütuna kadar okunacağını belirtin. Tırnak içinde belirtilir.         |

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

### Örnek (Hesaplayıcı)

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

<div data-with-frame="true"><figure><img src="/files/0da96a8be34bec7d2111f7a49090972cbbfa1cdb" alt=""><figcaption></figcaption></figure></div>

Parametreleri proje değişkeni olarak iletmek için, işlevi içeren değişken adının başına **project**.

<div data-with-frame="true"><figure><img src="/files/66be25cb1d64f1995fd25c7413b287f79ada88b9" alt=""><figcaption></figcaption></figure></div>

İşte tablo örneği.

<div data-with-frame="true"><figure><img src="/files/dbd5103569835386a55c1218f11637426038b0de" alt="" width="563"><figcaption></figcaption></figure></div>

Bot şu şekilde yanıt verecektir.

<div data-with-frame="true"><figure><img src="/files/046985fd482b85f02c98326406e1da5883836b54" alt="" width="375"><figcaption></figcaption></figure></div>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mavibot.ai/doc/tr/chatbot/ai/functions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
