All Products
Search
Document Center

Platform For AI:API layanan PAI-RAG (v0.4.x)

Last Updated:Jun 21, 2026

Dokumen ini mencakup versi v0.4.x dari layanan PAI-RAG, menyediakan definisi API, contoh permintaan, dan konsep inti untuk membantu pengembang mengintegrasikan kemampuan PAI-RAG ke dalam aplikasi mereka secara cepat dan efisien.

Prasyarat: Dapatkan endpoint dan token

Untuk memanggil layanan RAG melalui API-nya, Anda perlu mendapatkan endpoint layanan dan sebuah token. Semua permintaan API harus menyertakan EAS_TOKEN di header HTTP Authorization.

$EAS_SERVICE_URL dan $EAS_TOKEN yang muncul dalam deskripsi API di bawah ini adalah variabel lingkungan. Anda harus menyetelnya sebelum digunakan. Ikuti langkah-langkah berikut untuk mendapatkannya:

  1. Masuk ke Konsol PAI. Pilih wilayah di bagian atas halaman, lalu pilih ruang kerja yang diinginkan dan klik Elastic Algorithm Service (EAS).

  2. Klik nama layanan target Anda, lalu pada bagian Basic Information, klik View Endpoint Information.

  3. Pada halaman Invocation Method, dapatkan Internet/VPC Endpoint (EAS_SERVICE_URL) dan Token (EAS_TOKEN).

    Penting
    • Hapus tanda slash (/) di akhir nilai EAS_SERVICE_URL.

    • Gunakan endpoint internet jika klien Anda dapat mengakses Internet publik.

    • Gunakan endpoint VPC hanya jika klien Anda berada dalam Virtual Private Cloud (VPC) yang sama dengan layanan RAG.

Setelah mendapatkan EAS_SERVICE_URL dan EAS_TOKEN, tetapkan sebagai variabel lingkungan untuk menyederhanakan pemanggilan API selanjutnya:

export EAS_SERVICE_URL="your_service_endpoint"
export EAS_TOKEN="your_token"

Setelah ditetapkan, Anda dapat menggunakan $EAS_SERVICE_URL dan $EAS_TOKEN dalam perintah curl berikutnya.

Chat API

Chat API adalah antarmuka chat streaming yang mendukung agen dan Retrieval-Augmented Generation (RAG). API ini memperluas protokol chat kompatibel OpenAI dengan fitur lanjutan seperti pengambilan basis pengetahuan, penalaran multi-langkah, dan pemanggilan alat, sehingga cocok untuk membangun sistem percakapan cerdas dan chatbot tanya-jawab.

Penting

Cara yang direkomendasikan untuk memanggil Chat API adalah dengan mengonfigurasi aplikasi chat Anda sendiri. Misalnya, Anda dapat membuat aplikasi bernama my_assistant dan mengonfigurasi basis pengetahuannya serta pengaturan pencarian web.

POST $EAS_SERVICE_URL/v1/chat/completions

Description: Mengirim permintaan chat. Gunakan parameter model untuk memanggil aplikasi chat yang telah dikonfigurasi sebelumnya, yang mungkin terhubung ke basis pengetahuan, pencarian web, atau sumber daya lainnya.

Request body (application/json)

Parameter

Type

Required

Description

model

String

Yes

Nama aplikasi chat Anda.

messages

Array

Yes

Riwayat percakapan, berupa daftar pesan dalam format OpenAI.

stream

Boolean

No

Menentukan apakah respons dikembalikan dalam mode streaming. Nilai default-nya adalah false.

Contoh request body

{
    "model": "my_assistant",
    "messages": [
        {
            "role": "user",
            "content": "What are the core features of PAI-RAG?"
        }
    ],
    "stream": true
}

Response body

Format respons kompatibel dengan API OpenAI chat.completions.

Contoh klien OpenAI:

from openai import OpenAI
import os
EAS_ENDPOINT = os.getenv("EAS_SERVICE_URL")
EAS_TOKEN = os.getenv("EAS_TOKEN")
client = OpenAI(
    base_url=EAS_ENDPOINT,
    api_key=EAS_TOKEN
)
response = client.chat.completions.create(
    model="my_assistant",  # Ganti dengan nama aplikasi chat Anda
    messages=[
        {"role": "user", "content": "Hello"}
    ],
    stream=True
)
for chunk in response:
    print(chunk.choices[0].delta.content)

Manajemen basis pengetahuan

Basis pengetahuan

Buat basis pengetahuan baru dan konfigurasikan pengaturannya untuk chunking data, penyematan, dan pengambilan.

POST $EAS_SERVICE_URL/v1/config/knowledgebases

Request

curl -X POST "$EAS_SERVICE_URL/v1/config/knowledgebases" \
--header "Authorization: Bearer $EAS_TOKEN" \
--header 'Content-Type: application/json' \
--data '{
    "name": "example_kb",
    "description": "This is an example knowledge base.",
    "chunk_config": {
        "parser_type": "structure",
        "separator": "\n\n",
        "chunk_size": 1000,
        "chunk_overlap": 50
    },
    "embedding_model": "BAAI/bge-m3",
    "retrieval_config": {
        "retrieval_mode": "hybrid",
        "top_k": 5,
        "similarity_threshold": 0.2,
        "enable_rerank": true,
        "rerank_model": "qwen3-reranker",
        "vector_weight": 0.7
    }
}'
Request headers

Content-Type string (Required)

Tipe konten permintaan. Parameter ini harus diatur ke application/json.

Authorization string (Required)

Token autentikasi untuk permintaan. Gunakan EAS_TOKEN.

Request body

name string (Required)

Nama basis pengetahuan.

description string (Optional)

Deskripsi basis pengetahuan.

embedding_model string (Required)

Nama atau path model penyematan. Model lokal maupun remote didukung.

chunk_config object (Optional)

Konfigurasi chunking data.

Properties

parser_type string (Optional)

Jenis parser. Nilai valid: structure, table, token, dan paragraph.

separator string (Optional)

Pemisah kustom.

chunk_size int (Optional)

Panjang maksimum setiap chunk, dalam karakter.

chunk_overlap int (Optional)

