全部产品
Search
文档中心

Platform For AI:Berlaku untuk versi gambar v0.3.0 hingga v0.3.4

更新时间:Oct 01, 2025

PAI-RAG menyediakan serangkaian Operasi API yang komprehensif untuk fitur-fitur seperti manajemen layanan, Manajemen basis pengetahuan, dan chat. Topik ini menjelaskan Operasi API serta metode pemanggilan untuk layanan RAG yang diterapkan menggunakan versi gambar v0.3.0 hingga v0.3.4.

Batasan

Topik ini hanya berlaku untuk layanan RAG yang diterapkan dengan versi gambar v0.3.0 hingga v0.3.4.

Kunjungi halaman Elastic Algorithm Service (EAS), klik nama layanan RAG, lalu lihat versi gambar di bagian Environment Information pada tab Overview.image

Dapatkan titik akhir layanan dan token

Sebelum memanggil layanan RAG menggunakan Operasi API, Anda harus mendapatkan titik akhir layanan dan token:

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

  2. Klik nama layanan tujuan. Di bagian Basic Information, klik View Invocation Information.

  3. Di halaman Invocation Information, dapatkan titik akhir (EAS_SERVICE_URL) dan token (EAS_Token).

    Penting
    • Hapus garis miring (/) dari akhir EAS_SERVICE_URL.

    • Panggil layanan menggunakan titik akhir publik: Klien harus memiliki akses internet.

    • Panggil layanan menggunakan titik akhir VPC: Klien harus berada di dalam virtual private cloud (VPC) yang sama dengan layanan RAG.

    image

API Obrolan

Anda dapat memanggil layanan menggunakan operasi API yang kompatibel dengan OpenAI. Sebelum memanggil layanan, konfigurasikan fitur yang diperlukan di WebUI layanan RAG.

Fitur yang Didukung

  • pencarian web: Mencari di web. Konfigurasikan parameter pencarian web di WebUI layanan RAG terlebih dahulu.

  • pengetahuan obrolan: Meminta basis pengetahuan. Unggah file basis pengetahuan terlebih dahulu.

  • obrolan llm: Menggunakan model bahasa besar (LLM) untuk memberikan jawaban. Konfigurasikan layanan LLM terlebih dahulu.

  • agen obrolan: Memanggil alat menggunakan agen. Konfigurasikan kode terkait agen di WebUI layanan RAG terlebih dahulu.

  • db obrolan: Meminta database atau tabel. Konfigurasikan pengaturan analitik data di WebUI layanan RAG terlebih dahulu.

Metode pemanggilan

URL

{EAS_SERVICE_URL}/v1/chat/completions

Metode permintaan

POST

Header permintaan

Authorization: EAS_TOKEN (Token untuk pemanggilan EAS)

Tubuh HTTP

{
    "model": "default",  # Nama model. Atur ini ke default atau nama model yang dikonfigurasi di WebUI.
    "messages": [
        {"role": "user", "content": "Halo"},
        {"role": "assistant", "content": "Halo, bagaimana saya bisa membantu Anda?"},
        {"role": "user", "content": "Apa ibu kota Zhejiang?"},
        {"role": "assistant", "content": "Hangzhou adalah ibu kota Zhejiang."},
        {"role": "user", "content": "Apa saja tempat menyenangkan untuk dikunjungi?"},
    ],
    "stream": true,  # Menentukan apakah akan mengaktifkan keluaran streaming.
    "chat_knowledgebase": true,  # Menentukan apakah akan meminta basis pengetahuan lokal.
    "search_web": false,  # Menentukan apakah akan menggunakan pencarian web.
    "chat_llm": false,  # Menentukan apakah hanya menggunakan LLM untuk obrolan.
    "chat_agent": false,  # Menentukan apakah akan menggunakan agen.
    "chat_db": false,  # Menentukan apakah akan meminta database.
    "index_name": "default",  # Nama indeks untuk skenario RAG. Anda hanya dapat menentukan satu nama indeks. Jika Anda tidak menentukan nama indeks, sistem menggunakan indeks default.
    "max_tokens": 1024,  # Panjang keluaran maksimum, seperti 1024.
    "temperature": 0.1,  # Mengontrol keacakan konten yang dihasilkan. Nilai harus dalam rentang [0, 1]. Nilai lebih kecil menunjukkan konten lebih deterministik. Nilai lebih besar menunjukkan konten lebih beragam.
}
Penting
  • Jika Anda mengaktifkan beberapa fitur secara bersamaan, sistem memanggilnya berdasarkan prioritas berikut, dari tertinggi ke terendah: search_web, chat_knowledgebase, chat_agent, chat_db, dan chat_llm. Untuk setiap fitur, sistem melakukan pengenalan maksud untuk menentukan apakah akan memanggil fitur tersebut atau langsung menggunakan LLM untuk menghasilkan respons.

  • Jika semua flag fitur disetel ke false atau tidak dilewatkan, layanan secara default meminta basis pengetahuan lokal (yaitu, "chat_knowledgebase": true).

Contoh Permintaan (klik untuk melihat detail)

Pencarian web

from openai import OpenAI

##### Konfigurasi API #####

# Ganti <EAS_TOKEN> dan <EAS_SERVICE_URL> dengan token layanan dan titik akhir, masing-masing.
openai_api_key = "<EAS_TOKEN>"
openai_api_base = "<EAS_SERVICE_URL>/v1"
client = OpenAI(
    api_key=openai_api_key,
    base_url=openai_api_base,
)


