Your AI Connector Docs

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ıt201 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ıt202 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ıt202 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