Panjang tumpang tindih antara chunk yang berdekatan, dalam karakter.

image_caption_model string (Optional)

Model keterangan gambar.

retrieval_config object (Optional)

Konfigurasi pengambilan.

Properties

retrieval_mode string (Optional)

Mode pengambilan. Nilai valid: hybrid (pencarian hibrida) dan vector (pencarian vektor).

top_k int (Optional)

Jumlah chunk teratas yang dikembalikan.

similarity_threshold float (Optional)

Menyaring hasil dengan skor kemiripan di bawah nilai ini.

enable_rerank bool (Optional)

Menentukan apakah hasil pengambilan akan diurutkan ulang.

Penting

Untuk menggunakan fitur ini, Anda harus terlebih dahulu mengonfigurasi model reranker di PAI-RAG Web UI.

rerank_model string (Optional)

Nama atau path model reranker.

vector_weight float (Optional)

Bobot komponen pencarian vektor yang digunakan dalam pencarian hibrida.

Contoh respons

{
    "code": 200,
    "message": "Knowledge base created successfully.",
    "data": {
        "name": "example_kb",
        "tenant_id": "__default_tenant_id__",
        "created_at": "2026-02-27T02:35:01.121035Z",
        "description": "This is an example knowledge base.",
        "updated_at": "2026-02-27T02:35:01.121046Z",
        "chunk_config": {
            "chunk_size": 1000,
            "chunk_overlap": 50,
            "parser_type": "structure",
            "separator": "\n\n",
            "image_caption_model": null,
            "image_caption_provider_name": "openai_like",
            "table_config": {
                "concat_rows": false,
                "row_joiner": "\n",
                "header_index_max": 0,
                "format_sheet_data_to_json": false,
                "sheet_column_filters": null,
                "question_column_index": 0,
                "answer_column_index": 1
            }
        },
        "id": "a4815ee728a64e9c83a3d891dbc1c956",
        "embedding_model": "BAAI/bge-m3",
        "embedding_provider_name": "openai_like",
        "retrieval_config": {
            "retrieval_mode": "hybrid",
            "top_k": 5,
            "similarity_threshold": 0.2,
            "vector_weight": 0.7,
            "enable_rerank": true,
            "rerank_model": "qwen3-reranker",
            "rerank_provider_name": "openai_like",
            "rerank_top_k": 5
        }
    }
}

Daftar basis pengetahuan

Mengambil daftar basis pengetahuan yang dipaginasi dalam layanan saat ini.

GET $EAS_SERVICE_URL/v1/config/knowledgebases?page=1&size=10

Request

curl -X GET "$EAS_SERVICE_URL/v1/config/knowledgebases?page=1&size=10" \
--header "Authorization: Bearer $EAS_TOKE"
Request headers

Authorization string (Required)

Token autentikasi untuk permintaan. Gunakan nilai EAS_TOKEN.

Query parameters

page int (Optional)

Nomor halaman yang diambil. Nilai default-nya adalah 1.

size int (Optional)

Jumlah item per halaman. Nilai default-nya adalah 10, dan nilai maksimumnya adalah 1000.

Contoh respons

{
    "code": 200,
    "message": "Successfully retrieved the list of knowledge bases.",
    "data": {
        "items": [
            {
                "name": "example_kb",
                "tenant_id": "__default_tenant_id__",
                "created_at": "2026-02-27T02:35:01.121035Z",
                "description": "This is an example knowledge base.",
                "updated_at": "2026-02-27T02:35:01.121046Z",
                "chunk_config": {
                    "chunk_size": 1000,
                    "chunk_overlap": 50,
                    "parser_type": "structure",
                    "separator": "\n\n",
                    "image_caption_model": null,
                    "image_caption_provider_name": "openai_like",
                    "table_config": {
                        "concat_rows": false,
                        "row_joiner": "\n",
                        "header_index_max": 0,
                        "format_sheet_data_to_json": false,
                        "sheet_column_filters": null,
                        "question_column_index": 0,
                        "answer_column_index": 1
                    }
                },
                "id": "a4815ee728a64e9c83a3d891dbc1c956",
                "embedding_model": "BAAI/bge-m3",
                "embedding_provider_name": "openai_like",
                "retrieval_config": {
                    "retrieval_mode": "hybrid",
                    "top_k": 5,
                    "similarity_threshold": 0.2,
                    "vector_weight": 0.7,
                    "enable_rerank": true,
                    "rerank_model": "qwen3-reranker",
                    "rerank_provider_name": "openai_like",
                    "rerank_top_k": 5
                },
                "file_count": 0
            },
            {
                "name": "iPhone16",
                "tenant_id": "__default_tenant_id__",
                "created_at": "2026-02-25T08:57:07.085859Z",
                "description": "",
                "updated_at": "2026-02-25T09:01:40.035292Z",
                "chunk_config": {
                    "chunk_size": 1000,
                    "chunk_overlap": 50,
                    "parser_type": "structure",
                    "separator": "\n\n",
                    "image_caption_model": null,
                    "image_caption_provider_name": "openai_like",
                    "table_config": {
                        "concat_rows": false,
                        "row_joiner": "\n",
                        "header_index_max": 0,
                        "format_sheet_data_to_json": false,
                        "sheet_column_filters": null,
                        "question_column_index": 0,
                        "answer_column_index": 1
                    }
                },
                "id": "08f6bb77fd3441099fb5b19e4f10d67b",
                "embedding_model": "BAAI/bge-m3",
                "embedding_provider_name": "openai_like",
                "retrieval_config": {
                    "retrieval_mode": "vector",
                    "top_k": 5,
                    "similarity_threshold": 0.2,
                    "vector_weight": 0.7,
                    "enable_rerank": false,
                    "rerank_model": "",
                    "rerank_provider_name": "openai_like",
                    "rerank_top_k": 5
                },
                "file_count": 2
            }
        ],
        "total": 2,
        "pages": 1,
        "page": 1,
        "size": 10
    }
}

Ambil basis pengetahuan

Mengambil detail basis pengetahuan.

GET $EAS_SERVICE_URL/v1/config/knowledgebases/{kb_id}

Request