#### Obrolan ######
def chat():
    stream = True
    chat_completion = client.chat.completions.create(
        model="default",
        stream=stream,
        messages=[
            {"role": "user", "content": "Halo"},
            {"role": "assistant", "content": "Halo, bagaimana saya bisa membantu Anda?"},
            {"role": "user", "content": "Apa ibu kota Zhejiang?"},
            {"role": "assistant", "content": "Hangzhou adalah ibu kota Zhejiang."},
            {"role": "user", "content": "Apa saja tempat menyenangkan untuk dikunjungi?"},
        ],
        extra_body={
            "search_web": True,
        },
    )

    if stream:
        for chunk in chat_completion:
            print(chunk.choices[0].delta.content, end="")
    else:
        result = chat_completion.choices[0].message.content
        print(result)


chat()

Meminta database

from openai import OpenAI

##### Konfigurasi API #####
# Ganti <EAS_TOKEN> dan <EAS_SERVICE_URL> dengan token layanan dan titik akhir, masing-masing.

openai_api_key = "<EAS_TOKEN>"
openai_api_base = "<EAS_SERVICE_URL>/v1"
client = OpenAI(
    api_key=openai_api_key,
    base_url=openai_api_base,
)


#### Obrolan ####
def chat():
    stream = True
    chat_completion = client.chat.completions.create(
        model="default",
        stream=stream,
        messages=[
            {"role": "user", "content": "Berapa banyak kucing yang ada?"},
            {"role": "assistant", "content": "Ada 2 kucing."},
            {"role": "user", "content": "Dan anjing?"},
        ],
        extra_body={
            "chat_db": True,
        },
    )

    if stream:
        for chunk in chat_completion:
            print(chunk.choices[0].delta.content, end="")
    else:
        result = chat_completion.choices[0].message.content
        print(result)


chat()

API Basis Pengetahuan

Tambahkan basis pengetahuan

Metode pemanggilan

URL

{EAS_SERVICE_URL}/api/v1/knowledgebases/{name}

Metode permintaan

POST

Header permintaan

  • Authorization: EAS_TOKEN

  • Content-Type: application/json

Parameter permintaan

Contoh Permintaan cURL (klik untuk melihat detail)

# Ganti <EAS_TOKEN> dan <EAS_SERVICE_URL> dengan token layanan dan titik akhir, masing-masing.
# Ganti <name> dengan nama basis pengetahuan Anda. Perbarui vector_store_config ke konfigurasi database vektor Anda. 

curl -X 'POST' <EAS_SERVICE_URL>/api/v1/knowledgebases/<name> \
-H 'Authorization: <EAS_TOKEN>' \
-H 'Content-Type: application/json' \
-d '{
      "name":"<name>",
      "vector_store_config":
      {
          "persist_path":"./localdata/knowledgebase/default/.index/.faiss",
          "type":"milvus",
          "is_image_store":false,
          "host":"c-exxx11f4c.milvus.aliyuncs.com",
          "port":19530,
          "user":"root",
          "password":"xxx",
          "database":"default",
          "collection_name":"test",
          "reranker_weights":[0.5,0.5]
      },
      "embedding_config":
      {
          "source":"huggingface",
          "model":"bge-m3",
          "embed_batch_size":10,
          "enable_sparse":false
      }
  }'

Kode di atas menunjukkan contoh penggunaan Milvus untuk parameter vector_store_config. Bagian berikutnya menjelaskan konfigurasi vector_store_config untuk database vektor lainnya.

faiss

"vector_store_config":
      {
          "persist_path":"./localdata/knowledgebase/default/.index/.faiss",
          "type":"faiss",
          "is_image_store":false
      }

hologres

"vector_store_config":
      {
          "persist_path":"./localdata/knowledgebase/default/.index/.faiss",
          "type":"hologres",
          "is_image_store":false,
          "host":"xxx",
          "port":xxx,
          "user":"xxx",
          "password":"xxx",
          "database":"default",
          "table_name":"test",
          "pre_delete_table":"false"
      }

elasticsearch

"vector_store_config":
      {
          "persist_path":"./localdata/knowledgebase/default/.index/.faiss",
          "type":"elasticsearch",
          "is_image_store":false,
          "es_url":"xxx",
          "es_user":"xxx",
          "es_password":"xxx",
          "es_index":"xxx"
      }

opensearch

"vector_store_config":
      {
          "persist_path":"./localdata/knowledgebase/default/.index/.faiss",
          "type":"opensearch",
          "is_image_store":false,
          "endpoint":"xxx",
          "instance_id":"xxx",
          "username":"xxx",
          "password":"xxx",
          "table_name":"xxx"
      }

analyticdb

"vector_store_config":
      {
          "persist_path":"./localdata/knowledgebase/default/.index/.faiss",
          "type":"analyticdb",
          "is_image_store":false,
          "ak":"xxx",
          "sk":"xxx",
          "region_id":"xxx",
          "instance_id":"xxx",
          "account":"xxx",
          "account_password":"xxx",
          "namespace":"xxx",
          "collection":"xxx"
      }

tablestore

"vector_store_config":
      {
          "persist_path":"./localdata/knowledgebase/default/.index/.faiss",
          "type":"tablestore",
          "is_image_store":false,
          "endpoint":"xxx",
          "instance_name":"xxx",
          "access_key_id":"xxx",
          "access_key_secret":"xxx",
          "table_name":"xxx"
      }

