Skip to content

İlk AI Oturumunuzu Çalıştırın

Bu öğreticide bir AI konuşma oturumu oluşturacak, mesajlar gönderecek, Sunucu Gönderimli Olaylar kullanarak yanıtları gerçek zamanlı akış olarak alacak ve AI özellik çalıştırmalarını yürüteceksiniz.

Önkoşullar

  • Geçerli bir erişim belirteci olan bir Chainabit hesabı
  • Terminalinizde curl'un mevcut olması
  • AI kredileri içeren bir plan (bakiyenizi /wallet/balance adresinden kontrol edebilirsiniz)

Ortam değişkenlerinizi ayarlayın:

bash
export TOKEN="your-access-token"

Adım 1: Mevcut AI Sağlayıcılarını Kontrol Edin

Bir oturuma başlamadan önce, planınızın hangi AI sağlayıcılarına erişim sağladığını kontrol edin:

bash
curl -s "https://api.chainabit.com/api/v1/ai/providers" \
  -H "Authorization: Bearer $TOKEN"

Yanıt, her sağlayıcı için bir isAccessible bayrağı içerir:

json
{
  "data": [
    {
      "key": "google",
      "displayName": "Google",
      "isActive": true,
      "isAccessible": true
    },
    {
      "key": "openai",
      "displayName": "OpenAI",
      "isActive": true,
      "isAccessible": true
    },
    {
      "key": "anthropic",
      "displayName": "Anthropic",
      "isActive": true,
      "isAccessible": false
    }
  ]
}

isAccessible: true, planınızın o sağlayıcıya erişim izni verdiği anlamına gelir. Mesaj gönderirken bir sağlayıcı anahtarı (örneğin openai) kullanın.

Ücretsiz plan: Yalnızca google erişilebilirdir. Ücretli planlar ek sağlayıcıların kilidini açar.


Adım 2: Yeni Bir AI Oturumu Oluşturun

Bir oturum, bir konuşma zincirini tutar:

bash
curl -s -X POST "https://api.chainabit.com/api/v1/ai/sessions" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "title": "Fitness coaching" }'

Yanıt:

json
{
  "data": {
    "id": "session_01HQS...",
    "title": "Fitness coaching",
    "createdAt": "2026-03-17T10:00:00.000Z"
  }
}

Oturum ID'sini kaydedin:

bash
export SESSION_ID="session_01HQS..."

Adım 3: Bir Mesaj Gönderin

Oturuma bir mesaj gönderin. Hangi AI'nin kullanılacağını kontrol etmek için isteğe bağlı olarak bir provider (sağlayıcı) ve effortMode (çaba modu) geçirebilirsiniz:

bash
curl -s -X POST "https://api.chainabit.com/api/v1/ai/sessions/$SESSION_ID/messages" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "I want to build a morning routine. I have 45 minutes before work. What activities should I include?",
    "provider": "openai",
    "effortMode": "thinking"
  }'
AlanDeğerlerAçıklama
providergoogle, openai, anthropic, mistralKullanılacak sağlayıcı. Varsayılan olarak google. Plana erişim gerektirir.
effortModebasic, thinking, proModel katmanı. basic = hızlı, thinking = dengeli, pro = en yetenekli.

Her iki alan da isteğe bağlıdır — bunları atlamak planınızın varsayılanını kullanır.

Yanıt:

json
{
  "data": {
    "id": "msg_01HQT...",
    "sessionId": "session_01HQS...",
    "role": "user",
    "content": "I want to build a morning routine. I have 45 minutes before work. What activities should I include?",
    "createdAt": "2026-03-17T10:01:00.000Z"
  }
}

AI yanıtını akış olarak almak için mesaj ID'sini kaydedin:

bash
export MESSAGE_ID="msg_01HQT..."

Adım 4: SSE Yoluyla AI Yanıtını Akış Olarak Alın (Stream)

AI yanıtını gerçek zamanlı olarak almak için SSE akış uç noktasına bağlanın. Arabelleğe almayı devre dışı bırakmak için curl -N kullanın:

bash
curl -N "https://api.chainabit.com/api/v1/ai/sessions/$SESSION_ID/messages/$MESSAGE_ID/stream" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: text/event-stream"

SSE Olay Formatı

Sunucu, olayları standart SSE formatında gönderir. Her olayın bir türü ve bir JSON veri yükü vardır:

event: message.delta
data: {"eventId":1,"type":"message.delta","runId":"run_01HQU...","payload":{"delta":"Great question! Here's a"}}

event: message.delta
data: {"eventId":2,"type":"message.delta","runId":"run_01HQU...","payload":{"delta":" structured 45-minute morning routine"}}

event: message.delta
data: {"eventId":3,"type":"message.delta","runId":"run_01HQU...","payload":{"delta":" that balances exercise, mindfulness, and preparation:\n\n"}}

event: message.delta
data: {"eventId":4,"type":"message.delta","runId":"run_01HQU...","payload":{"delta":"1. **Wake up + hydrate** (2 min)\n"}}

event: message.delta
data: {"eventId":5,"type":"message.delta","runId":"run_01HQU...","payload":{"delta":"2. **Stretching** (5 min)\n"}}

event: message.delta
data: {"eventId":6,"type":"message.delta","runId":"run_01HQU...","payload":{"delta":"3. **Bodyweight workout** (20 min)\n"}}