curl -X GET "$EAS_SERVICE_URL/v1/config/knowledgebases/{kb_id}" \
--header "Authorization: Bearer $EAS_TOKEN"
Headers

Authorization string (Required)

Token autentikasi. Gunakan EAS_TOKEN Anda.

Path parameters

kb_id string (Required)

Identifier unik basis pengetahuan.

Contoh respons

{
    "code": 200,
    "message": "Retrieved the knowledge base successfully.",
    "data": {
        "id": "a4815ee728a64e9c83a3d891dbc1c956",
        "tenant_id": "__default_tenant_id__",
        "name": "example_kb",
        "description": "This is an example knowledge base.",
        "created_at": "2026-02-27T02:35:01.121035+00:00",
        "updated_at": "2026-02-27T02:35:01.121046+00:00",
        "embedding_model": "BAAI/bge-m3",
        "embedding_provider_name": "openai_like",
        "chunk_config": {
            "chunk_size": 1000,
            "chunk_overlap": 50,
            "parser_type": "structure",
            "separator": "\n\n",
            "image_caption_model": null,
            "image_caption_provider_name": "openai_like",
            "table_config": {
                "concat_rows": false,
                "row_joiner": "\n",
                "header_index_max": 0,
                "format_sheet_data_to_json": false,
                "sheet_column_filters": null,
                "question_column_index": 0,
                "answer_column_index": 1
            }
        },
        "retrieval_config": {
            "retrieval_mode": "hybrid",
            "top_k": 5,
            "similarity_threshold": 0.2,
            "vector_weight": 0.7,
            "enable_rerank": true,
            "rerank_model": "qwen3-reranker",
            "rerank_provider_name": "openai_like",
            "rerank_top_k": 5
        }
    }
}

Perbarui basis pengetahuan

Memperbarui basis pengetahuan yang sudah ada.

PUT $EAS_SERVICE_URL/v1/config/knowledgebases/{kb_id}

Request

curl -X PUT "$EAS_SERVICE_URL/v1/config/knowledgebases/{kb_id}" \
--header "Authorization: Bearer $EAS_TOKEN" \
--header 'Content-Type: application/json' \
--data '{
    "name": "example_kb",
    "description": "Example",
    "id": "kb4451867a6d0f4166babddb7a048a311d",
    "embedding_model": "BAAI/bge-m3",
    "chunk_config": {
        "chunk_size": 1000,
        "chunk_overlap": 50,
        "parser_type": "structure",
        "separator": "\n\n"
    },
    "retrieval_config": {
        "retrieval_mode": "hybrid",
        "top_k": 6,
        "similarity_threshold": 0.2,
        "vector_weight": 0.7,
        "enable_rerank": true,
        "rerank_model": "qwen3-reranker"
    }
}'
Request headers

Content-Type string (Required)

Parameter ini harus diatur ke application/json.

Authorization string (Required)

Token autentikasi. Gunakan EAS_TOKEN.

Path parameters

kb_id string (Required)

Identifier unik basis pengetahuan.

Request body

Body permintaan menerima parameter yang sama dengan operasi pembuatan basis pengetahuan, termasuk name, description, embedding_model, chunk_config, dan retrieval_config.

Contoh respons

{
    "code": 200,
    "message": "Knowledge base updated successfully.",
    "data": {
        "name": "example_kb",
        "tenant_id": "__default_tenant_id__",
        "created_at": "2026-02-27T02:35:01.121035Z",
        "description": "Example",
        "updated_at": "2026-02-27T07:26:55.543217Z",
        "chunk_config": {
            "chunk_size": 1000,
            "chunk_overlap": 50,
            "parser_type": "structure",
            "separator": "\n\n",
            "image_caption_model": null,
            "image_caption_provider_name": "openai_like",
            "table_config": {
                "concat_rows": false,
                "row_joiner": "\n",
                "header_index_max": 0,
                "format_sheet_data_to_json": false,
                "sheet_column_filters": null,
                "question_column_index": 0,
                "answer_column_index": 1
            }
        },
        "id": "a4815ee728a64e9c83a3d891dbc1c956",
        "embedding_model": "BAAI/bge-m3",
        "embedding_provider_name": "openai_like",
        "retrieval_config": {
            "retrieval_mode": "hybrid",
            "top_k": 6,
            "similarity_threshold": 0.2,
            "vector_weight": 0.7,
            "enable_rerank": true,
            "rerank_model": "qwen3-reranker",
            "rerank_provider_name": "openai_like",
            "rerank_top_k": 5
        }
    }
}

Hapus basis pengetahuan

Menghapus basis pengetahuan yang ditentukan beserta semua file dan indeksnya secara permanen. Operasi ini tidak dapat dikembalikan. Lakukan dengan hati-hati.

DELETE $EAS_SERVICE_URL/v1/config/knowledgebases/{kb_id}

Request

curl -X DELETE "$EAS_SERVICE_URL/v1/config/knowledgebases/{kb_id}" \
--header "Authorization: Bearer $EAS_TOKEN"
Request headers

Authorization string (Required)

Token autentikasi untuk permintaan. Gunakan EAS_TOKEN.

Path parameters

kb_id string (Required)

Identifier unik basis pengetahuan.

Contoh respons

{"code":200,"message":"Knowledge base deleted successfully.","data":null}

Manajemen file

Unggah file

Mengunggah satu atau beberapa file ke basis pengetahuan tertentu. API asinkron ini langsung mengembalikan informasi file. Parsing dan pengindeksan terjadi di latar belakang. Format file yang didukung meliputi PDF, DOCX, dan TXT.

POST $EAS_SERVICE_URL/v1/config/knowledgebases/{kb_id}/files

Request

curl -X POST "$EAS_SERVICE_URL/v1/config/knowledgebases/{kb_id}/files" \
--header "Authorization: Bearer $EAS_TOKEN" \
--header 'Content-Type: multipart/form-data' \
--form 'files=@"/path/to/your/file.pdf"'
Request headers

Content-Type string (Required)

Tipe konten permintaan. Parameter ini harus diatur ke multipart/form-data.

Authorization string (Required)

Token autentikasi untuk permintaan. Gunakan EAS_TOKEN Anda.