dashvector

"vector_store_config":
      {
          "persist_path":"./localdata/knowledgebase/default/.index/.faiss",
          "type":"dashvector",
          "is_image_store":false,
          "endpoint":"xxx",
          "api_key":"xxx",
          "collection_name":"xxx",
          "partition_name":"xxx"
      }

Contoh Tanggapan (klik untuk melihat detail)

{ "msg": "Tambah basis pengetahuan 'xxx' berhasil." }

Daftar basis pengetahuan

Metode pemanggilan

URL

{EAS_SERVICE_URL}/api/v1/knowledgebases

Metode permintaan

GET

Header permintaan

Authorization: EAS_TOKEN # Token untuk pemanggilan EAS

Contoh Permintaan cURL (klik untuk melihat detail)

# Ganti <EAS_TOKEN> dan <EAS_SERVICE_URL> dengan token layanan dan titik akhir, masing-masing.
curl -X 'GET' <EAS_SERVICE_URL>/api/v1/knowledgebases -H 'Authorization: <EAS_TOKEN>'

Contoh Tanggapan (klik untuk melihat detail)

{
  "knowledgebases": {
    "default": {
      "name": "default",
      "vector_store_config": {
        "persist_path": "./localdata/knowledgebase/default/.index/.faiss",
        "type": "milvus",
        "is_image_store": false,
        "host": "c-exxx1911f4c.milvus.aliyuncs.com",
        "port": 19530,
        "user": "root",
        "password": "xxx",
        "database": "default",
        "collection_name": "test",
        "reranker_weights": [0.5, 0.5]
      },
      "embedding_config": {
        "source": "huggingface",
        "model": "bge-m3",
        "embed_batch_size": 10,
        "enable_sparse": false
      },
      "knowledgebase_paths": {
        "base_path": "localdata/knowledgebase/default",
        "docs_path": "localdata/knowledgebase/default/docs",
        "index_path": "localdata/knowledgebase/default/.index",
        "logs_path": "localdata/knowledgebase/default/.logs",
        "parse_path": "localdata/knowledgebase/default/.index/parse",
        "split_path": "localdata/knowledgebase/default/.index/split",
        "embed_path": "localdata/knowledgebase/default/.index/embed",
        "faiss_index_path": "localdata/knowledgebase/default/.index/.faiss",
        "doc_ids_map_file": "localdata/knowledgebase/default/.index/file_to_docid_map.json"
      }
    },
    "my_milvus": {
      "name": "my_milvus",
      "vector_store_config": {
        "persist_path": "./localdata/knowledgebase/default/.index/.faiss",
        "type": "milvus",
        "is_image_store": false,
        "host": "c-e6xxx11f4c.milvus.aliyuncs.com",
        "port": 19530,
        "user": "root",
        "password": "xxx",
        "database": "default",
        "collection_name": "test",
        "reranker_weights": [0.5, 0.5]
      },
      "embedding_config": {
        "source": "huggingface",
        "model": "bge-m3",
        "embed_batch_size": 10,
        "enable_sparse": false
      },
      "knowledgebase_paths": {
        "base_path": "localdata/knowledgebase/my_milvus",
        "docs_path": "localdata/knowledgebase/my_milvus/docs",
        "index_path": "localdata/knowledgebase/my_milvus/.index",
        "logs_path": "localdata/knowledgebase/my_milvus/.logs",
        "parse_path": "localdata/knowledgebase/my_milvus/.index/parse",
        "split_path": "localdata/knowledgebase/my_milvus/.index/split",
        "embed_path": "localdata/knowledgebase/my_milvus/.index/embed",
        "faiss_index_path": "localdata/knowledgebase/my_milvus/.index/.faiss",
        "doc_ids_map_file": "localdata/knowledgebase/my_milvus/.index/file_to_docid_map.json"
      }
    }
  }
}

Unggah file basis pengetahuan

Metode pemanggilan

URL

{EAS_SERVICE_URL}/api/v1/knowledgebases/{name}/files

Metode permintaan

POST

Header permintaan

  • Authorization: EAS_TOKEN # Token untuk pemanggilan EAS

  • Content-Type: multipart/form-data

Parameter permintaan

  • files: File.

  • name: Nama basis pengetahuan, seperti my_milvus.

Contoh Permintaan cURL (klik untuk melihat detail)

  • Unggah satu file (gunakan -F 'files=@path' untuk mengunggah file)

    # Ganti <EAS_TOKEN> dan <EAS_SERVICE_URL> dengan token layanan dan titik akhir, masing-masing.
    # Ganti <name> dengan nama basis pengetahuan Anda. 
    # Ganti path setelah "-F 'files=@" dengan jalur file basis pengetahuan Anda. 
    curl -X 'POST' <EAS_SERVICE_URL>/api/v1/knowledgebases/<name>/files \
    -H 'Authorization: <EAS_TOKEN>' \
    -H 'Content-Type: multipart/form-data' \
    -F 'files=@example_data/paul_graham/paul_graham_essay.txt'
  • Unggah beberapa file

    Gunakan beberapa parameter -F 'files=@path'. Setiap parameter sesuai dengan satu file yang akan diunggah. Contohnya:

    # Ganti <EAS_TOKEN> dan <EAS_SERVICE_URL> dengan token layanan dan titik akhir, masing-masing.
    # Ganti <name> dengan nama basis pengetahuan Anda. 
    # Ganti path setelah "-F 'files=@" dengan jalur file basis pengetahuan Anda.
    curl -X 'POST' <EAS_SERVICE_URL>/api/v1/knowledgebases/<name>/files \
    -H 'Authorization: <EAS_TOKEN>' \
    -H 'Content-Type: multipart/form-data' \
    -F 'files=@example_data/paul_graham/paul_graham_essay.txt' \
    -F 'files=@example_data/another_file1.md' \
    -F 'files=@example_data/another_file2.pdf' \