event: message.delta
data: {"eventId":7,"type":"message.delta","runId":"run_01HQU...","payload":{"delta":"4. **Shower** (10 min)\n"}}

event: message.delta
data: {"eventId":8,"type":"message.delta","runId":"run_01HQU...","payload":{"delta":"5. **Journaling** (8 min)\n"}}

event: message.completed
data: {"eventId":9,"type":"message.completed","runId":"run_01HQU...","payload":{"messageId":"msg_01HQU...","content":"Great question! Here's a structured 45-minute morning routine..."}}

Olay Türleri

OlayAçıklama
message.deltaYanıt içeriğinin bir parçası
message.completedAkış olarak gelen asistan içeriği tamamlandı
tool.*Araç-kartı, ilerleme, onay ve sonuç olayları
run.error / run.failedÜretim sırasında bir hata oluştu
run.settlement.completedÇalıştırma (Run) tamamen çözüldü ve sonlandı

Adım 5: Konuşma Geçmişini Listeleyin

Bir oturum için tam konuşma zincirini alın:

bash
curl -s "https://api.chainabit.com/api/v1/ai/sessions/$SESSION_ID/messages" \
  -H "Authorization: Bearer $TOKEN"

Yanıt:

json
{
  "data": [
    {
      "id": "msg_01HQT...",
      "role": "user",
      "content": "I want to build a morning routine. I have 45 minutes before work. What activities should I include?",
      "createdAt": "2026-03-17T10:01:00.000Z"
    },
    {
      "id": "msg_01HQU...",
      "role": "assistant",
      "content": "Great question! Here's a structured 45-minute morning routine...",
      "createdAt": "2026-03-17T10:01:05.000Z"
    }
  ],
  "meta": {
    "total": 2
  }
}

Adım 6: Bir AI Çalıştırması (Run) Oluşturun

AI çalıştırmaları, verilerinize karşı belirli bir özelliği yürütür. Örneğin, haftalık bir etkinlik özeti oluşturun:

bash
curl -s -X POST "https://api.chainabit.com/api/v1/ai/runs" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "featureKey": "weekly-activity-summary",
    "input": {
      "chainyId": "chainy_01HQXYZ...",
      "weekOf": "2026-03-10"
    }
  }'

Yanıt:

json
{
  "data": {
    "id": "run_01HQV...",
    "featureKey": "weekly-activity-summary",
    "status": "running",
    "createdAt": "2026-03-17T10:05:00.000Z"
  }
}

Çalıştırma ID'sini kaydedin:

bash
export RUN_ID="run_01HQV..."

Adım 7: Çalıştırma Çıktısını Akış Olarak Alın (Stream)

AI çalıştırma çıktısını, mesajları akış olarak aldığınız şekilde akış olarak alın:

bash
curl -N "https://api.chainabit.com/api/v1/ai/runs/$RUN_ID/stream" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: text/event-stream"

Çıktı:

event: run.started
data: {"eventId":1,"type":"run.started","runId":"run_01HQV...","payload":{"runId":"run_01HQV..."}}

event: message.delta
data: {"eventId":2,"type":"message.delta","runId":"run_01HQV...","payload":{"delta":"## Weekly Summary: March 10-16\n\n"}}

event: message.delta
data: {"eventId":3,"type":"message.delta","runId":"run_01HQV...","payload":{"delta":"**Workout Chain:** 5/7 days completed (71%)\n"}}

event: message.delta
data: {"eventId":4,"type":"message.delta","runId":"run_01HQV...","payload":{"delta":"**Nutrition Chain:** 6/7 days completed (86%)\n"}}

event: message.delta
data: {"eventId":5,"type":"message.delta","runId":"run_01HQV...","payload":{"delta":"\n### Highlights\n- Longest streak this week: Running (7 days)\n"}}

event: message.completed
data: {"eventId":6,"type":"message.completed","runId":"run_01HQV...","payload":{"content":"## Weekly Summary: March 10-16\n\n..."}}

event: run.settlement.completed
data: {"eventId":7,"type":"run.settlement.completed","runId":"run_01HQV...","payload":{"status":"completed"}}

Bağlantı Kopmalarını İşleme

SSE bağlantıları ağ sorunları nedeniyle kopabilir. Yeniden bağlantıyı işlemek için:

  1. Aldığınız son olayı izleyin
  2. Bağlantı koptuğunda, aynı uç noktaya yeniden bağlanın
  3. Üretim hala devam ediyorsa, sunucu kaldığı yerden devam edecektir
bash
# Bağlantı koparsa, sadece yeniden bağlanın:
curl -N "https://api.chainabit.com/api/v1/ai/sessions/$SESSION_ID/messages/$MESSAGE_ID/stream" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: text/event-stream"

Eğer run.settlement.completed, run.failed veya run.error alırsanız, akış sonlanmıştır ve yeniden bağlantı gerekmez.


Özet

Bu öğreticide şunları yaptınız:

  1. Planınızdaki mevcut AI modellerini listelediniz
  2. Bir konuşma zinciri için bir AI oturumu oluşturdunuz
  3. Bir mesaj gönderdiniz ve ID'sini yakaladınız
  4. SSE aracılığıyla gerçek zamanlı olarak AI yanıtını akış olarak aldınız
  5. Tam konuşma geçmişini aldınız
  6. Belirli bir özellik için bir AI çalıştırması oluşturdunuz
  7. Aynı SSE deseniyle çalıştırma çıktısını akış olarak aldınız

Sonraki Adımlar

Built with purpose.