Path parameters

kb_id string (Required)

Identifier unik basis pengetahuan.

Request body

files file (Required)

Satu atau beberapa file untuk diunggah.

Contoh respons

{
    "code": 200,
    "message": "File upload successful",
    "data": [
        {
            "file_content_length": 0,
            "status": "pending",
            "file_source": null,
            "failed_reason": null,
            "file_name": "EAS_model_service_overview.pdf",
            "active": true,
            "tenant_id": "__default_tenant_id__",
            "file_path": "a4815ee728a64e9c83a3d891dbc1c956/docs/EAS_model_service_overview.pdf",
            "created_at": "2026-02-27T07:30:10.875488Z",
            "id": "2540b5414f2d422291cea3162eb8e1e0",
            "file_extension": ".pdf",
            "updated_at": "2026-02-27T07:30:10.875503Z",
            "kb_id": "a4815ee728a64e9c83a3d891dbc1c956",
            "file_size": 889027,
            "file_metadata": {
                "file_path": "a4815ee728a64e9c83a3d891dbc1c956/docs/EAS_model_service_overview.pdf",
                "file_name": "EAS_model_service_overview.pdf",
                "file_size": 889027,
                "file_extension": ".pdf"
            },
            "message_id": "tmp-1772177410",
            "file_md5": "f4b60d2b9fd9edec06649ce7b5d65cb0",
            "chunk_config": {
                "chunk_size": 1000,
                "chunk_overlap": 50,
                "parser_type": "structure",
                "separator": "\n\n",
                "image_caption_model": null,
                "image_caption_provider_name": "openai_like",
                "table_config": {
                    "concat_rows": false,
                    "row_joiner": "\n",
                    "header_index_max": 0,
                    "format_sheet_data_to_json": false,
                    "sheet_column_filters": null,
                    "question_column_index": 0,
                    "answer_column_index": 1
                }
            },
            "file_content": "",
            "file_version": 1772177410
        }
    ]
}

Daftar file

Mengambil daftar file yang dipaginasi dari basis pengetahuan tertentu. Anda dapat menyaring hasil berdasarkan nama file dan status pemrosesan.

GET $EAS_SERVICE_URL/v1/config/knowledgebases/{kb_id}/files

Request

curl -X GET "$EAS_SERVICE_URL/v1/config/knowledgebases/{kb_id}/files?query=EAS&status=succeeded&page=1&size=10" \
--header "Authorization: Bearer $EAS_TOKEN"
Request headers

Authorization string (required)

Token autentikasi Anda. Gunakan nilai $EAS_TOKEN.

Path parameters

kb_id string (required)

ID basis pengetahuan.

Query parameters

query string (optional)

Kata kunci pencarian untuk pencocokan kabur pada nama file.

status string (optional)

Menyaring file berdasarkan status pemrosesan. Jika dihilangkan, API mengembalikan file dari semua status. Nilai valid: pending, succeeded, failed, persisting, parsing.

page int (optional)

Nomor halaman. Default-nya adalah 1.

size int (optional)

Jumlah hasil yang dikembalikan per halaman. Default-nya adalah 10.

Contoh respons

{
    "code": 200,
    "message": "Successfully retrieved the file list.",
    "data": {
        "items": [
            {
                "file_content_length": 0,
                "status": "succeeded",
                "file_source": null,
                "failed_reason": null,
                "file_name": "EAS model service overview.pdf",
                "active": true,
                "tenant_id": "__default_tenant_id__",
                "file_path": "a4815ee728a64e9c83a3d891dbc1c956/docs/EAS model service overview.pdf",
                "created_at": "2026-02-27T07:30:10.875488Z",
                "id": "2540b5414f2d422291cea3162eb8e1e0",
                "file_extension": ".pdf",
                "updated_at": "2026-02-27T07:30:10.875503Z",
                "kb_id": "a4815ee728a64e9c83a3d891dbc1c956",
                "file_size": 889027,
                "file_metadata": {
                    "file_path": "a4815ee728a64e9c83a3d891dbc1c956/docs/EAS model service overview.pdf",
                    "file_name": "EAS model service overview.pdf",
                    "file_size": 889027,
                    "file_extension": ".pdf"
                },
                "message_id": "tmp-1772177410",
                "file_md5": "f4b60d2b9fd9edec06649ce7b5d65cb0",
                "chunk_config": null,
                "file_content": "",
                "file_version": 1772177410
            }
        ],
        "total": 1,
        "pages": 1,
        "page": 1,
        "size": 10
    }
}

Ambil detail file

Mengembalikan informasi detail tentang satu file. Gunakan endpoint ini untuk memantau status pemrosesan file.

GET $EAS_SERVICE_URL/v1/config/knowledgebases/{kb_id}/files/{file_id}

Request

curl -X GET "$EAS_SERVICE_URL/v1/config/knowledgebases/{kb_id}/files/{file_id}" \
--header "Authorization: Bearer $EAS_TOKEN"
Headers

Authorization string (Required)

Token otorisasi. Gunakan EAS_TOKEN Anda.

Path parameters

kb_id string (Required)

ID basis pengetahuan.

file_id string (Required)

ID file.

Contoh respons

{
    "code": 200,
    "message": "File query successful",
    "data": {
        "file_content_length": 0,
        "status": "succeeded",
        "file_source": null,
        "failed_reason": null,
        "file_name": "EAS模型服务概述.pdf",
        "active": true,
        "tenant_id": "__default_tenant_id__",
        "file_path": "a4815ee728a64e9c83a3d891dbc1c956/docs/EAS模型服务概述.pdf",
        "created_at": "2026-02-27T07:30:10.875488Z",
        "id": "2540b5414f2d422291cea3162eb8e1e0",
        "file_extension": ".pdf",
        "updated_at": "2026-02-27T07:30:10.875503Z",
        "kb_id": "a4815ee728a64e9c83a3d891dbc1c956",
        "file_size": 889027,
        "file_metadata": {
            "file_path": "a4815ee728a64e9c83a3d891dbc1c956/docs/EAS模型服务概述.pdf",
            "file_name": "EAS模型服务概述.pdf",
            "file_size": 889027,
            "file_extension": ".pdf",
            "file_url": "http://rag-test-****.oss-cn-hangzhou.aliyuncs.com/pairag_knowledgebases%2Fa4815ee728a64e9c83a3d891dbc1c956%2Fdocs%2FEAS%E6%A8%A1%E5%9E%8B%E6%9C%8D%E5%8A%A1%E6%A6%82%E8%BF%B0.pdf?OSSAccessKeyId=******&Expires=1772181413&Signature=IME****MxJ7Ys2%2BMwckrZsNfg%3D"
        },
        "message_id": "tmp-1772177410",
        "file_md5": "f4b60d2b9fd9edec06649ce7b5d65cb0",
        "chunk_config": null,
        "file_content": "",
        "file_version": 1772177410
    }
}