Contoh Tanggapan (klik untuk melihat detail)

{ "message": "File telah berhasil diunggah." }

Dapatkan status unggahan

Metode pemanggilan

URL

{EAS_SERVICE_URL}/api/v1//knowledgebases/{name}/files/{file_name}

Metode permintaan

GET

Header permintaan

Authorization: EAS_TOKEN # Token untuk pemanggilan EAS

Parameter permintaan

  • file_name: Nama file.

  • name: Nama basis pengetahuan, seperti my_milvus.

Contoh Permintaan cURL (klik untuk melihat detail)

# Ganti <EAS_TOKEN> dan <EAS_SERVICE_URL> dengan token layanan dan titik akhir, masing-masing.
# Ganti <name> dengan nama basis pengetahuan Anda dan <file_name> dengan nama file Anda. 
curl -X 'GET' <EAS_SERVICE_URL>/api/v1/knowledgebases/<name>/files/<file_name> -H 'Authorization: <EAS_TOKEN>'

Contoh Tanggapan (klik untuk melihat detail)

{
  "task_id": "50fe181921a83edf63b5ecaa487e****",
  "operation": "UPDATE",
  "file_name": "localdata/knowledgebase/my_milvus/docs/paul_graham_essay.txt",
  "status": "done",
  "message": null,
  "last_modified_time": "2025-03-12 11:50:37"
}

Dapatkan riwayat unggahan

Metode pemanggilan

URL

{EAS_SERVICE_URL}/api/v1/knowledgebases/{name}/history

Metode permintaan

GET

Header permintaan

Authorization: EAS_TOKEN # Token untuk pemanggilan EAS

Parameter permintaan

name: Nama basis pengetahuan, seperti my_milvus.

Contoh Permintaan cURL (klik untuk melihat detail)

# Ganti <EAS_TOKEN> dan <EAS_SERVICE_URL> dengan token layanan dan titik akhir, masing-masing.
# Ganti <name> dengan nama basis pengetahuan Anda. 
curl -X 'GET' <EAS_SERVICE_URL>/api/v1/knowledgebases/<name>/history -H 'Authorization: <EAS_TOKEN>'

Contoh Tanggapan (klik untuk melihat detail)

[
  {
    "task_id": "50fe181921a83edf63b5ecaa487e****",
    "operation": "UPDATE",
    "file_name": "localdata/knowledgebase/my_milvus/docs/paul_graham_essay.txt",
    "status": "done",
    "message": null,
    "last_modified_time": "2025-03-12 11:50:37"
  },
  {
    "task_id": "0162e61cbe605ddab865fff5f7d8****",
    "operation": "ADD",
    "file_name": "localdata/knowledgebase/my_milvus/docs/demo.pdf",
    "status": "failed",
    "message": "Error loading file",
    "last_modified_time": "2025-03-12 13:46:11"
  }
]

Daftar file basis pengetahuan

Metode pemanggilan

URL

{EAS_SERVICE_URL}/api/v1/knowledgebases/{name}/files

Metode permintaan

GET

Header permintaan

Authorization: EAS_TOKEN # Token untuk pemanggilan EAS

Parameter permintaan

name: Nama basis pengetahuan, seperti my_milvus.

Contoh Permintaan cURL (klik untuk melihat detail)

# Ganti <EAS_TOKEN> dan <EAS_SERVICE_URL> dengan token layanan dan titik akhir, masing-masing.
# Ganti <name> dengan nama basis pengetahuan Anda. 
curl -X 'GET' <EAS_SERVICE_URL>/api/v1/knowledgebases/<name>/files -H 'Authorization: <EAS_TOKEN>'

Contoh Tanggapan (klik untuk melihat detail)

[
  {
    "file_name": "localdata/knowledgebase/my_milvus/docs/paul_graham_essay.txt",
    "doc_id": "50fe181921a83edf63b5ecaa487e****",
    "last_modified_time": "2025-03-12 14:38:51"
  }
]

Hapus file basis pengetahuan

Metode pemanggilan

URL

{EAS_SERVICE_URL}/api/v1/knowledgebases/{name}/files/{file_name}

Metode permintaan

DELETE

Header permintaan

Authorization: EAS_TOKEN # Token untuk pemanggilan EAS

Parameter permintaan

  • file_name: Nama file.

  • name: Nama basis pengetahuan, seperti my_milvus.

Contoh Permintaan cURL (klik untuk melihat detail)

# Ganti <EAS_TOKEN> dan <EAS_SERVICE_URL> dengan token layanan dan titik akhir, masing-masing.
# Ganti <name> dengan nama basis pengetahuan Anda. Ganti <file_name> dengan nama file yang ingin dihapus. 
curl -X 'DELETE' <EAS_SERVICE_URL>/api/v1/knowledgebases/<name>/files/<file_name> -H 'Authorization: <EAS_TOKEN>'

Contoh Tanggapan (klik untuk melihat detail)

{ "message": "File 'paul_graham_essay.txt' telah berhasil dihapus." }

Dapatkan informasi tentang basis pengetahuan

