SSS API
SSS’ler, yapay zeka botunuzun müşterilere yanıt verirken yararlandığı soru-cevap girişleridir. Her SSS hesabınıza aittir ve bir veya daha fazla kampanyaya bağlanabilir; böylece aynı yanıt, ilgili olduğu her yerde yeniden kullanılabilir. SSS API’si, bu kitaplığı programatik olarak yönetmenize (kendi kodunuzdan SSS’ler oluşturmanıza, güncellemenize, toplu içe aktarmanıza, yeniden sıralamanıza ve kampanyalara bağlamanıza) olanak tanır.
Aşağıdaki tüm uç noktalar https://api.youraiconnector.com/v1 temel URL’sine göredir. Her istek kimlik doğrulamasına tabidir; bkz. API Erişimi ve Kimlik Doğrulama. API erişimi ücretli bir özelliktir; bu özellik olmadan istekler 403 ile reddedilir.
Bot bir SSS’yi nasıl kullanır: Bir SSS oluşturduğunuzda veya değiştirdiğinizde, platform arka planda arama verilerini (SSS’yi gelen sorularla eşleştirmek için kullanılır) hazırlar. Bu işlem genellikle birkaç saniye içinde tamamlanır ve ardından bot girişi otomatik olarak kullanmaya başlar.
SSS nesnesi
API’den dönen her SSS şu yapıya sahiptir:
| Alan | Tür | Açıklama |
|---|---|---|
id |
string | SSS’nin benzersiz tanımlayıcısı. |
question |
string | Bu girdinin yanıtladığı müşteri sorusu. |
answer |
string | Yapay zeka botunun verdiği yanıt. |
category |
string | null | İsteğe bağlı serbest biçimli kategori etiketi. |
tags |
string[] | SSS’leri düzenlemek için isteğe bağlı etiketler. |
is_active |
boolean | Botun bu SSS’yi kullanmasına izin verilip verilmediği. Varsayılan değer true’dır. |
is_global |
boolean | SSS’yi belirli bir kampanyaya veya Temsilciye bağlı değil olarak işaretler. Bu, SSS’nin her yerde geçerli olmasını sağlamaz: bir SSS yalnızca bağlantılı olduğu kampanyalar ve Temsilciler tarafından kullanılır. Varsayılan değer false’dir. |
usage_count |
integer | Bu SSS’nin yapay zeka yanıtlarında kaç kez kullanıldığı. |
order_index |
integer | Bu SSS’nin kendi kampanyası içindeki görüntülenme konumu. |
campaign_ids |
string[] | Bu SSS’nin bağlantılı olduğu kampanyaların kimlikleri. |
created_at |
string | null | SSS’nin oluşturulduğu zamanın ISO 8601 zaman damgası. |
updated_at |
string | null | Son değişikliğin ISO 8601 zaman damgası. |
Ayarlayabileceğiniz alanlar şunlardır: question, answer, is_active, is_global, category, tags ve order_index. Platform diğer her şeyi (arama verileri, kullanım sayıları, zaman damgaları) yönetir; istek gövdenizdeki diğer tüm alanlar göz ardı edilir.
SSS’leri listele
GET /faqs
Hesabınızdaki SSS’leri, en yenisi ilk sırada olacak şekilde döndürür. İsteğe bağlı olarak tek bir kampanyaya veya etkin durumuna göre filtreleyebilirsiniz.
Sorgu parametreleri
| Parametre | Gerekli | Açıklama |
|---|---|---|
campaign_id |
Hayır | Yalnızca bu kampanyaya bağlı SSS’leri döndürür. |
is_active |
Hayır | Yalnızca bu etkin durumuna (true veya false) sahip SSS’leri döndürür. Bu filtre sayfa başına uygulandığından, bir sayfa limit değerinden daha az öğe içerebilir. |
limit |
Hayır | Sayfa başına maksimum SSS sayısı. Varsayılan 50, maksimum 100’dir. |
cursor |
Hayır | Devam edilecek bir SSS kimliği. Önceki sayfadan gelen next_cursor değerini girin. |
cURL
curl "https://api.youraiconnector.com/v1/faqs?campaign_id=campaign123&limit=50&apiKey=YOUR_API_KEY"
JavaScript
const res = await fetch(
"https://api.youraiconnector.com/v1/faqs?campaign_id=campaign123&limit=50",
{ headers: { "X-API-Key": "YOUR_API_KEY" } }
);
const data = await res.json();
console.log(data.faqs, data.next_cursor);
Python
import requests
res = requests.get(
"https://api.youraiconnector.com/v1/faqs",
params={"campaign_id": "campaign123", "limit": 50},
headers={"X-API-Key": "YOUR_API_KEY"},
)
data = res.json()
print(data["faqs"], data["next_cursor"])
Yanıt
{
"success": true,
"faqs": [
{
"id": "aBcD1234eFgH5678",
"question": "How long does shipping take?",
"answer": "Standard shipping takes 3-5 business days.",
"category": "shipping",
"tags": ["logistics", "delivery"],
"is_active": true,
"is_global": false,
"usage_count": 12,
"order_index": 0,
"campaign_ids": ["campaign123"],
"created_at": "2026-01-01T12:00:00.000Z",
"updated_at": "2026-01-02T08:30:00.000Z"
}
],
"next_cursor": "aBcD1234eFgH5678"
}
next_cursor, null olduğunda başka sonuç kalmaz.
Bir SSS al
GET /faqs/{faqId}
Bir SSS’yi kimliğine göre döndürür.
cURL
curl "https://api.youraiconnector.com/v1/faqs/aBcD1234eFgH5678?apiKey=YOUR_API_KEY"
JavaScript
const res = await fetch(
"https://api.youraiconnector.com/v1/faqs/aBcD1234eFgH5678",
{ headers: { "X-API-Key": "YOUR_API_KEY" } }
);
const { faq } = await res.json();
Python
import requests
res = requests.get(
"https://api.youraiconnector.com/v1/faqs/aBcD1234eFgH5678",
headers={"X-API-Key": "YOUR_API_KEY"},
)
faq = res.json()["faq"]
Yanıt
{
"success": true,
"faq": {
"id": "aBcD1234eFgH5678",
"question": "How long does shipping take?",
"answer": "Standard shipping takes 3-5 business days.",
"category": "shipping",
"tags": ["logistics"],
"is_active": true,
"is_global": false,
"usage_count": 12,
"order_index": 0,
"campaign_ids": ["campaign123"],
"created_at": "2026-01-01T12:00:00.000Z",
"updated_at": "2026-01-02T08:30:00.000Z"
}
}
Bir SSS oluştur
POST /faqs
Yeni bir SSS oluşturur ve onu bir kampanyaya bağlar.
İstek alanları
| Alan | Gerekli | Açıklama |
|---|---|---|
campaign_id |
Evet | Yeni SSS’nin bağlanacağı kampanya. |
question |
Evet | Bu girdinin yanıtladığı müşteri sorusu. |
answer |
Evet | Botun vermesi gereken yanıt. |
is_active |
Hayır | Botun bu SSS’yi kullanıp kullanamayacağı. Varsayılan değer true. |
is_global |
Hayır | SSS’nin tüm kampanyalar için geçerli olup olmadığı. Varsayılan değer false. |
category |
Hayır | Serbest biçimli bir kategori etiketi. |
tags |
Hayır | Etiketlerden oluşan bir dizi. |
order_index |
Hayır | Kampanya içindeki görüntüleme konumu. Varsayılan değer 0. |
cURL
curl -X POST "https://api.youraiconnector.com/v1/faqs?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"campaign_id": "campaign123",
"question": "How long does shipping take?",
"answer": "Standard shipping takes 3-5 business days.",
"category": "shipping",
"tags": ["logistics"]
}'
JavaScript
const res = await fetch("https://api.youraiconnector.com/v1/faqs", {
method: "POST",
headers: {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
campaign_id: "campaign123",
question: "How long does shipping take?",
answer: "Standard shipping takes 3-5 business days.",
category: "shipping",
tags: ["logistics"],
}),
});
const { faq_id } = await res.json();
Python
import requests
res = requests.post(
"https://api.youraiconnector.com/v1/faqs",
headers={"X-API-Key": "YOUR_API_KEY"},
json={
"campaign_id": "campaign123",
"question": "How long does shipping take?",
"answer": "Standard shipping takes 3-5 business days.",
"category": "shipping",
"tags": ["logistics"],
},
)
faq_id = res.json()["faq_id"]
Yanıt
{
"success": true,
"faq_id": "aBcD1234eFgH5678"
}
Bir SSS’yi güncelle
PUT /faqs/{faqId}
Bir SSS’yi kısmen günceller. Yalnızca sağlanan yazılabilir alanlar değiştirilir; diğer her şey mevcut değerini korur. question veya answer değerini değiştirmek, arka planda SSS’nin arama verilerini otomatik olarak yeniler.
question veya answer gönderirseniz, bunların boş olmayan dizeler olması gerekir. Tanınan herhangi bir yazılabilir alan gönderilmezse 400 döndürülür.
cURL
curl -X PUT "https://api.youraiconnector.com/v1/faqs/aBcD1234eFgH5678?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "is_active": false }'
JavaScript
const res = await fetch(
"https://api.youraiconnector.com/v1/faqs/aBcD1234eFgH5678",
{
method: "PUT",
headers: {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({ is_active: false }),
}
);
const data = await res.json();
Python
import requests
res = requests.put(
"https://api.youraiconnector.com/v1/faqs/aBcD1234eFgH5678",
headers={"X-API-Key": "YOUR_API_KEY"},
json={"is_active": False},
)
data = res.json()
Yanıt
{
"success": true,
"faq_id": "aBcD1234eFgH5678"
}
Bir SSS’yi sil
DELETE /faqs/{faqId}
Bir SSS’yi kalıcı olarak siler. İsteğe bağlı olarak, SSS’yi o kampanyanın SSS listesinden de kaldırmak için campaign_id değerini sorgu parametresi olarak geçirin.
Sorgu parametreleri
| Parametre | Gerekli | Açıklama |
|---|---|---|
campaign_id |
Hayır | SSS’yi bu kampanyanın SSS listesinden de kaldırın. |
cURL
curl -X DELETE "https://api.youraiconnector.com/v1/faqs/aBcD1234eFgH5678?campaign_id=campaign123&apiKey=YOUR_API_KEY"
JavaScript
const res = await fetch(
"https://api.youraiconnector.com/v1/faqs/aBcD1234eFgH5678?campaign_id=campaign123",
{ method: "DELETE", headers: { "X-API-Key": "YOUR_API_KEY" } }
);
const data = await res.json();
Python
import requests
res = requests.delete(
"https://api.youraiconnector.com/v1/faqs/aBcD1234eFgH5678",
params={"campaign_id": "campaign123"},
headers={"X-API-Key": "YOUR_API_KEY"},
)
data = res.json()
Yanıt
{
"success": true
}
SSS’leri toplu silme
POST /faqs/bulk-delete
Tek bir istekte 500’e kadar SSS’yi siler. campaign_id sağlandığında, silinen SSS’ler ilgili kampanyanın SSS listesinden de kaldırılır.
İstek alanları
| Alan | Gerekli | Açıklama |
|---|---|---|
faq_ids |
Evet | Silinecek SSS kimliklerinden oluşan boş olmayan bir dizi (maks. 500). |
campaign_id |
Hayır | Silinen SSS’leri bu kampanyanın SSS listesinden de kaldırın. |
cURL
curl -X POST "https://api.youraiconnector.com/v1/faqs/bulk-delete?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "faq_ids": ["faqId1", "faqId2"], "campaign_id": "campaign123" }'
JavaScript
const res = await fetch("https://api.youraiconnector.com/v1/faqs/bulk-delete", {
method: "POST",
headers: {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
faq_ids: ["faqId1", "faqId2"],
campaign_id: "campaign123",
}),
});
const data = await res.json();
Python
import requests
res = requests.post(
"https://api.youraiconnector.com/v1/faqs/bulk-delete",
headers={"X-API-Key": "YOUR_API_KEY"},
json={"faq_ids": ["faqId1", "faqId2"], "campaign_id": "campaign123"},
)
data = res.json()
Yanıt
{
"success": true,
"deleted_count": 2
}
SSS İçe Aktarma
POST /faqs/import
500 adede kadar SSS’yi toplu olarak içe aktarır ve hepsini tek bir kampanyaya bağlar. question değeri kitaplığınızdaki mevcut bir SSS ile eşleşen (büyük/küçük harf duyarsız) öğeler, kopya oluşturmak yerine mevcut SSS’yi günceller.
Performans ipucu: Kopya eşleştirme işlemi tüm SSS kitaplığınızı tarar, bu nedenle çok büyük kitaplıklar içe aktarma işlemlerini yavaşlatır. Birçok küçük içe aktarma yerine daha az sayıda ve daha büyük içe aktarmaları tercih edin.
İstek alanları
| Alan | Zorunlu | Açıklama |
|---|---|---|
campaign_id |
Evet | İçe aktarılan tüm SSS’lerin bağlandığı kampanya. |
faqs |
Evet | Boş olmayan bir SSS öğeleri dizisi (maks. 500). Her öğe boş olmayan bir question ve answer değerine sahip olmalıdır; ayrıca is_active, is_global, category, tags ve order_index değerlerini de içerebilir. |
cURL
curl -X POST "https://api.youraiconnector.com/v1/faqs/import?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"campaign_id": "campaign123",
"faqs": [
{ "question": "Do you ship internationally?", "answer": "Yes, we ship to most countries worldwide." },
{ "question": "What is your return policy?", "answer": "You can return any item within 30 days." }
]
}'
JavaScript
const res = await fetch("https://api.youraiconnector.com/v1/faqs/import", {
method: "POST",
headers: {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
campaign_id: "campaign123",
faqs: [
{
question: "Do you ship internationally?",
answer: "Yes, we ship to most countries worldwide.",
},
{
question: "What is your return policy?",
answer: "You can return any item within 30 days.",
},
],
}),
});
const data = await res.json();
Python
import requests
res = requests.post(
"https://api.youraiconnector.com/v1/faqs/import",
headers={"X-API-Key": "YOUR_API_KEY"},
json={
"campaign_id": "campaign123",
"faqs": [
{"question": "Do you ship internationally?", "answer": "Yes, we ship to most countries worldwide."},
{"question": "What is your return policy?", "answer": "You can return any item within 30 days."},
],
},
)
data = res.json()
Yanıt
{
"success": true,
"faq_ids": ["aBcD1234eFgH5678", "iJkL9012mNoP3456"],
"imported_count": 2
}
faq_ids, sağladığınız sırayla oluşturulan veya güncellenen SSS kimlikleridir.
SSS’leri Yeniden Sıralama
POST /faqs/reorder
Bir kampanyanın SSS’lerinin görüntülenme sırasını ayarlar. SSS kimliklerinin tam listesini istenen sırada sağlayın; her SSS’nin konumu, dizideki yerine uyacak şekilde güncellenir.
İstek alanları
| Alan | Gerekli | Açıklama |
|---|---|---|
campaign_id |
Evet | SSS’leri yeniden sıralanan kampanya. |
ordered_faq_ids |
Evet | Kampanyanın tüm SSS kimliklerinin istenen görüntüleme sırasındaki boş olmayan bir dizisi (maks. 500). |
cURL
curl -X POST "https://api.youraiconnector.com/v1/faqs/reorder?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"campaign_id": "campaign123",
"ordered_faq_ids": ["faqId2", "faqId1", "faqId3"]
}'
JavaScript
const res = await fetch("https://api.youraiconnector.com/v1/faqs/reorder", {
method: "POST",
headers: {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
campaign_id: "campaign123",
ordered_faq_ids: ["faqId2", "faqId1", "faqId3"],
}),
});
const data = await res.json();
Python
import requests
res = requests.post(
"https://api.youraiconnector.com/v1/faqs/reorder",
headers={"X-API-Key": "YOUR_API_KEY"},
json={
"campaign_id": "campaign123",
"ordered_faq_ids": ["faqId2", "faqId1", "faqId3"],
},
)
data = res.json()
Yanıt
{
"success": true
}
Kampanya veya SSS kimliklerinden herhangi biri hesabınızda bulunamazsa, istek 404 One or more FAQs were not found döndürür.
Bir SSS’yi bir kampanyaya bağlayın
POST /faqs/{faqId}/link
Mevcut bir SSS’yi ek bir kampanyaya bağlar. Bir SSS herhangi bir sayıda kampanya tarafından paylaşılabilir, bu nedenle aynı yanıtın yalnızca bir kez tutulması gerekir.
İstek alanları
| Alan | Gerekli | Açıklama |
|---|---|---|
campaign_id |
Evet | SSS’nin bağlanacağı kampanya. |
cURL
curl -X POST "https://api.youraiconnector.com/v1/faqs/aBcD1234eFgH5678/link?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "campaign_id": "campaign456" }'
JavaScript
const res = await fetch(
"https://api.youraiconnector.com/v1/faqs/aBcD1234eFgH5678/link",
{
method: "POST",
headers: {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({ campaign_id: "campaign456" }),
}
);
const data = await res.json();
Python
import requests
res = requests.post(
"https://api.youraiconnector.com/v1/faqs/aBcD1234eFgH5678/link",
headers={"X-API-Key": "YOUR_API_KEY"},
json={"campaign_id": "campaign456"},
)
data = res.json()
Yanıt
{
"success": true,
"faq_id": "aBcD1234eFgH5678",
"campaign_id": "campaign456"
}
Bir SSS’nin bir kampanyayla bağlantısını kesin
POST /faqs/{faqId}/unlink
Bir SSS’yi, SSS’nin kendisini silmeden bir kampanyadan kaldırır. SSS kitaplığınızda kalır ve diğer kampanyalarla bağlantılı olmaya devam eder.
İstek alanları
| Alan | Zorunlu | Açıklama |
|---|---|---|
campaign_id |
Evet | SSS’nin kaldırılacağı kampanya. |
cURL
curl -X POST "https://api.youraiconnector.com/v1/faqs/aBcD1234eFgH5678/unlink?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "campaign_id": "campaign456" }'
JavaScript
const res = await fetch(
"https://api.youraiconnector.com/v1/faqs/aBcD1234eFgH5678/unlink",
{
method: "POST",
headers: {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({ campaign_id: "campaign456" }),
}
);
const data = await res.json();
Python
import requests
res = requests.post(
"https://api.youraiconnector.com/v1/faqs/aBcD1234eFgH5678/unlink",
headers={"X-API-Key": "YOUR_API_KEY"},
json={"campaign_id": "campaign456"},
)
data = res.json()
Yanıt
{
"success": true,
"faq_id": "aBcD1234eFgH5678",
"campaign_id": "campaign456"
}
Bir SSS’nin arama verilerini yeniden oluşturun
POST /faqs/{faqId}/rebuild-embeddings
Yapay zeka botunun bu SSS’yi bulmak için kullandığı verilerin (anlamsal ve anahtar kelime arama verileri) yeniden oluşturulmasını kuyruğa alır. Bu, bir SSS beklendiği gibi yanıtlarda çıkmıyorsa yararlıdır. Yeniden oluşturma işlemi arka planda çalışır ve genellikle birkaç saniye içinde tamamlanır; SSS, yeniden oluşturulurken geçici olarak yapay zeka yanıtlarının dışında tutulabilir.
Bu uç nokta, yanıt gönderildikten sonra çalışma devam ettiği için 202 Accepted döndürür. status her zaman "processing" değerindedir; tamamlandığını doğrulamanız gerekirse SSS’yi daha sonra tekrar getirin.
cURL
curl -X POST "https://api.youraiconnector.com/v1/faqs/aBcD1234eFgH5678/rebuild-embeddings?apiKey=YOUR_API_KEY"
JavaScript
const res = await fetch(
"https://api.youraiconnector.com/v1/faqs/aBcD1234eFgH5678/rebuild-embeddings",
{ method: "POST", headers: { "X-API-Key": "YOUR_API_KEY" } }
);
const data = await res.json();
Python
import requests
res = requests.post(
"https://api.youraiconnector.com/v1/faqs/aBcD1234eFgH5678/rebuild-embeddings",
headers={"X-API-Key": "YOUR_API_KEY"},
)
data = res.json()
Yanıt
{
"success": true,
"faq_id": "aBcD1234eFgH5678",
"status": "processing"
}
Yapay zeka destekli SSS yönetimi
Aşağıdaki uç noktalar basit CRUD işlemlerinin ötesine geçer: kontrol panelindeki SSS düzenleyicinin kullandığı aynı yapay zeka destek araçlarını çağırırlar; yinelenenleri bulma, bir belgeden giriş oluşturma ve SSS’leri açık bilgi boşluğu görevleriyle eşleştirme gibi. Bu kümedeki istek gövdeleri, bu sayfadaki diğer yerlerde kullanılan snake_case yerine, uygulamanın kendi istek biçimleriyle eşleşen camelCase alan adlarını (campaignId, taskId, sourceIds…) kullanır; bir alan adını tahmin etmek yerine aşağıdaki örnekleri kopyalayın.
Bir SSS’yi yalnızca kampanyaya özel bir kopya olarak çatallayın
POST /faqs/{faqId}/fork-for-campaign
Mevcut bir SSS’nin kopyası olan, tek bir kampanya ile sınırlandırılmış yeni bir SSS oluşturur ve o kampanyayı orijinali yerine yeni kopyaya yeniden bağlar. Orijinal SSS’nin kullanıldığı diğer her yeri değiştirmeden, bir kampanya için yanıtı özelleştirmek istediğinizde bunu kullanın. Orijinal SSS yerinde kalır; yalnızca bu kampanyanın bağlantısını kaybeder.
İstek alanları
| Alan | Gerekli | Açıklama |
|---|---|---|
campaign_id |
Evet | Yeni kopyanın sınırlandırılacağı ve orijinal SSS’den yeniden bağlanacağı kampanya. |
question |
Evet | Yeni, kampanyaya özel kopya için soru. |
answer |
Evet | Yeni, kampanyaya özel kopya için yanıt. |
cURL
curl -X POST "https://api.youraiconnector.com/v1/faqs/aBcD1234eFgH5678/fork-for-campaign?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"campaign_id": "campaign456",
"question": "How long does shipping take to the EU?",
"answer": "For EU orders, shipping takes 7-10 business days."
}'
JavaScript
const res = await fetch(
"https://api.youraiconnector.com/v1/faqs/aBcD1234eFgH5678/fork-for-campaign",
{
method: "POST",
headers: {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
campaign_id: "campaign456",
question: "How long does shipping take to the EU?",
answer: "For EU orders, shipping takes 7-10 business days.",
}),
}
);
const data = await res.json();
Python
import requests
res = requests.post(
"https://api.youraiconnector.com/v1/faqs/aBcD1234eFgH5678/fork-for-campaign",
headers={"X-API-Key": "YOUR_API_KEY"},
json={
"campaign_id": "campaign456",
"question": "How long does shipping take to the EU?",
"answer": "For EU orders, shipping takes 7-10 business days.",
},
)
data = res.json()
Yanıt — 201 Created
{
"success": true,
"faq_id": "nEwFaQiD9012mNoP",
"campaign_id": "campaign456",
"original_faq_id": "aBcD1234eFgH5678"
}
Neredeyse aynı olan SSS’leri bulun
POST /faqs/dedupe
SSS kitaplığınızı neredeyse aynı olan ve örtüşen girişler için tarayan ve emin olduğu durumlarda bunları birleştiren veya kaldıran bir arka plan işi başlatır. Toplu içe aktarma işleminden sonra veya birkaç tur yapay zeka tarafından oluşturulan SSS’nin kitaplıkta örtüşmelere neden olmasından sonra kullanışlıdır. Hesap başına aynı anda yalnızca bir tekilleştirme işi çalışabilir; bir iş hala çalışırken ikincisini başlatmak 409 döndürür.
İstek alanları
| Alan | Gerekli | Açıklama |
|---|---|---|
sourceIds |
Hayır | Tekilleştirmenin kapsamını belirlemek için bilgi tabanı kaynak kimlikleri dizisi. Tüm SSS kitaplığınızı taramak için boş bırakın. |
cURL
curl -X POST "https://api.youraiconnector.com/v1/faqs/dedupe?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
JavaScript
const res = await fetch("https://api.youraiconnector.com/v1/faqs/dedupe", {
method: "POST",
headers: {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({}),
});
const data = await res.json();
Python
import requests
res = requests.post(
"https://api.youraiconnector.com/v1/faqs/dedupe",
headers={"X-API-Key": "YOUR_API_KEY"},
json={},
)
data = res.json()
Yanıt — 202 Accepted
{
"success": true,
"job_id": "dedupJob_aBc123"
}
İş arka planda çalışır ve büyük bir kitaplıkta genellikle birkaç dakika sürer. Ayrı bir durum uç noktası yoktur; neyin değiştiğini görmek için kısa bir bekleyişten sonra GET /faqs öğesini yeniden getirin. Sonucu incelemeyi bitirdiğinizde, temizlemek için aşağıdaki reddetme uç noktasını çağırın.
Bir kopya kontrol sonucunu reddedin
POST /faqs/dedupe/dismiss
Tamamlanan tekilleştirme işini temizler, böylece aktif bir sonuç olarak görünmeyi durdurur. Etkisizdir (idempotent); reddedilecek bir şey olmasa bile çağrılması güvenlidir. İş hala queued veya processing durumundaysa 409 döndürür (henüz bitmemiş bir çalışmayı reddedemezsiniz).
cURL
curl -X POST "https://api.youraiconnector.com/v1/faqs/dedupe/dismiss?apiKey=YOUR_API_KEY"
JavaScript
const res = await fetch("https://api.youraiconnector.com/v1/faqs/dedupe/dismiss", {
method: "POST",
headers: { "X-API-Key": "YOUR_API_KEY" },
});
const data = await res.json();
Python
import requests
res = requests.post(
"https://api.youraiconnector.com/v1/faqs/dedupe/dismiss",
headers={"X-API-Key": "YOUR_API_KEY"},
)
data = res.json()
Yanıt
{ "success": true }
Yüklenen belgelerden SSS oluşturun
POST /faqs/generate-from-documents
Hesabınızın dosya depolama alanında bulunan bir veya daha fazla belgeyi okur ve yapay zekanın içeriklerinden SSS taslakları oluşturmasını sağlar; taslakları mevcut kütüphanenizle karşılaştırarak yinelenen içerikler oluşturmak yerine mevcut girişleri yeniden kullanır veya günceller. Sonuçlar hemen yazılmaz; incelemeniz için kampanya üzerinde bekleyen bir değişiklik kümesi olarak saklanır, ardından aşağıdaki İncelenen SSS değişikliklerini uygula ile uygulanır (veya atılır). Bu işlem, belge metni üzerinde bir yapay zeka oluşturma geçişi olduğu için kredi harcar.
Bu uç nokta dosyayı taşımaz: storagePath, Bilgi Bankası API’sindeki Yüklenen bir belgeyi içe aktar ile aynı kurala uygun olarak, kendi yükleme klasörünüzde (users/{your user id}/uploads/) zaten bulunan bir dosyayı işaret etmelidir.
İstek alanları
| Alan | Gerekli | Açıklama |
|---|---|---|
campaignId |
Evet | Oluşturulan SSS’lerin önerildiği kampanya. |
uploadedFiles |
Evet | Okunacak dosyaların boş olmayan dizisi, her biri { storagePath, fileName, mimeType }. storagePath, users/{your user id}/uploads/ ile başlamalıdır. |
cURL
curl -X POST "https://api.youraiconnector.com/v1/faqs/generate-from-documents?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"campaignId": "campaign123",
"uploadedFiles": [
{ "storagePath": "users/abc123uid/uploads/handbook.pdf", "fileName": "handbook.pdf", "mimeType": "application/pdf" }
]
}'
JavaScript
const res = await fetch("https://api.youraiconnector.com/v1/faqs/generate-from-documents", {
method: "POST",
headers: {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
campaignId: "campaign123",
uploadedFiles: [
{ storagePath: "users/abc123uid/uploads/handbook.pdf", fileName: "handbook.pdf", mimeType: "application/pdf" },
],
}),
});
const data = await res.json();
Python
import requests
res = requests.post(
"https://api.youraiconnector.com/v1/faqs/generate-from-documents",
headers={"X-API-Key": "YOUR_API_KEY"},
json={
"campaignId": "campaign123",
"uploadedFiles": [
{"storagePath": "users/abc123uid/uploads/handbook.pdf", "fileName": "handbook.pdf", "mimeType": "application/pdf"},
],
},
)
data = res.json()
Yanıt — 202 Accepted
{
"success": true,
"faqCount": 6,
"reusedCount": 2,
"modifiedCount": 1,
"newCount": 3
}
faqCount, inceleme bekleyen toplam önerilen değişiklik sayısıdır; reusedCount, modifiedCount ve newCount bunu, mevcut bir girişle eşleşen ve değişmeyen SSS’lere, yapay zekanın düzenlenmesini önerdiği SSS’lere ve yepyeni olanlara ayırır. Yüklenen dosyalar, başarılı olup olmadığına bakılmaksızın işlem bittiğinde depolama alanından silinir.
İncelenen SSS değişikliklerini uygula
POST /faqs/apply-optimization
Yukarıdaki Belgelerden SSS oluştur veya kontrol panelinin SSS optimizasyon incelemesi tarafından üretilen, yapay zeka tarafından önerilen bekleyen SSS değişiklikleri kümesini uygular (veya atar). Hangi önerilen değişikliklerin kabul edileceğini tam olarak siz seçersiniz; belirtmediğiniz her şey olduğu gibi bırakılır (atlanmış bir değişiklik asla silme işlemi gerektiren bir reddetme olarak değerlendirilmez).
İstek alanları
| Alan | Gerekli | Açıklama |
|---|---|---|
campaignId |
Bu ikisinden biri | Bekleyen SSS değişiklikleri uygulanan kampanya. |
agentId |
Bu ikisinden biri | Temsilci tabanlı bir hesapta, bekleyen SSS değişiklikleri uygulanan Yapay Zeka Temsilcisi. campaignId / agentId öğelerinden tam olarak birini sağlayın, asla ikisini birden değil. |
acceptedChanges |
Evet | Kabul ettiğiniz değişikliklerin dizisi, her biri { action, faq_id?, faq_ref_path?, question?, answer?, edit_scope? }. action, keep, remove, add_from_library, create_new, modify öğelerinden biridir. Bekleyen kümeyi hiçbir şey uygulamadan atmak için boş bir dizi gönderin. |
cURL
curl -X POST "https://api.youraiconnector.com/v1/faqs/apply-optimization?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"campaignId": "campaign123",
"acceptedChanges": [
{ "action": "create_new", "question": "Do you ship to the EU?", "answer": "Yes, EU shipping takes 7-10 business days." },
{ "action": "remove", "faq_ref_path": "users/abc123uid/faqs/oldFaqId" }
]
}'
JavaScript
const res = await fetch("https://api.youraiconnector.com/v1/faqs/apply-optimization", {
method: "POST",
headers: {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
campaignId: "campaign123",
acceptedChanges: [
{ action: "create_new", question: "Do you ship to the EU?", answer: "Yes, EU shipping takes 7-10 business days." },
{ action: "remove", faq_ref_path: "users/abc123uid/faqs/oldFaqId" },
],
}),
});
const data = await res.json();
Python
import requests
res = requests.post(
"https://api.youraiconnector.com/v1/faqs/apply-optimization",
headers={"X-API-Key": "YOUR_API_KEY"},
json={
"campaignId": "campaign123",
"acceptedChanges": [
{"action": "create_new", "question": "Do you ship to the EU?", "answer": "Yes, EU shipping takes 7-10 business days."},
{"action": "remove", "faq_ref_path": "users/abc123uid/faqs/oldFaqId"},
],
},
)
data = res.json()
Yanıt
{
"success": true,
"message": "Applied 2 FAQ changes",
"faq_count": 7
}
faq_count, uygulama sonrasında kampanyanın (veya Temsilcinin) toplam bağlantılı SSS sayısıdır. Uygulanacak bekleyen bir değişiklik kümesi yoksa, yanıt { "success": true, "message": "No pending FAQ changes to apply" } olur.
Bir göreve benzer SSS’leri bul
POST /faqs/similar-for-task
SSS kütüphanenizi, bir bilgi boşluğu görevinin sorusuyla olan alaka düzeyine göre sıralar; bu, kontrol panelindeki “Mevcut bir SSS kullan” seçicisinin arkasındaki aynı arama işlemidir. Salt okunurdur. taskId, faq_update türündeki bir görevi işaret etmelidir.
Bu uç nokta, bilinmeyen bir görev gibi beklenen bir hata durumunda bile her zaman 200 yanıtını verir — HTTP durumu yerine gövdedeki success değerini kontrol edin.
İstek alanları
| Alan | Gerekli | Açıklama |
|---|---|---|
taskId |
Evet | Eşleşmelerin bulunacağı faq_update görevi. |
limit |
Hayır | Döndürülecek maksimum eşleşme sayısı. Varsayılan 20’dir, en fazla 50 olabilir. |
cURL
curl -X POST "https://api.youraiconnector.com/v1/faqs/similar-for-task?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "taskId": "task789", "limit": 10 }'
JavaScript
const res = await fetch("https://api.youraiconnector.com/v1/faqs/similar-for-task", {
method: "POST",
headers: {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({ taskId: "task789", limit: 10 }),
});
const data = await res.json();
Python
import requests
res = requests.post(
"https://api.youraiconnector.com/v1/faqs/similar-for-task",
headers={"X-API-Key": "YOUR_API_KEY"},
json={"taskId": "task789", "limit": 10},
)
data = res.json()
Yanıt
{
"success": true,
"data": {
"task_id": "task789",
"matches": [
{
"faq_id": "aBcD1234eFgH5678",
"question": "How long does shipping take?",
"answer": "Standard shipping takes 3-5 business days.",
"category": "shipping",
"created_at": "2026-01-01T12:00:00.000Z",
"similarity": 0.81,
"embedding_similarity": 0.81,
"keyword_similarity": 0.6,
"bm25_score": 4.2,
"distance": 0.19
}
]
}
}
Eşleşmeler, önce en iyisi olacak şekilde similarity (mümkünse anlamsal eşleşme, aksi takdirde anahtar kelime örtüşmesi) değerine göre sıralanır. Hafif bir hata durumunda yapı { "success": false, "error": "...", "error_code": 404 } şeklindedir — error_code, normalde HTTP durumunun ne olacağını yansıtır.
Bir görevi mevcut bir SSS ile çözümleme
POST /faqs/resolve-task
Bir bilgi eksikliği görevini, (yeni bir tane yazmak yerine) halihazırda sahip olduğunuz bir SSS ile ilişkilendirerek çözer, bu SSS’nin yanıtını eksikliği tetikleyen kişiye gönderir ve görevi tamamlandı olarak işaretler. Bunu, Bir göreve benzer SSS’leri bul işlemi soruyu zaten kapsayan mevcut bir SSS’yi ortaya çıkardıktan sonra kullanın.
Yukarıdaki uç nokta gibi, bu da her zaman 200 yanıtını verir — gövdedeki success değerini kontrol edin.
İstek alanları
| Alan | Gerekli | Açıklama |
|---|---|---|
taskId |
Evet | Çözümlenecek faq_update görevi. |
faqId |
Evet | İlişkilendirilecek ve yanıt olarak gönderilecek mevcut SSS. |
cURL
curl -X POST "https://api.youraiconnector.com/v1/faqs/resolve-task?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "taskId": "task789", "faqId": "aBcD1234eFgH5678" }'
JavaScript
const res = await fetch("https://api.youraiconnector.com/v1/faqs/resolve-task", {
method: "POST",
headers: {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({ taskId: "task789", faqId: "aBcD1234eFgH5678" }),
});
const data = await res.json();
Python
import requests
res = requests.post(
"https://api.youraiconnector.com/v1/faqs/resolve-task",
headers={"X-API-Key": "YOUR_API_KEY"},
json={"taskId": "task789", "faqId": "aBcD1234eFgH5678"},
)
data = res.json()
Yanıt
{
"success": true,
"data": {
"task_id": "task789",
"faq_id": "aBcD1234eFgH5678",
"follow_up_status": "published"
}
}
follow_up_status, kişi takibine ne olduğunu size bildirir: published (hemen gönderildi), queued (yapay zeka o kişiye zaten yanıt veriyordu, bu yüzden bir sonraki sırada gönderilecek), skipped_no_contact (görevin ilişkili bir kişisi yok) veya skipped_no_campaign (gönderilecek bir kampanya yok).
SSS API hataları
SSS uç noktaları standart hata zarfını döndürür:
{
"success": false,
"error": "FAQ not found"
}
| Durum | Bir SSS uç noktasında gerçekleştiğinde |
|---|---|
400 |
Gerekli bir alan eksik veya geçersiz (örneğin boş bir question, eksik bir campaign_id veya toplu istekte 500’den fazla öğe). |
404 |
SSS veya kampanya bulunamadı — ya mevcut değil ya da başka bir hesaba ait. |
409 |
POST /faqs/dedupe, bir tekilleştirme işi zaten queued/processing durumundayken çağrıldı veya iş henüz bitmemişken POST /faqs/dedupe/dismiss çağrıldı. |
Her uç noktanın döndürebileceği ortak kodlar — 401, 403 (planınız API erişimini içermiyor), 429 (hız sınırı) ve 500 — yeniden deneme rehberliği ile birlikte Hatalar ve Sayfalandırma bölümünde listelenmiştir.
POST /faqs/similar-for-task ve POST /faqs/resolve-task, bu sayfadaki iki istisnadır: beklenen bir hata durumunda (bilinmeyen görev, yanlış görev türü) bile 200 yanıtını verirler ve gerçek durumu gövdedeki error_code içine koyarlar — yukarıdaki her bir uç noktaya bakın.
İlgili
- Kampanyalar API’si — SSS’lerinizin bağlı olduğu kampanyalar.
- Bilgi Bankası API’si — web sitelerini ve belgeleri otomatik olarak SSS’lere aktarın ve SSS’leri yeniden kullanılabilir bilgi grupları halinde birleştirin.
- API Erişimi — API anahtarınızı oluşturun.
- Kimlik Doğrulama — anahtarınızı iletmenin tüm yolları.