Proses ulang file

Memproses ulang file, misalnya file yang gagal diproses atau telah diperbarui. Ini adalah operasi asinkron yang membuat tugas pemrosesan baru dan mengatur ulang status file menjadi pending.

PUT $EAS_SERVICE_URL/v1/config/knowledgebases/{kb_id}/files/{file_id}

Request

curl -X PUT "$EAS_SERVICE_URL/v1/config/knowledgebases/{kb_id}/files/{file_id}" \
--header "Authorization: Bearer $EAS_TOKEN" \
--header 'Content-Type: application/json' \
Header

Content-Type string (Required)

Tipe konten permintaan. Parameter ini harus diatur ke application/json.

Authorization string (Required)

Token autentikasi untuk permintaan. Gunakan EAS_TOKEN.

Path parameter

kb_id string (Required)

Identifier unik basis pengetahuan.

file_id string (Required)

Identifier unik file.

Contoh respons

{
    "code": 200,
    "message": "Successfully added 1 files to the reprocessing queue.",
    "data": 1
}

Hapus file

Menghapus file dan chunk data serta indeks terkaitnya dari basis pengetahuan.

DELETE $EAS_SERVICE_URL/v1/config/knowledgebases/{kb_id}/files/{file_id}

Request

curl -X DELETE "$EAS_SERVICE_URL/v1/config/knowledgebases/{kb_id}/files/{file_id}" \
--header "Authorization: Bearer $EAS_TOKEN"
Headers

Authorization string (Required)

Token autentikasi. Gunakan EAS_TOKEN Anda.

Path parameters

kb_id string (Required)

Identifier unik untuk basis pengetahuan.

file_id string (Required)

Identifier unik untuk file.

Contoh respons

{
    "code": 200,
    "message": "Knowledge base file deleted successfully.",
    "data": null
}

Manajemen chunk data

Daftar chunk file

Mengembalikan daftar chunk yang dipaginasi dari file tertentu.

GET $EAS_SERVICE_URL/v1/config/knowledgebases/{kb_id}/files/{file_id}/chunks?page=1&size=10

Request

curl -X GET "$EAS_SERVICE_URL/v1/config/knowledgebases/{kb_id}/files/{file_id}/chunks?page=1&size=10" \
--header "Authorization: Bearer $EAS_TOKEN"
Request headers

Authorization string (required)

Token yang digunakan untuk mengautentikasi permintaan. Gunakan EAS_TOKEN.

Path parameters

kb_id string (required)

Identifier unik basis pengetahuan.

file_id string (required)

Identifier unik file.

Query parameters

page int (optional)

Nomor halaman. Nilai default-nya adalah 1.

size int (optional)

Jumlah chunk per halaman. Nilai default-nya adalah 10.

Contoh respons

{
    "code": 200,
    "message": "Chunk list retrieval successful",
    "data": {
        "items": [
            {
                "active": true,
                "text": "EAS model service overview******and other capabilities.\n\n",
                "chunk_metadata": {
                    "file_path": "a4815ee728a64e9c83a3d891dbc1c956/docs/EAS_model_service_overview.pdf",
                    "file_name": "EAS_model_service_overview.pdf",
                    "file_size": 889027,
                    "file_extension": ".pdf",
                    "page_bbox": "[{\"page_idx\":1, \"bbox\":[77.600088, 73.57552407360004, 551.0441759999999, 239.87664000000007]}]",
                    "token_count": 196,
                    "doc_id": "2540b5414f2d422291cea3162eb8e1e0",
                    "images_info": []
                },
                "file_id": "2540b5414f2d422291cea3162eb8e1e0",
                "file_version": 0,
                "index": 0,
                "updated_at": "2026-02-27T07:42:00.167502Z",
                "status": "succeeded",
                "tenant_id": "__default_tenant_id__",
                "id": "e2b0d936158f4656a6cacb5ab639de6d",
                "file_part": 0,
                "kb_id": "a4815ee728a64e9c83a3d891dbc1c956",
                "created_at": "2026-02-27T07:42:00.167488Z"
            }
        ],
        "total": 1,
        "pages": 1,
        "page": 1,
        "size": 10
    }
}

Perbarui chunk

Memperbarui konten atau status chunk. Misalnya, Anda dapat memperbaiki secara manual teks yang tersegmentasi buruk atau menonaktifkan chunk agar tidak dimasukkan dalam pengambilan.

PUT $EAS_SERVICE_URL/v1/config/knowledgebases/{kb_id}/files/{file_id}/chunks/{chunk_id}

Request

curl -X PUT "$EAS_SERVICE_URL/v1/config/knowledgebases/{kb_id}/files/{file_id}/chunks/{chunk_id}" \
--header "Authorization: Bearer $EAS_TOKEN" \
--header "Content-Type: application/json" \
--data '{
    "text": "The updated text content of the chunk...",
    "active": true
}'
Request headers

Authorization string (Required)

Token autentikasi untuk permintaan. Gunakan EAS_TOKEN.

Content-Type string (Required)

application/json

Path parameters

kb_id string (Required)

Identifier unik basis pengetahuan.

file_id string (Required)

Identifier unik file.

chunk_id string (Required)

Identifier unik chunk.

Request body

text string (Optional)

Konten teks terbaru untuk chunk.

active bool (Optional)

Menunjukkan apakah chunk aktif. Jika false, chunk tidak dimasukkan dalam pengambilan.

Contoh respons