Metode pemanggilan

URL

{EAS_SERVICE_URL}/api/v1/knowledgebases/{name}

Metode permintaan

GET

Header permintaan

Authorization: EAS_TOKEN # Token untuk pemanggilan EAS

Parameter permintaan

name: Nama basis pengetahuan, seperti my_milvus.

Contoh Permintaan cURL (klik untuk melihat detail)

# Ganti <EAS_TOKEN> dan <EAS_SERVICE_URL> dengan token layanan dan titik akhir, masing-masing.
# Ganti <name> dengan nama basis pengetahuan Anda. 
curl -X 'GET' <EAS_SERVICE_URL>/api/v1/knowledgebases/<name> -H 'Authorization: <EAS_TOKEN>'

Contoh Tanggapan (klik untuk melihat detail)

{
  "name": "my_milvus",
  "vector_store_config": {
    "persist_path": "./localdata/knowledgebase/default/.index/.faiss",
    "type": "milvus",
    "is_image_store": false,
    "host": "c-exxx1****.milvus.aliyuncs.com",
    "port": 19530,
    "user": "root",
    "password": "xxx",
    "database": "default",
    "collection_name": "test",
    "reranker_weights": [0.5, 0.5]
  },
  "embedding_config": {
    "source": "huggingface",
    "model": "bge-m3",
    "embed_batch_size": 10,
    "enable_sparse": false
  },
  "knowledgebase_paths": {
    "base_path": "localdata/knowledgebase/my_milvus",
    "docs_path": "localdata/knowledgebase/my_milvus/docs",
    "index_path": "localdata/knowledgebase/my_milvus/.index",
    "logs_path": "localdata/knowledgebase/my_milvus/.logs",
    "parse_path": "localdata/knowledgebase/my_milvus/.index/parse",
    "split_path": "localdata/knowledgebase/my_milvus/.index/split",
    "embed_path": "localdata/knowledgebase/my_milvus/.index/embed",
    "faiss_index_path": "localdata/knowledgebase/my_milvus/.index/.faiss",
    "doc_ids_map_file": "localdata/knowledgebase/my_milvus/.index/file_to_docid_map.json"
  }
}

Perbarui basis pengetahuan

Metode pemanggilan

URL

{EAS_SERVICE_URL}/api/v1/knowledgebases/{name}

Metode permintaan

PATCH

Header permintaan

  • Authorization: EAS_TOKEN # Token untuk pemanggilan EAS

  • Content-Type: application/json

Parameter permintaan

  • name: Nama basis pengetahuan, seperti new_milvus.

  • vector_store_config: Konfigurasi basis pengetahuan.

Contoh Permintaan cURL (klik untuk melihat detail)

# Ganti <EAS_TOKEN> dan <EAS_SERVICE_URL> dengan token layanan dan titik akhir, masing-masing.
# Ganti <name> dengan nama basis pengetahuan Anda. 
# Atur vector_store_config ke konfigurasi basis pengetahuan yang ingin Anda perbarui. 
curl -X 'PATCH' <EAS_SERVICE_URL>/api/v1/knowledgebases/<name> \
-H 'Authorization: <EAS_TOKEN>' \
-H 'Content-Type: application/json' \
-d '{
      "name":"<name>",
      "vector_store_config":
      {
          "persist_path":"./localdata/knowledgebase/default/.index/.faiss",
          "type":"milvus",
          "is_image_store":true,
          "host":"c-exxx11f4c.milvus.aliyuncs.com",
          "port":19530,
          "user":"root",
          "password":"xxx",
          "database":"default",
          "collection_name":"test",
          "reranker_weights":[0.5,0.5]
      },
      "embedding_config":
      {
          "source":"huggingface",
          "model":"bge-m3",
          "embed_batch_size":10,
          "enable_sparse":false
      }
  }'

Kode di atas menunjukkan contoh penggunaan Milvus untuk parameter vector_store_config. Untuk informasi lebih lanjut tentang konfigurasi vector_store_config untuk database vektor lainnya, lihat Tambahkan Basis Pengetahuan.

Contoh Tanggapan (klik untuk melihat detail)

{ "msg": "Perbarui basis pengetahuan 'new_milvus' berhasil." }

Hapus basis pengetahuan

Metode pemanggilan

URL

{EAS_SERVICE_URL}/api/v1/knowledgebases/{name}

Metode permintaan

DELETE

Header permintaan

Authorization: EAS_TOKEN # Token untuk pemanggilan EAS

Parameter permintaan

name: Nama basis pengetahuan, seperti new_milvus.

Contoh Permintaan cURL (klik untuk melihat detail)

# Ganti <EAS_TOKEN> dan <EAS_SERVICE_URL> dengan token layanan dan titik akhir, masing-masing.
# Ganti <name> dengan nama basis pengetahuan Anda. 
curl -X 'DELETE' <EAS_SERVICE_URL>/api/v1/knowledgebases/<name> -H 'Authorization: <EAS_TOKEN>'

Contoh Tanggapan (klik untuk melihat detail)

{ "msg": "Hapus basis pengetahuan 'new_milvus' berhasil." }

Ambil dari basis pengetahuan

v0.3.0-v0.3.3

Metode pemanggilan

URL

{EAS_SERVICE_URL}/api/v1/query/retrieval

Metode permintaan

POST

Header permintaan

  • Authorization: EAS_TOKEN # Token untuk pemanggilan EAS

  • Content-Type: application/json

