Tek script
Asistanı uygulamanızın giriş sonrası ortak yerleşimine ekleyin.
Asistanı giriş gerektiren uygulamanıza bağlayın. Canlı kayıtlar kullanıcınıza kendi oturumuyla ulaşsın.
Asistanını oluştur
Uygulamanızdan, kullanıcının kendi oturumuyla.
Asistanı uygulamanızın giriş sonrası ortak yerleşimine ekleyin.
İzinli araçları ve kayıtları kendi uygulamanızdaki iki uçtan sunun.
Her veri çağrısında kullanıcının erişimini uygulamanız kontrol eder.
Giriş sonrası tüm sayfalarda bir kez yüklenir. Kurulum kimliği ve doğrulama kodu Kurulum sekmesinden kopyalanır.
<script src="https://asistan.tasci.cloud/embed.js"
data-installation="<kurulum-id>" data-verification="<kod>" defer></script>Takma ad, gizli anahtarınızla üretilir; kim olduğunu bize söylemez, konuşma geçmişini kullanıcıya bağlar. İmza, oturumun gerçekten giriş yapmış bir kullanıcıya ait olduğunu kanıtlar. Araç listesi kullanıcının rolüne göre değişir; yeni bir veri türü açmak için listeye bir araç ekleyin.
DA_SECRET=das_… # Kurulum sekmesi → Uygulama verisi → Gizli anahtar// POST /api/dijital-asistan/context — kullanıcı giriş yapmamışsa 401
import { createHmac } from "node:crypto";
const sign = (text) => createHmac("sha256", process.env.DA_SECRET).update(text).digest("base64url");
app.post("/api/dijital-asistan/context", requireLogin, (req, res) => {
const subject = sign(req.user.tenantId + ":" + req.user.id); // takma ad
const expires = Date.now() + 10 * 60 * 1000; // en çok 1 saat
res.json({
version: 1, subject, expires, locale: "tr",
signature: sign("dijital-asistan:v1:" + subject + ":" + expires),
tools: [ // yalnız bu kullanıcının izinli araçları
{ name: "borc", title: "Borç durumu", keywords: ["borç", "bakiye", "aidat"], params: { unit: "unit" } },
{ name: "takvim", title: "Takvim", keywords: ["takvim", "toplantı"], params: { period: "period" } },
],
screens: [{ title: "Borçlar", href: "/panel/borclar", keywords: ["borç", "tahsilat"] }],
});
});unit | Kayıt seçici: { block, number, name, id }. Sorudaki 'A blok 7', '7 nolu', 'Ali'nin' gibi ifadelerden çıkarılır. |
|---|---|
period | Tarih aralığı: { from, to } (YYYY-AA-GG). 'bugün', 'bu hafta', 'bu ay', 'geçen ay' gibi ifadelerden çıkarılır. |
text | Sorunun kendisi (serbest arama için). |
keywords | Aracı soruya eşlemek için kelimeler. Türkçe ekler tanınır: 'borcu' → 'borç'. |
screens | Kullanıcının izinli ekranları; 'Banka ekstresi nerede?' sorularını cevaplar. |
Script, Dijital Asistan'ın planladığı çağrıyı bu uca gönderir. Planı güvenilmez kabul edin: aracın kullanıcıya açık olduğunu ve kaydı görebildiğini her çağrıda kontrol edin. Değerleri biçimlenmiş metin olarak dönün (para birimi, tarih).
// POST /api/dijital-asistan/run — her çağrıda yetkiyi yeniden kontrol edin
app.post("/api/dijital-asistan/run", requireLogin, async (req, res) => {
const { tool, args } = req.body;
if (tool === "borc") {
const units = await findUnits(req.user, args.unit); // { block, number, name, id }
if (!units.length) return res.json({ kind: "empty", message: "Kayıt bulunamadı." });
if (units.length > 1) return res.json({ kind: "choose", message: "Hangisi?",
options: units.map(u => ({ label: u.label, args: { unit: { id: u.id } } })) });
const debt = await balance(req.user, units[0].id);
return res.json({ kind: "result", title: units[0].label,
fields: [{ label: "Kalan borç", value: money(debt.total) }],
links: [{ label: "Borç dökümü", href: "/panel/borclar?daire=" + units[0].id }] });
}
res.status(404).json({ error: { message: "Bu araç yok." } });
});result | title, fields (etiket/değer), items (liste), links (aynı adreste yollar), note, asOf |
|---|---|
choose | Birden fazla kayıt: message + options (her seçenek aynı aracı verilen args ile çalıştırır) |
ask | Eksik bilgi: message (ör. 'Hangi daire?'). Kullanıcının sonraki cevabı bu soruyu tamamlar. |
empty | Kayıt yok: message |
401 / 403 | Oturum yok / yetki yok. Widget kullanıcıya uygun mesajı gösterir. |
Uygulamanız CSP kullanıyorsa Dijital Asistan adresine şu yönergelerde izin verin:
script-src … https://asistan.tasci.cloud
style-src … https://asistan.tasci.cloud
connect-src … https://asistan.tasci.cloud
frame-src … https://asistan.tasci.cloudHayır. Dijital Asistan bir hizmettir. Uygulamanıza yalnızca script ve kendi verinizi sunan iki uç eklenir; asistandaki iyileştirmeler sizin deploy yapmanızı gerektirmez.
/context listesine bir araç tanımı, /run ucuna o aracın işleyicisini eklersiniz. Dijital Asistan tarafında bir şey değişmez.
Hayır. Kayıt soruları araç tanımlarına göre tanınır, kayıt uygulamanızdan doğrudan kullanıcının ekranına gelir.
Hayır. Kurulum uygulama başına bir kez yapılır; her kullanıcı kendi oturumuyla kullanır.
İlk asistanınızı oluşturun, kendi içeriklerinizle deneyin ve kullanıcılarınızla buluşturun.