{
    "code": 200,
    "message": "Chunk update successful",
    "data": {
        "active": true,
        "text": "Updated chunk text content...",
        "chunk_metadata": {
            "file_path": "a4815ee728a64e9c83a3d891dbc1c956/docs/EAS_model_service_overview.pdf",
            "file_name": "EAS_model_service_overview.pdf",
            "file_size": 889027,
            "file_extension": ".pdf",
            "page_bbox": "[{\"page_idx\":1, \"bbox\":[77.600088, 73.57552407360004, 551.0441759999999, 239.87664000000007]}]",
            "token_count": 196,
            "doc_id": "2540b5414f2d422291cea3162eb8e1e0"
        },
        "file_id": "2540b5414f2d422291cea3162eb8e1e0",
        "file_version": 0,
        "index": 0,
        "updated_at": "2026-02-27T07:42:00.167502Z",
        "status": "succeeded",
        "tenant_id": "__default_tenant_id__",
        "id": "e2b0d936158f4656a6cacb5ab639de6d",
        "file_part": 0,
        "kb_id": "a4815ee728a64e9c83a3d891dbc1c956",
        "created_at": "2026-02-27T07:42:00.167488Z"
    }
}

Kecualikan chunk

Gunakan operasi pembaruan untuk mengatur field active menjadi false.

Manajemen metadata

Metadata menambahkan informasi terstruktur ke dokumen Anda, memungkinkan penyaringan yang lebih tepat selama pengambilan. Misalnya, Anda dapat mengambil hanya dokumen yang diterbitkan oleh departemen IT setelah tahun 2024.

Definisikan field metadata

Menentukan skema untuk field metadata dalam basis pengetahuan, termasuk nama, tipe nilai, dan deskripsinya.

POST $EAS_SERVICE_URL/v1/config/knowledgebases/{kb_id}/metadata

Request

curl -X POST "$EAS_SERVICE_URL/v1/config/knowledgebases/{kb_id}/metadata" \
--header "Authorization: Bearer $EAS_TOKEN" \
--header "Content-Type: application/json" \
--data '{
    "kb_id": "kb9594e2d2d2744bf1acd4227a9202b90b",
    "name": "expire_period",
    "value_type": "datetime",
    "description": "Product expiration date"
}'
Headers

Authorization string (Required)

Token autentikasi untuk permintaan.

Content-Type string (Required)

application/json

Path parameters

kb_id string (Required)

ID basis pengetahuan.

Request body

kb_id string (Required)

ID basis pengetahuan.

name string (Required)

Nama tampilan field metadata. Harus terdiri dari 3 hingga 50 karakter.

value_type string (Required)

Tipe nilai field. Harus berupa string, number, atau datetime.

description string (Optional)

Deskripsi field metadata.

Contoh respons

{
    "code": 200,
    "message": "Metadata created successfully.",
    "data": {
        "value_type": "datetime",
        "kb_id": "a4815ee728a64e9c83a3d891dbc1c956",
        "created_at": "2026-02-27T07:49:19.964621Z",
        "name": "expire_period",
        "id": "d2b5ef3cf07d459da7b91b83dbb0a533",
        "tenant_id": "__default_tenant_id__",
        "description": "Product expiration date",
        "updated_at": "2026-02-27T07:49:19.964632Z"
    }
}

Daftar metadata

Menampilkan semua field metadata yang telah ditentukan untuk basis pengetahuan tertentu.

GET $EAS_SERVICE_URL/v1/config/knowledgebases/{kb_id}/metadata

Request

curl -X GET "$EAS_SERVICE_URL/v1/config/knowledgebases/{kb_id}/metadata" \
--header "Authorization: Bearer $EAS_TOKEN"
Headers

Authorization string (Required)

Token autentikasi untuk permintaan.

Path parameters

kb_id string (Required)

ID basis pengetahuan.

Contoh respons

{
    "code": 200,
    "message": "Metadata listed successfully.",
    "data": {
        "items": [
            {
                "value_type": "datetime",
                "kb_id": "a4815ee728a64e9c83a3d891dbc1c956",
                "created_at": "2026-02-27T07:49:19.964621Z",
                "name": "expire_period",
                "id": "d2b5ef3cf07d459da7b91b83dbb0a533",
                "tenant_id": "__default_tenant_id__",
                "description": "Product expiration date",
                "updated_at": "2026-02-27T07:49:19.964632Z",
                "count": 0
            }
        ],
        "total": 1,
        "pages": 1,
        "page": 1,
        "size": 20
    }
}

Hapus metadata

Menghapus field metadata tertentu dari basis pengetahuan.

DELETE $EAS_SERVICE_URL/v1/config/knowledgebases/{kb_id}/metadata/{metadata_id}

Request

curl -X DELETE "$EAS_SERVICE_URL/v1/config/knowledgebases/{kb_id}/metadata/{metadata_id}" \
--header "Authorization: Bearer $EAS_TOKEN"
Headers

Authorization string (Required)

Token autentikasi untuk permintaan.

Path parameters

kb_id string (Required)

ID basis pengetahuan.

metadata_id string (Required)

ID field metadata yang akan dihapus.

Contoh respons

{
    "code": 200,
    "message": "Metadata deleted successfully.",
    "data": null
}

Tetapkan metadata file

Menetapkan metadata untuk file tertentu. Penting: Operasi ini menggantikan semua metadata yang ada untuk file tersebut. Untuk memperbarui metadata tanpa kehilangan data, pertama-tama ambil nilai saat ini dengan permintaan GET, modifikasi nilainya, lalu kirimkan kembali set lengkap nilai tersebut dengan permintaan ini.

POST $EAS_SERVICE_URL/v1/config/knowledgebases/{kb_id}/files/{file_id}/metadata

Request

curl -X POST "$EAS_SERVICE_URL/v1/config/knowledgebases/{kb_id}/files/{file_id}/metadata" \
--header "Authorization: Bearer $EAS_TOKEN" \
--header "Content-Type: application/json" \
--data '{
    "entries": [
        {"name": "expire_period", "value": 1764574102000},
        {"name": "category", "value": "food"},
        {"name": "price", "value": 12}
    ]
}'
Headers