Parameter permintaan

  • question: Pertanyaan pengguna.

  • index_name: Nama basis pengetahuan. Nilai default adalah default.

Contoh Permintaan cURL (klik untuk melihat detail)

# Ganti <EAS_TOKEN> dan <EAS_SERVICE_URL> dengan token layanan dan titik akhir, masing-masing.
# Atur question ke pertanyaan pengguna. 
# Atur index_name ke nama basis pengetahuan. 
  curl -X 'POST' '<EAS_SERVICE_URL>/api/v1/query/retrieval' \
  -H 'Authorization: <EAS_TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{
      "question": "Apa yang bisa saya lakukan ketika komponen x13-auto-arima melaporkan kesalahan?",
      "index_name": "default"
  }'

Contoh Tanggapan (klik untuk melihat detail)

{
  "docs": [
    {
      "text": "2.PAl-Studio/Designer FAQ 2.1. FAQ tentang komponen algoritma : \nKarakter yang tidak dapat dikonversi ditampilkan sebagai \"blob.\" Abaikan kesalahan ini, karena node di hilir dapat membaca dan memproses data.\nApa yang bisa saya lakukan ketika komponen x13-auto-arima melaporkan kesalahan?\nPastikan hingga 1.200 sampel data pelatihan diimpor ke dalam komponen x13-auto-arima.\nApa yang bisa saya lakukan ketika komponen Doc2Vec melaporkan kesalahan CallExecutorToParseTaskFail?",
      "score": 0.83608,
      "metadata": {
        "file_path": "localdata/knowledgebase/default/docs/pai_document.md",
        "file_name": "pai_document.md",
        "file_size": 3794,
        "creation_date": "2025-03-20",
        "last_modified_date": "2025-03-20"
      },
      "image_url": null
    },
    {
      "text": "2.PAl-Studio/Designer FAQ 2.1. FAQ tentang komponen algoritma : \nTopik ini menjelaskan FAQ tentang komponen algoritma.\nApa yang bisa saya lakukan ketika komponen konversi format melaporkan kesalahan? · Apa yang bisa saya lakukan ketika \"blob\" ditampilkan pada halaman presentasi data PAl? · apa yang bisa saya lakukan ketika komponen xl3-auto-arima melaporkan kesalahan? · Apa yang bisa saya lakukan ketika komponen Doc2Vec melaporkan kesalahan CallExecutorToParseTaskFail?\nApa yang bisa saya lakukan ketika komponen konversi format melaporkan kesalahan?",
      "score": 0.797132,
      "metadata": {
        "file_path": "localdata/knowledgebase/default/docs/pai_document.md",
        "file_name": "pai_document.md",
        "file_size": 3794,
        "creation_date": "2025-03-20",
        "last_modified_date": "2025-03-20"
      },
      "image_url": null
    },
    {
      "text": "2.PAl-Studio/Designer FAQ 2.1. FAQ tentang komponen algoritma\n2.3. Pratinjau file Oss di Machine Learning Studio : \n2.Di halaman detail bucket Oss, pilih Access Control $>$ Cross-Origin Resource Sharing (CORS). Di bagian Cross-Origin Resource Sharing (CORS), klik Konfigurasi.\n3.Klik Buat Aturan. Di panel Buat Aturan, atur parameter berikut.",
      "score": 0.714184,
      "metadata": {
        "file_path": "localdata/knowledgebase/default/docs/pai_document.md",
        "file_name": "pai_document.md",
        "file_size": 3794,
        "creation_date": "2025-03-20",
        "last_modified_date": "2025-03-20"
      },
      "image_url": null
    }
  ]
}

v0.3.4

Metode pemanggilan

URL

{EAS_SERVICE_URL}/api/v1/retrieval

Metode permintaan

POST

Header permintaan

  • Authorization: EAS_TOKEN # Token untuk pemanggilan EAS

  • Content-Type: application/json

Parameter permintaan

  • query: Kueri pencarian pengguna.

  • knowledgebase_id: Nama basis pengetahuan. Nilai default adalah default.

  • retrieval_settings: Parameter pengambilan. Kami sarankan Anda mengonfigurasi parameter ini di WebUI. Untuk informasi lebih lanjut tentang parameter, lihat WebUI.

Contoh Permintaan cURL (klik untuk melihat detail)

# Ganti <EAS_TOKEN> dan <EAS_SERVICE_URL> dengan token layanan dan titik akhir, masing-masing.
# Atur query ke kueri pencarian pengguna. 
# Atur knowledge_id ke nama basis pengetahuan. 
curl -X 'POST' '<EAS_SERVICE_URL>/api/v1/retrieval' \
  -H 'Authorization: <EAS_TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{
      "query": "Apa yang bisa saya lakukan ketika komponen x13-auto-arima melaporkan kesalahan?",
      "knowledgebase_id": "default",
      "retrieval_settings": {"similarity_top_k": 5}
  }'

Operasi API Lainnya

Dapatkan konfigurasi layanan RAG

Metode pemanggilan

URL

{EAS_SERVICE_URL}/api/v1/config

Metode permintaan

GET

Header permintaan

Authorization: EAS_TOKEN # Token untuk pemanggilan EAS

Contoh Permintaan cURL (klik untuk melihat detail)

 # Ganti <EAS_TOKEN> dan <EAS_SERVICE_URL> dengan token layanan dan titik akhir, masing-masing.
 curl -X 'GET' '<EAS_SERVICE_URL>/api/v1/config' -H 'Authorization: <EAS_TOKEN>'

