บทความคือองค์ประกอบของฐานความรู้ สร้าง แสดงรายการ อัปเดต และลบเนื้อหาที่ AI Agent ใช้ตอบคำถาม
บทความคือองค์ประกอบของฐานความรู้ของ AI Agent แต่ละบทความแทนความรู้หนึ่งส่วน เช่น หน้าช่วยเหลือ คำถามที่พบบ่อย คำอธิบายสินค้า หรือเนื้อหาใดก็ตามที่ AI ควรรู้
บทความมีสามประเภท: บทความ (เอกสารเต็มที่มีชื่อและเนื้อหา), ย่อหน้า (ข้อความสั้นแยกเดี่ยว) และ บทความ URL (สร้างอัตโนมัติเมื่อนำเข้าเนื้อหาเว็บ) คุณสร้างบทความผ่าน API นำเข้าจากเว็บไซต์ด้วย นำเข้าเนื้อหาภายนอก อัปโหลดไฟล์ผ่าน อัปโหลดไฟล์ หรือซิงก์จาก Intercom ได้
ไม่มีขั้นตอนฝึกใหม่ ทุกบทความที่สร้าง อัปเดต หรือลบจะประมวลผลอัตโนมัติในเบื้องหลังและมีผลทันทีเมื่อเสร็จ โดยปกติใช้เวลาไม่กี่วินาที ติดตามผ่านฟิลด์ embed_state ด้านล่าง หรือ pending_embed_count ใน ดึงการตั้งค่าฐานความรู้
ตัวอย่างการตรวจสอบเพิ่มเติม
หัวข้อที่มีชื่อว่า “ตัวอย่างการตรวจสอบเพิ่มเติม”-
ดูตัวอย่างคำขอ API Action แสดงคำขอจากเทมเพลตและค่าตัวอย่างสมมติโดยไม่ส่งคำขอ ไม่ต้องใส่ส่วนหัวที่มีข้อมูลรับรอง
-
ดูตัวอย่างผลที่ตรงกับ JSONPath ตรวจเส้นทางระดับราก ฟิลด์ ดัชนีอาร์เรย์ และไวลด์การ์ดกับ JSON ที่กำหนด การตรวจสอบนี้ไม่เรียกใช้การดำเนินการหรือบันทึกหน่วยความจำบทสนทนา
สร้างบทความ
หัวข้อที่มีชื่อว่า “สร้างบทความ”POST https://app.quickchat.ai/v1/api/knowledge_base/articles/
เนื้อหาคำขอ
| พารามิเตอร์ | คำอธิบาย |
|---|---|
content สตริง, จำเป็น | เนื้อหาบทความ |
type สตริง | "Article" (ค่าเริ่มต้น) หรือ "Paragraph" |
title สตริง | ชื่อบทความ |
"Article": เอกสารฐานความรู้เต็มรูปแบบที่มีชื่อและเนื้อหา ใช้กับคำถามที่พบบ่อย บทความช่วยเหลือ และคำอธิบายสินค้า"Paragraph": ข้อความสั้นแยกเดี่ยวที่ไม่มีชื่อ ใช้กับข้อเท็จจริงสั้น ๆ คำตอบบรรทัดเดียว หรือข้อมูลอ้างอิงแบบย่อ"URL"(อ่านอย่างเดียว): สร้างโดยอัตโนมัติเมื่อนำเข้าเนื้อหาจากเว็บไซต์ มีเนื้อหาหน้าที่ดึงมาพร้อม URL ต้นทาง ไม่สามารถกำหนดตอนสร้างได้
curl -X POST https://app.quickchat.ai/v1/api/knowledge_base/articles/ \ -H 'Authorization: Bearer <API_TOKEN>' \ -H 'Content-Type: application/json' \ -d '{ "content": "Our return policy allows returns within 30 days.", "title": "Return Policy"}'import requests
response = requests.post( url="https://app.quickchat.ai/v1/api/knowledge_base/articles/", headers={"Authorization": "Bearer <API_TOKEN>"}, json={ "content": "Our return policy allows returns within 30 days.", "title": "Return Policy", },)data = response.json()การตอบกลับ 201 Created
{ "id": 1234, "article_id": "abc-123", "type": "Article", "title": "Return Policy", "description": "", "content": "Our return policy allows returns within 30 days.", "state": "draft", "deploy_state": "draft", "embed_state": "pending", "refresh_failure_reason": "", "version": null, "max_available_version": null, "url": null, "tags": [], "created_timestamp": "2026-01-15", "last_modified_timestamp": "2026-01-15", "downloaded_timestamp": "2026-01-15", "last_updated_timestamp": "2026-01-15", "last_updated_from_external_source_timestamp": null}| ฟิลด์ | คำอธิบาย |
|---|---|
id จำนวนเต็ม | ID บทความแบบตัวเลข เป็นตัวระบุหลักที่ใช้ในเส้นทาง URL ทั้งหมด |
article_id สตริง | ตัวระบุแบบสตริงรุ่นเก่า อาจว่างได้ ให้ใช้ id แทน |
type สตริง | "Article", "Paragraph" หรือ "URL" |
title สตริง | ชื่อบทความ |
description สตริง | คำอธิบายบทความ |
content สตริง | เนื้อหาบทความ |
deploy_state สตริง | "draft" หรือ "published" เป็นเพียงป้ายกำกับ (ดูหมายเหตุด้านล่าง) |
embed_state สตริง หรือ null | สถานะว่าบทความพร้อมใช้งานหรือไม่: "pending", "embedding", "embedded" หรือ "failed" (ดูหมายเหตุด้านล่าง) |
state สตริง | สถานะการประมวลผลภายใน (ดูหมายเหตุด้านล่าง) |
refresh_failure_reason สตริง | เหตุผลที่รีเฟรช URL ล่าสุดไม่สำเร็จ ว่างหากไม่ได้เก็บประเภทความล้มเหลวไว้ |
version จำนวนเต็ม หรือ null | หมายเลขเวอร์ชันปัจจุบัน |
max_available_version จำนวนเต็ม หรือ null | เวอร์ชันสูงสุดที่มี |
url สตริง หรือ null | URL ต้นทาง (สำหรับบทความชนิด URL) |
tags อาร์เรย์ของสตริง | แท็กที่เกี่ยวข้อง |
created_timestamp สตริง | วันที่สร้าง |
last_modified_timestamp สตริง | วันที่แก้ไขล่าสุด |
downloaded_timestamp สตริง | วันที่ดาวน์โหลด |
last_updated_timestamp สตริง | วันที่อัปเดตล่าสุด |
last_updated_from_external_source_timestamp สตริง หรือ null | การอัปเดตล่าสุดจากแหล่งภายนอก |
บทความมีฟิลด์สถานะสามฟิลด์ มีเพียงฟิลด์เดียวที่บอกว่า AI Agent ใช้บทความนั้นอยู่หรือไม่:
embed_state: ฟิลด์สำคัญ"pending"และ"embedding"หมายถึงยังประมวลผลอยู่"embedded"หมายถึงพร้อมใช้งานและ AI Agent กำลังใช้ และ"failed"หมายถึงประมวลผลไม่สำเร็จและไม่ได้ใช้บทความ นี่คือฟิลด์ที่ควรเรียกตรวจสอบหลังเขียนข้อมูลdeploy_state:"draft"หรือ"published"เป็นป้ายกำกับเพื่อจัดระเบียบของคุณเองเท่านั้น ไม่มี ผลต่อการที่ AI ใช้บทความหรือไม่state: สถานะดึงเนื้อหาภายใน ผู้ใช้ API ส่วนใหญ่ไม่ต้องใช้ สำหรับบทความ URL ค่า"refresh_failed"หมายถึงการรีเฟรชล่าสุดไม่ได้แทนที่เนื้อหาที่บันทึกไว้refresh_failure_reason: ประเภทความล้มเหลวของการรีเฟรช URL ที่มีค่าคงที่ ได้แก่"http_error","soft_404","off_domain_redirect","auth_wall","error_page","empty_content"หรือ"thin_content"อาจว่างได้หากดึงเนื้อหาไม่สำเร็จก่อน Quickchat จะจำแนกประเภทหน้า เนื้อหาล่าสุดที่บันทึกไว้ยังใช้งานได้ เว้นแต่embed_stateจะล้มเหลวด้วย
แสดงรายการบทความ
หัวข้อที่มีชื่อว่า “แสดงรายการบทความ”GET https://app.quickchat.ai/v1/api/knowledge_base/articles/
พารามิเตอร์การค้นหา
| พารามิเตอร์ | คำอธิบาย |
|---|---|
limit จำนวนเต็ม | จำนวนรายการต่อหน้า |
offset จำนวนเต็ม | จำนวนรายการที่จะข้าม |
types สตริง | กรองตามประเภท: Article, Paragraph, URL |
tags สตริง | กรองตามแท็ก |
url สตริง | กรองตาม URL |
title สตริง | กรองตามชื่อ |
query สตริง | ค้นหาจากเนื้อหา |
curl 'https://app.quickchat.ai/v1/api/knowledge_base/articles/?limit=10&offset=0' \ -H 'Authorization: Bearer <API_TOKEN>'import requests
response = requests.get( url="https://app.quickchat.ai/v1/api/knowledge_base/articles/", headers={"Authorization": "Bearer <API_TOKEN>"}, params={"limit": 10, "offset": 0},)data = response.json()การตอบกลับ 200 OK
{ "items": [ { "id": 1234, "article_id": "abc-123", "type": "Article", "title": "Return Policy", "description": "", "state": "published", "deploy_state": "published", "embed_state": "embedded", "refresh_failure_reason": "", "version": 1, "max_available_version": 1, "url": null, "tags": ["policies"], "created_timestamp": "2026-01-15", "last_modified_timestamp": "2026-01-15", "downloaded_timestamp": "2026-01-15", "last_updated_timestamp": "2026-01-15", "last_updated_from_external_source_timestamp": null } ], "offset": 0, "limit": 10, "count": 1}การตอบกลับรายการ ไม่มี ฟิลด์ content ใช้ ดึงบทความ เพื่อดึงเนื้อหาเต็มของบทความที่ต้องการ
ดึงบทความ
หัวข้อที่มีชื่อว่า “ดึงบทความ”GET https://app.quickchat.ai/v1/api/knowledge_base/articles/{article_id}
curl https://app.quickchat.ai/v1/api/knowledge_base/articles/1234 \ -H 'Authorization: Bearer <API_TOKEN>'import requests
response = requests.get( url="https://app.quickchat.ai/v1/api/knowledge_base/articles/1234", headers={"Authorization": "Bearer <API_TOKEN>"},)data = response.json()การตอบกลับ 200 OK ส่งกลับออบเจ็กต์บทความเต็ม (โครงสร้างเดียวกับการตอบกลับ สร้างบทความ) รวมถึงฟิลด์ content
อัปเดตบทความ
หัวข้อที่มีชื่อว่า “อัปเดตบทความ”PATCH https://app.quickchat.ai/v1/api/knowledge_base/articles/{article_id}
เนื้อหาคำขอ
| พารามิเตอร์ | คำอธิบาย |
|---|---|
content สตริง | เนื้อหาบทความที่อัปเดต |
title สตริง | ชื่อที่อัปเดต |
tags อาร์เรย์ของสตริง | แท็กที่อัปเดต |
save_mode สตริง | "draft" (ค่าเริ่มต้น) หรือ "publish" |
ตัวเลือก save_mode: "draft" กำหนดเพียงแฟล็ก deploy_state ไม่ได้ กันเนื้อหาออกจาก AI บทความฉบับร่างจะประมวลผลและใช้งานเหมือนบทความที่เผยแพร่ อย่าใช้เป็นพื้นที่พักเนื้อหา ให้เขียนบทความเมื่อพร้อมให้ใช้งานจริงเท่านั้น
curl -X PATCH https://app.quickchat.ai/v1/api/knowledge_base/articles/1234 \ -H 'Authorization: Bearer <API_TOKEN>' \ -H 'Content-Type: application/json' \ -d '{ "title": "Updated Return Policy", "content": "Returns accepted within 60 days.", "save_mode": "publish"}'import requests
response = requests.patch( url="https://app.quickchat.ai/v1/api/knowledge_base/articles/1234", headers={"Authorization": "Bearer <API_TOKEN>"}, json={ "title": "Updated Return Policy", "content": "Returns accepted within 60 days.", "save_mode": "publish", },)data = response.json()การตอบกลับ 200 OK ส่งกลับออบเจ็กต์บทความที่อัปเดตแล้ว
ลบบทความ
หัวข้อที่มีชื่อว่า “ลบบทความ”ลบหนึ่งบทความหรือหลายบทความด้วย ID
ขอบเขตสิทธิ์: write_allDELETE https://app.quickchat.ai/v1/api/knowledge_base/articles/
เนื้อหาคำขอ: อาร์เรย์ JSON ของ ID บทความ
curl -X DELETE https://app.quickchat.ai/v1/api/knowledge_base/articles/ \ -H 'Authorization: Bearer <API_TOKEN>' \ -H 'Content-Type: application/json' \ -d '[1234, 5678]'import requests
response = requests.delete( url="https://app.quickchat.ai/v1/api/knowledge_base/articles/", headers={"Authorization": "Bearer <API_TOKEN>"}, json=[1234, 5678],)การตอบกลับ 200 OK
ค้นหาบทความ
หัวข้อที่มีชื่อว่า “ค้นหาบทความ”ค้นหาเนื้อหาบทความด้วยการจับคู่ข้อความ
ขอบเขตสิทธิ์: read_allGET https://app.quickchat.ai/v1/api/knowledge_base/articles/search
พารามิเตอร์การค้นหา
| พารามิเตอร์ | คำอธิบาย |
|---|---|
query สตริง, จำเป็น | ข้อความค้นหา |
is_case_insensitive บูลีน | ค้นหาโดยไม่สนใจตัวพิมพ์ใหญ่เล็ก (ค่าเริ่มต้น: true) |
with_title_url_and_tags บูลีน | รวมชื่อ/URL/แท็กในการค้นหา (ค่าเริ่มต้น: true) |
strict_search บูลีน | ต้องตรงกันทุกประการ (ค่าเริ่มต้น: false) |
num_of_display_articles จำนวนเต็ม | จำนวนบทความที่แสดง (ค่าเริ่มต้น: 5) |
num_of_data_articles จำนวนเต็ม | จำนวนบทความที่ใช้ค้นหา (ค่าเริ่มต้น: 15) |
curl 'https://app.quickchat.ai/v1/api/knowledge_base/articles/search?query=return%20policy' \ -H 'Authorization: Bearer <API_TOKEN>'import requests
response = requests.get( url="https://app.quickchat.ai/v1/api/knowledge_base/articles/search", headers={"Authorization": "Bearer <API_TOKEN>"}, params={"query": "return policy"},)data = response.json()การตอบกลับ 200 OK
{ "article_snippets": [ { "article_id": 1234, "expository_sentence": "Our return policy allows returns within 30 days.", "query_words_ids": [ {"start_char": 4, "end_char": 10, "text": "return"} ] } ], "article_snapshots": { "items": [], "offset": 0, "count": 1 }}แสดงรายการย่อหน้า
หัวข้อที่มีชื่อว่า “แสดงรายการย่อหน้า”แสดงบทความประเภท Paragraph ทั้งหมด ย่อหน้าเป็นข้อความสั้นแยกเดี่ยวที่ไม่มีชื่อ ต่างจากบทความเต็มที่มีทั้งชื่อและเนื้อหา
ขอบเขตสิทธิ์: read_allGET https://app.quickchat.ai/v1/api/knowledge_base/articles/paragraphs
พารามิเตอร์การค้นหา
| พารามิเตอร์ | คำอธิบาย |
|---|---|
limit จำนวนเต็ม | จำนวนรายการต่อหน้า |
offset จำนวนเต็ม | จำนวนรายการที่จะข้าม |
query สตริง | กรองตามเนื้อหา |
curl 'https://app.quickchat.ai/v1/api/knowledge_base/articles/paragraphs?limit=10' \ -H 'Authorization: Bearer <API_TOKEN>'import requests
response = requests.get( url="https://app.quickchat.ai/v1/api/knowledge_base/articles/paragraphs", headers={"Authorization": "Bearer <API_TOKEN>"}, params={"limit": 10},)data = response.json()การตอบกลับ 200 OK
{ "items": [ { "id": 1, "content": "Our return policy allows returns within 30 days." } ], "offset": 0, "count": 1}