Authorization string (Required)

Token autentikasi untuk permintaan.

Content-Type string (Required)

application/json

Path parameters

kb_id string (Required)

ID basis pengetahuan.

file_id string (Required)

ID file.

Request body

entries array (Required)

Array entri metadata yang akan ditetapkan pada file.

Properties

name string (Required)

Nama field metadata yang telah ditentukan untuk basis pengetahuan.

value string/number (Required)

Nilai yang akan ditetapkan ke field metadata. Tipe nilai ini harus sesuai dengan value_type yang ditentukan untuk field tersebut.

Contoh respons

{
    "code": 200,
    "message": "File metadata set successfully.",
    "data": {
        "file_content_length": 0,
        "status": "succeeded",
        "file_source": null,
        "failed_reason": null,
        "file_name": "EAS_model_service_overview.pdf",
        "active": true,
        "tenant_id": "__default_tenant_id__",
        "file_path": "a4815ee728a64e9c83a3d891dbc1c956/docs/EAS_model_service_overview.pdf",
        "created_at": "2026-02-27T07:30:10.875488Z",
        "id": "2540b5414f2d422291cea3162eb8e1e0",
        "file_extension": ".pdf",
        "updated_at": "2026-02-27T07:41:59.360291Z",
        "kb_id": "a4815ee728a64e9c83a3d891dbc1c956",
        "file_size": 889027,
        "file_metadata": {
            "file_path": "a4815ee728a64e9c83a3d891dbc1c956/docs/EAS_model_service_overview.pdf",
            "file_name": "EAS_model_service_overview.pdf",
            "file_size": 889027,
            "file_extension": ".pdf",
            "expire_period": 1764574102000,
            "category": "food"
        },
        "message_id": "tmp-1772177410",
        "file_md5": "f4b60d2b9fd9edec06649ce7b5d65cb0",
        "chunk_config": null,
        "file_content": "",
        "file_version": 1772178119
    }
}

Retrieval API

Pengambilan hibrida (teks + vektor + penyaringan metadata)

Menjalankan pengambilan hibrida pada basis pengetahuan tertentu dengan menggabungkan teks, vektor, dan penyaringan metadata.

POST $EAS_SERVICE_URL/v1/retrieval

Request

curl -X POST "$EAS_SERVICE_URL/v1/retrieval" \
--header "Authorization: Bearer $EAS_TOKEN" \
--header "Content-Type: application/json" \
--data '{
    "query": "recommendation system",
    "knowledge_id": "kbdeec6a87e7b342b6a0da7e67a171fbb4",
    "metadata_condition": {
        "conditions": [
            {"name": "department", "value": "i", "comparison_operator": "start with"},
            {"name": "age", "value": "23", "comparison_operator": "<"}
        ],
        "logical_operator": "and"
    },
    "retrieval_setting": {
        "top_k": 2,
        "score_threshold": 0.4
    }
}'
Headers

Authorization string (required)

Token autentikasi untuk permintaan. Gunakan EAS_TOKEN.

Content-Type string (required)

application/json

Request body

query string (required)

Teks kueri.

knowledge_id string (required)

ID basis pengetahuan.

user_id string (optional)

Identifier unik untuk pengguna, digunakan untuk personalisasi atau pencatatan log.

metadata_condition object (optional)

Menentukan kondisi untuk penyaringan metadata, termasuk logical_operator dan array conditions.

Properties

logical_operator string (optional)

Operator logika untuk kondisi. Nilai default-nya adalah and. Nilai valid adalah and dan or.

conditions array (optional)

Array objek kondisi.

Properties

name string (required)

ID field metadata.

value string/number (required)

Nilai perbandingan.

comparison_operator string (required)

Operator perbandingan.

Nilai valid

  • empty: Memeriksa apakah field bernilai null atau string kosong.

  • not empty: Memeriksa apakah field memiliki nilai yang tidak kosong.

  • contains: Memeriksa apakah parameter nilai merupakan substring dari nilai string field.

  • not contains: Memeriksa apakah parameter nilai bukan substring dari nilai string field.

  • start with: Memeriksa apakah nilai string field diawali dengan parameter nilai.

  • end with: Memeriksa apakah nilai string field diakhiri dengan parameter nilai.

  • =: Sama dengan. Berlaku untuk tipe number dan datetime.

  • : Tidak sama dengan. Berlaku untuk tipe number dan datetime.

  • : Lebih besar dari atau sama dengan. Berlaku untuk tipe number dan datetime.

  • : Kurang dari atau sama dengan. Berlaku untuk tipe number dan datetime.

  • >: Lebih besar dari. Berlaku untuk tipe number dan datetime.

  • <: Kurang dari. Berlaku untuk tipe number dan datetime.

retrieval_setting object (optional)

Pengaturan per-permintaan yang menggantikan konfigurasi default basis pengetahuan.

Properties

top_k int (optional)

Jumlah chunk data paling relevan yang dikembalikan.

score_threshold float (optional)

Ambang batas skor kemiripan. Hanya chunk data dengan skor pada atau di atas ambang batas ini yang dikembalikan.

Contoh respons

{
    "records": [
        {
            "content": "EasyRec is an easy-to-use recommendation framework...",
            "score": 0.5892808330916407,
            "title": "EasyRec.txt",
            "metadata": {
                "file_name": "EasyRec.txt",
                "department": "it"
            }
        }
    ]
}

Konfigurasi sandbox kode

Buat atau perbarui sandbox

Request

curl -X POST "$EAS_SERVICE_URL/api/config/code_sandbox" \
  -H "Authorization: Bearer $EAS_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "type": "aliyun-fc",
    "aliyun_id": "your-aliyun-id",
    "interpreter_id": "your-interpreter-id",
    "enabled": true
  }'
Request headers

Content-Type string(Required)

Tipe konten permintaan. Parameter ini harus diatur ke application/json.

Authorization string(Required)

Token autentikasi untuk permintaan. Gunakan EAS_TOKEN Anda.

Request body

type string(Required)

Jenis sandbox. Atur ke aliyun-fc, karena hanya sandbox Alibaba Cloud Function Compute (FC) yang didukung saat ini.