Contoh Tanggapan (klik untuk melihat detail)

  {
    "system": {
      "default_web_search": false,
      "query_type": "websearch"
    },
    "data_reader": {
      "concat_csv_rows": false,
      "enable_mandatory_ocr": false,
      "format_sheet_data_to_json": false,
      "sheet_column_filters": null,
      "number_workers": 4
    },
    "node_parser": {
      "type": "Sentence",
      "chunk_size": 500,
      "chunk_overlap": 10,
      "enable_multimodal": true,
      "paragraph_separator": "\n\n\n",
      "sentence_window_size": 3,
      "sentence_chunk_overlap": 200,
      "breakpoint_percentile_threshold": 95,
      "buffer_size": 1
    },
    "index": {
      "vector_store": {
        "persist_path": "./localdata/knowledgebase/default/.index/.faiss",
        "type": "faiss",
        "is_image_store": false
      },
      "enable_multimodal": true,
      "persist_path": "localdata/storage"
    },
    "embedding": {
      "source": "huggingface",
      "model": "bge-m3",
      "embed_batch_size": 10,
      "enable_sparse": false
    },
    "multimodal_embedding": {
      "source": "cnclip",
      "model": "ViT-L-14",
      "embed_batch_size": 10,
      "enable_sparse": false
    },
    "llm": {
      "source": "openai_compatible",
      "temperature": 0.1,
      "system_prompt": null,
      "max_tokens": 4000,
      "base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1",
      "api_key": "sk-xxx",
      "model": "qwen-max"
    },
    "multimodal_llm": {
      "source": "openai_compatible",
      "temperature": 0.1,
      "system_prompt": null,
      "max_tokens": 4000,
      "base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1",
      "api_key": "sk-xxx",
      "model": ""
    },
    "functioncalling_llm": null,
    "agent": {
      "system_prompt": "Anda adalah asisten perjalanan, xxx",
      "python_scripts": "xxx",
      "function_definition": "xxx",
      "api_definition": "xxx"
    },
    "chat_store": {
      "type": "local",
      "persist_path": "localdata/storage"
    },
    "data_analysis": {
      "type": "mysql",
      "nl2sql_prompt": "Diberikan pertanyaan masukan, xxx",
      "synthesizer_prompt": "Diberikan pertanyaan masukan, xxx",
      "database": "my_pets",
      "tables": [],
      "descriptions": {},
      "enable_enhanced_description": false,
      "enable_db_history": true,
      "enable_db_embedding": true,
      "max_col_num": 100,
      "max_val_num": 1000,
      "enable_query_preprocessor": true,
      "enable_db_preretriever": true,
      "enable_db_selector": true,
      "user": "root",
      "password": "xxx",
      "host": "127.0.0.1",
      "port": 3306
    },
    "intent": {
      "descriptions": {
        "rag": "\nAlat ini dapat membantu Anda mendapatkan informasi lebih spesifik dari basis pengetahuan.\n",
        "tool": "\nAlat ini dapat membantu Anda mendapatkan informasi perjalanan tentang waktu, cuaca, penerbangan, kereta api, dan hotel.\n"
      }
    },
    "node_enhancement": {
      "tree_depth": 3,
      "max_clusters": 52,
      "proba_threshold": 0.1
    },
    "oss_store": {
      "bucket": "",
      "endpoint": "oss-cn-hangzhou.aliyuncs.com",
      "ak": null,
      "sk": null
    },
    "postprocessor": {
      "reranker_type": "no-reranker",
      "similarity_threshold": 0.5
    },
    "retriever": {
      "vector_store_query_mode": "default",
      "similarity_top_k": 3,
      "image_similarity_top_k": 2,
      "search_image": false,
      "hybrid_fusion_weights": [0.7, 0.3]
    },
    "search": {
      "source": "google",
      "search_count": 10,
      "serpapi_key": "142xxx",
      "search_lang": "zh-CN"
    },
    "synthesizer": {
      "use_multimodal_llm": false,
      "system_role_template": "Anda adalah xxx",
      "custom_prompt_template": "Tujuan Anda adalah memberikan informasi yang akurat, berguna, dan mudah dipahami. xxx"
    },
    "query_rewrite": {
      "enabled": true,
      "rewrite_prompt_template": "# Role\nAnda adalah ahli pengambilan informasi profesional, xxx",
      "llm": {
        "source": "openai_compatible",
        "temperature": 0.1,
        "system_prompt": null,
        "max_tokens": 4000,
        "base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1",
        "api_key": null,
        "model": ""
      }
    },
    "guardrail": {
      "endpoint": null,
      "region": null,
      "access_key_id": null,
      "access_key_secret": null,
      "custom_advice": null
    }
  }

Perbarui konfigurasi layanan RAG

Metode pemanggilan

URL

{EAS_SERVICE_URL}/api/v1/config

Metode permintaan

PATCH

Header permintaan

  • Authorization: EAS_TOKEN # Token untuk pemanggilan EAS

  • Content-Type: application/json

Contoh Permintaan cURL (klik untuk melihat detail)

