İ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/balanceadresinden kontrol edebilirsiniz)
Ortam değişkenlerinizi ayarlayın:
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:
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:
{
"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
Adım 2: Yeni Bir AI Oturumu Oluşturun
Bir oturum, bir konuşma zincirini tutar:
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:
{
"data": {
"id": "session_01HQS...",
"title": "Fitness coaching",
"createdAt": "2026-03-17T10:00:00.000Z"
}
}Oturum ID'sini kaydedin:
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:
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"
}'| Alan | Değerler | Açıklama |
|---|---|---|
provider | google, openai, anthropic, mistral | Kullanılacak sağlayıcı. Varsayılan olarak google. Plana erişim gerektirir. |
effortMode | basic, thinking, pro | Model 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:
{
"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:
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:
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
| Olay | Açıklama |
|---|---|
message.delta | Yanıt içeriğinin bir parçası |
message.completed | Akış 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:
curl -s "https://api.chainabit.com/api/v1/ai/sessions/$SESSION_ID/messages" \
-H "Authorization: Bearer $TOKEN"Yanıt:
{
"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:
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:
{
"data": {
"id": "run_01HQV...",
"featureKey": "weekly-activity-summary",
"status": "running",
"createdAt": "2026-03-17T10:05:00.000Z"
}
}Çalıştırma ID'sini kaydedin:
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:
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:
- Aldığınız son olayı izleyin
- Bağlantı koptuğunda, aynı uç noktaya yeniden bağlanın
- Üretim hala devam ediyorsa, sunucu kaldığı yerden devam edecektir
# 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:
- Planınızdaki mevcut AI modellerini listelediniz
- Bir konuşma zinciri için bir AI oturumu oluşturdunuz
- Bir mesaj gönderdiniz ve ID'sini yakaladınız
- SSE aracılığıyla gerçek zamanlı olarak AI yanıtını akış olarak aldınız
- Tam konuşma geçmişini aldınız
- Belirli bir özellik için bir AI çalıştırması oluşturdunuz
- Aynı SSE deseniyle çalıştırma çıktısını akış olarak aldınız
Sonraki Adımlar
- Gelişmiş akış desenleri ve JavaScript örnekleri için AI Yanıtlarını Nasıl Akış Olarak Alırsınız
- Sizin için oturumlar çalıştırabilen yeniden kullanılabilir bir ajan oluşturmak için Bir AI Ajanı Oluşturun
- Tam AI uç noktaları belgeleri için API Referansı