aliyun_id string(Required)

ID akun Alibaba Cloud Anda.

interpreter_id string(Required)

ID interpreter kode.

enabled bool(Required)

Atur ke true untuk mengaktifkan sandbox, atau false untuk menonaktifkannya.

Ambil konfigurasi sandbox

curl -X GET "$EAS_SERVICE_URL/api/config/code_sandbox"

Konfigurasi FAQ

Base paths: /v1/config/apps (konfigurasi aplikasi), /v1/faq-retrieval (pengambilan FAQ)

Semua permintaan memerlukan otorisasi (misalnya, Authorization: Bearer YOUR_BEARER_TOKEN). Ganti {EAS_SERVICE_URL} dengan URL layanan aktual.

Aktifkan dan konfigurasi FAQ

Gunakan API Update application untuk mengaktifkan FAQ dan menerapkan konfigurasinya.

PUT {EAS_SERVICE_URL}/v1/config/apps/{id}

Request

curl -X PUT "$EAS_SERVICE_URL/v1/config/apps/{id}" \
  -H "Authorization: Bearer $EAS_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "app_id": "your_app_id",
    "description": "Application description",
    "model_id": "your_model_id",
    "kb_ids": [],
    "enable_faq": true,
    "faq_config": {
      "active": true,
      "similarity_threshold": 0.8,
      "embedding_model": "BAAI/bge-m3",
      "enable_question_in_retrieval": true,
      "enable_question_in_response": true,
      "enable_answer_in_retrieval": false,
      "enable_answer_in_response": true,
      "return_direct": false
    }
  }'
Headers

Content-Type string (Required)

Tipe konten permintaan. Parameter ini harus diatur ke application/json.

Authorization string (Required)

Token otorisasi untuk permintaan. Gunakan EAS_TOKEN Anda.

Path parameters

id string (Required)

ID unik aplikasi. Dapatkan ID ini menggunakan API Query application.

Request body

app_id string (Required)

ID aplikasi.

description string (Optional)

Deskripsi aplikasi.

model_id string (Required)

ID model dasar.

kb_ids array (Optional)

Array ID basis pengetahuan yang terkait dengan aplikasi.

enable_faq bool (Optional)

Mengaktifkan atau menonaktifkan fitur FAQ.

faq_config object (Optional)

Konfigurasi FAQ.

Properties

active bool (Optional)

Mengaktifkan atau menonaktifkan konfigurasi FAQ ini.

similarity_threshold float (Optional)

Ambang batas kemiripan. Nilai antara 0,8 hingga 1,0 direkomendasikan.

embedding_model string (Optional)

ID model penyematan.

enable_question_in_retrieval bool (Optional)

Apakah pertanyaan dimasukkan dalam proses pengambilan.

enable_question_in_response bool (Optional)

Apakah pertanyaan dimasukkan dalam respons.

enable_answer_in_retrieval bool (Optional)

Apakah jawaban dimasukkan dalam proses pengambilan.

enable_answer_in_response bool (Optional)

Apakah jawaban dimasukkan dalam respons.

return_direct bool (Optional)

Apakah output alat dikembalikan langsung, tanpa pemrosesan LLM.

Query aplikasi

curl -X GET "$EAS_SERVICE_URL/v1/config/apps?app_id=your_app_id" \
  -H "Authorization: Bearer $EAS_TOKEN"

app_id diperoleh sebagai berikut. Pada halaman konfigurasi aplikasi di konsol, pilih tab Chat Application, temukan nilai ID aplikasi (misalnya chatbot) pada field App ID yang diperlukan, lalu gunakan sebagai nilai parameter app_id dalam permintaan.

Buat FAQ

curl -X POST "$EAS_SERVICE_URL/v1/config/apps/{app_id}/faqs" \
  -H "Authorization: Bearer $EAS_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "question": "How do I reset my password?",
    "answer": "On the sign-in page, click '\''Forgot Password'\'' and follow the prompts.",
    "active": true
  }'

Daftar FAQ

curl -X GET "$EAS_SERVICE_URL/v1/config/apps/{app_id}/faqs?page=1&size=100" \
  -H "Authorization: Bearer $EAS_TOKEN"

Perbarui FAQ

curl -X PUT "$EAS_SERVICE_URL/v1/config/apps/{app_id}/faqs/{faq_item_id}" \
  -H "Authorization: Bearer $EAS_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "question": "How do I change my password?",
    "answer": "After signing in, go to Account Settings > Security to change your password.",
    "active": true
  }'

Hapus FAQ

curl -X DELETE "$EAS_SERVICE_URL/v1/config/apps/{app_id}/faqs/{faq_item_id}" \
  -H "Authorization: Bearer $EAS_TOKEN"

Unggah file FAQ secara massal

Permintaan ini menggunakan multipart/form-data. Unggah satu atau beberapa file menggunakan field files. Anda dapat secara opsional memberikan string JSON table_config untuk memetakan header dan indeks kolom. Jenis file yang didukung adalah .xlsx dan .xls.

curl -X POST "$EAS_SERVICE_URL/v1/config/apps/{app_id}/faq-files" \
  -H "Authorization: Bearer $EAS_TOKEN" \
  -F 'files=@/path/to/faq.xlsx' \
  -F 'table_config={"header_index_max":0,"question_column_index":0,"answer_column_index":1}'

Parameter table_config:

  • header_index_max: Indeks berbasis nol dari baris header terakhir. Untuk satu baris header, atur ke 0.

  • question_column_index: Indeks berbasis nol dari kolom pertanyaan.

  • answer_column_index: Indeks berbasis nol dari kolom jawaban.

Pengambilan FAQ (mandiri)

Mengambil hasil FAQ untuk kueri secara langsung tanpa memulai percakapan.

curl -X POST "$EAS_SERVICE_URL/v1/faq-retrieval" \
  -H "Authorization: Bearer $EAS_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "chatapp_id": "your_app_id",
    "query": "User'\''s input query"
  }'

Field permintaan opsional: user_id dan retrieval_setting (misalnya, top_k, similarity_threshold). Jika retrieval_setting dihilangkan, konfigurasi FAQ default aplikasi akan digunakan.