# Ganti <EAS_TOKEN> dan <EAS_SERVICE_URL> dengan token layanan dan titik akhir, masing-masing.
    curl -X 'PATCH' '<EAS_SERVICE_URL>/api/v1/config' \
    -H 'Authorization: <EAS_TOKEN>' \
    -H 'Content-Type: application/json' \
    -d '{
        "system": {
          "default_web_search": false,
          "query_type": "websearch"
        },
        "data_reader": {
          "concat_csv_rows": false,
          "enable_mandatory_ocr": false,
          "format_sheet_data_to_json": false,
          "sheet_column_filters": null,
          "number_workers": 4
        },
        "node_parser": {
          "type": "Sentence",
          "chunk_size": 500,
          "chunk_overlap": 10,
          "enable_multimodal": true,
          "paragraph_separator": "\n\n\n",
          "sentence_window_size": 3,
          "sentence_chunk_overlap": 200,
          "breakpoint_percentile_threshold": 95,
          "buffer_size": 1
        },
        ...
    }' # (Untuk informasi konfigurasi lebih lanjut, lihat contoh tanggapan untuk mendapatkan konfigurasi layanan RAG.)

Contoh Tanggapan (klik untuk melihat detail)

  { "msg": "Perbarui konfigurasi RAG berhasil." }

Muat informasi CHAT_DB

Unggah file Excel atau CSV untuk kueri konten tabel di Chat_DB

Metode pemanggilan

URL

{EAS_SERVICE_URL}/api/v1/upload_datasheet

Metode permintaan

POST

Header permintaan

  • Authorization: EAS_TOKEN # Token untuk pemanggilan EAS

  • Content-Type: multipart/form-data

Parameter permintaan

file: File Excel atau CSV.

Contoh Permintaan cURL (klik untuk melihat detail)

# Ganti <EAS_TOKEN> dan <EAS_SERVICE_URL> dengan token layanan dan titik akhir, masing-masing.
# Ganti path setelah "-F 'file=@" dengan jalur file. 
  curl -X 'POST' <EAS_SERVICE_URL>/api/v1/upload_datasheet \
  -H 'Authorization: <EAS_TOKEN>' \
  -H 'Content-Type: multipart/form-data' \
  -F 'file=@example_data/titanic_train.csv'

Contoh Tanggapan (klik untuk melihat detail)

  {
    "task_id": "3b12cf5fabee4a99a32895d2f693****",
    "destination_path": "./localdata/data_analysis/titanic_train.csv",
    "data_preview": "xxx"
  }

Unggah file JSON untuk melengkapi informasi database Chat_DB dengan pasangan Q&A

Metode pemanggilan

URL

{EAS_SERVICE_URL}/api/v1/upload_db_history

Metode permintaan

POST

Header permintaan

  • Authorization: EAS_TOKEN # Token untuk pemanggilan EAS

  • Content-Type: multipart/form-data

Parameter permintaan

  • file: File JSON.

  • db_name: Nama database.

Contoh Permintaan cURL (klik untuk melihat detail)

# Ganti <EAS_TOKEN> dan <EAS_SERVICE_URL> dengan token layanan dan titik akhir, masing-masing.
# Ganti path setelah " -F 'file=@" dengan jalur file JSON. Set db_name ke nama database Anda. 
  curl -X 'POST' <EAS_SERVICE_URL>/api/v1/upload_db_history \
  -H 'Authorization: <EAS_TOKEN>' \
  -H 'Content-Type: multipart/form-data' \
  -F 'file=@example_data/db_query_history.json' \
  -F 'db_name=my_pets'

Contoh Tanggapan (klik untuk melihat detail)

  {
    "task_id": "204191f946384a54a48b13ec00fd****",
    "destination_path": "./localdata/data_analysis/text2sql/history/my_pets_db_query_history.json"
  }

Unggah file CSV untuk melengkapi informasi database Chat_DB dengan deskripsi kolom

Metode pemanggilan

URL

{EAS_SERVICE_URL}/api/v1/upload_db_description

Metode permintaan

POST

Header permintaan

  • Authorization: EAS_TOKEN # Token untuk pemanggilan EAS

  • Content-Type: multipart/form-data

Parameter permintaan

  • files: File CSV.

  • db_name: Nama database.

Contoh Permintaan cURL (klik untuk melihat detail)

 # Ganti <EAS_TOKEN> dan <EAS_SERVICE_URL> dengan token layanan dan titik akhir, masing-masing. 
 # Ganti path setelah "-F 'files=@" dengan jalur file CSV Anda. Set db_name ke nama database. 
  curl -X 'POST' <EAS_SERVICE_URL>/api/v1/upload_db_description \
  -H 'Authorization: <EAS_TOKEN>' \
  -H 'Content-Type: multipart/form-data' \
  -F 'files=@example_data/database_description/schools.csv' \
  -F 'db_name=california_schools'

Contoh Tanggapan (klik untuk melihat detail)

  {
    "task_id": "f417e436cf8b4c329f7b48a7f3c4****",
    "destination_path": "./localdata/data_analysis/text2sql/input_description"
  }

Muat informasi database

Metode pemanggilan

URL

{EAS_SERVICE_URL}/api/v1/query/load_db_info

Metode permintaan

POST

Header permintaan

Authorization: EAS_TOKEN # Token untuk pemanggilan EAS

Contoh Permintaan cURL (klik untuk melihat detail)

# Ganti <EAS_TOKEN> dan <EAS_SERVICE_URL> dengan token layanan dan titik akhir, masing-masing.
curl -X 'POST' <EAS_SERVICE_URL>/api/v1/query/load_db_info -H 'Authorization: <EAS_TOKEN>'

Contoh Tanggapan (klik untuk melihat detail)

  { "task_id": "2389f546af2b6c359d7b19c8b5c3****" }