すべてのプロダクト
Search
ドキュメントセンター

:イメージバージョン v0.3.0 から v0.3.4 に適用

最終更新日:Oct 01, 2025

PAI-RAG は、サービス管理、ナレッジベース管理、チャットなどの機能のための包括的な API 操作セットを提供します。このトピックでは、イメージバージョン v0.3.0 から v0.3.4 を使用してデプロイされた RAG サービスの API 操作と呼び出しメソッドについて説明します。

制限

このトピックは、イメージバージョン v0.3.0 から v0.3.4 でデプロイされた RAG サービスにのみ適用されます。

[Elastic Algorithm Service (EAS)] ページに移動し、RAG サービスの名前をクリックしてから、[概要] タブの [環境情報] セクションでイメージバージョンを表示します。image

サービスのエンドポイントとトークンの取得

API 操作を使用して RAG サービスを呼び出す前に、サービスのエンドポイントとトークンを取得する必要があります:

  1. PAI コンソールにログインします。ページの上部でリージョンを選択します。次に、目的のワークスペースを選択し、[Elastic Algorithm Service (EAS)] をクリックします。

  2. 対象のサービスの名前をクリックします。[基本情報] セクションで、[呼び出し情報を表示] をクリックします。

  3. [呼び出し情報] ページで、エンドポイント (EAS_SERVICE_URL)トークン (EAS_Token) を取得します。

    重要
    • EAS_SERVICE_URL の末尾からスラッシュ (/) を削除します。

    • パブリックエンドポイントを使用してサービスを呼び出す: クライアントはインターネットにアクセスできる必要があります。

    • VPC エンドポイントを使用してサービスを呼び出す: クライアントは RAG サービスと同じ Virtual Private Cloud (VPC) 内にある必要があります。

    image

チャット API

OpenAI 互換の API 操作を使用してサービスを呼び出すことができます。サービスを呼び出す前に、RAG サービスの WebUI で必要な機能を設定する必要があります。

サポートされている機能

  • Web 検索: Web を検索します。事前に RAG サービスの WebUI で Web 検索パラメーターを設定する必要があります。

  • ナレッジベースとのチャット: ナレッジベースにクエリを実行します。事前にナレッジベースファイルをアップロードする必要があります。

  • LLM とのチャット: 大規模言語モデル (LLM) を使用して回答を提供します。事前に LLM サービスを設定する必要があります。

  • エージェントとのチャット: エージェントを使用してツールを呼び出します。事前に RAG サービスの WebUI でエージェント関連のコードを設定する必要があります。

  • DB とのチャット: データベースまたはテーブルにクエリを実行します。事前に RAG サービスの WebUI でデータ分析設定を行う必要があります。

呼び出しメソッド

URL

{EAS_SERVICE_URL}/v1/chat/completions

リクエストメソッド

POST

リクエストヘッダー

Authorization: EAS_TOKEN (EAS 呼び出しのトークン)

HTTP 本文

{
    "model": "default",  # モデル名。WebUI で設定した default またはモデル名に設定します。
    "messages": [
        {"role": "user", "content": "Hello"},
        {"role": "assistant", "content": "Hello, how can I help you?"},
        {"role": "user", "content": "What is the capital of Zhejiang?"},
        {"role": "assistant", "content": "Hangzhou is the capital of Zhejiang."},
        {"role": "user", "content": "What are some fun places to visit?"},
    ],
    "stream": true,  # ストリーミング出力を有効にするかどうかを指定します。
    "chat_knowledgebase": true,  # ローカルのナレッジベースにクエリを実行するかどうかを指定します。
    "search_web": false,  # Web 検索を使用するかどうかを指定します。
    "chat_llm": false,  # チャットに LLM のみを使用するかどうかを指定します。
    "chat_agent": false,  # エージェントを使用するかどうかを指定します。
    "chat_db": false,  # データベースにクエリを実行するかどうかを指定します。
    "index_name": "default",  # RAG シナリオのインデックス名。インデックス名は 1 つだけ指定できます。インデックス名を指定しない場合、システムはデフォルトのインデックスを使用します。
    "max_tokens": 1024,  # 最大出力長 (例: 1024)。
    "temperature": 0.1,  # 生成されるコンテンツのランダム性を制御します。値は [0, 1] の範囲内である必要があります。値が小さいほど、より決定論的なコンテンツになります。値が大きいほど、より多様なコンテンツになります。
}
重要
  • 複数の機能を同時に有効にした場合、システムは search_web、chat_knowledgebase、chat_agent、chat_db、chat_llm の優先順位 (高い順) に基づいてそれらを呼び出します。各機能について、システムは意図認識を実行して、その機能を呼び出すか、LLM を直接使用して応答を生成するかを決定します。

  • すべての機能フラグが false に設定されているか、渡されていない場合、サービスはデフォルトでローカルのナレッジベースにクエリを実行します (つまり、"chat_knowledgebase": true)。

リクエスト例 (クリックして詳細を表示)

Web 検索

from openai import OpenAI

##### API 構成 #####

# <EAS_TOKEN> と <EAS_SERVICE_URL> をそれぞれサービス トークンとエンドポイントに置き換えます。
openai_api_key = "<EAS_TOKEN>"
openai_api_base = "<EAS_SERVICE_URL>/v1"
client = OpenAI(
    api_key=openai_api_key,
    base_url=openai_api_base,
)


#### チャット ######
def chat():
    stream = True
    chat_completion = client.chat.completions.create(
        model="default",
        stream=stream,
        messages=[
            {"role": "user", "content": "Hello"},
            {"role": "assistant", "content": "Hello, how can I help you?"},
            {"role": "user", "content": "What is the capital of Zhejiang?"},
            {"role": "assistant", "content": "Hangzhou is the capital of Zhejiang."},
            {"role": "user", "content": "What are some fun places to visit?"},
        ],
        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()

データベースのクエリ

from openai import OpenAI

##### API 構成 #####
# <EAS_TOKEN> と <EAS_SERVICE_URL> をそれぞれサービス トークンとエンドポイントに置き換えます。

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


#### チャット ####
def chat():
    stream = True
    chat_completion = client.chat.completions.create(
        model="default",
        stream=stream,
        messages=[
            {"role": "user", "content": "How many cats are there?"},
            {"role": "assistant", "content": "There are 2 cats."},
            {"role": "user", "content": "And dogs?"},
        ],
        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

ナレッジベースの追加

呼び出しメソッド

URL

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

リクエストメソッド

POST

リクエストヘッダー

  • Authorization: EAS_TOKEN

  • Content-Type: application/json

リクエストパラメーター

cURL リクエスト例 (クリックして詳細を表示)

# <EAS_TOKEN> と <EAS_SERVICE_URL> をそれぞれサービス トークンとエンドポイントに置き換えます。
# <name> をナレッジベースの名前に置き換えます。vector_store_config をベクターデータベースの構成に更新します。
 
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
      }
  }'

上記のコードは、vector_store_config パラメーターに Milvus を使用する例を示しています。以下のセクションでは、他のベクターデータベースの vector_store_config 構成について説明します。

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"
      }

応答例 (クリックして詳細を表示)

{ "msg": "Add knowledgebase 'xxx' successfully." }

ナレッジベースの一覧表示

呼び出しメソッド

URL

{EAS_SERVICE_URL}/api/v1/knowledgebases

リクエストメソッド

GET

リクエストヘッダー

Authorization: EAS_TOKEN # EAS 呼び出しのトークン

cURL リクエスト例 (クリックして詳細を表示)

# <EAS_TOKEN> と <EAS_SERVICE_URL> をそれぞれサービス トークンとエンドポイントに置き換えます。
curl -X 'GET' <EAS_SERVICE_URL>/api/v1/knowledgebases -H 'Authorization: <EAS_TOKEN>'

応答例 (クリックして詳細を表示)

{
  "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"
      }
    }
  }
}

ナレッジベースファイルのアップロード

呼び出しメソッド

URL

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

リクエストメソッド

POST

リクエストヘッダー

  • Authorization: EAS_TOKEN # EAS 呼び出しのトークン

  • Content-Type: multipart/form-data

リクエストパラメーター

  • files: ファイル。

  • name: ナレッジベースの名前 (例: my_milvus)。

cURL リクエスト例 (クリックして詳細を表示)

  • 単一ファイルのアップロード (-F 'files=@path' を使用してファイルをアップロード)

    # <EAS_TOKEN> と <EAS_SERVICE_URL> をそれぞれサービス トークンとエンドポイントに置き換えます。
    # <name> をナレッジベースの名前に置き換えます。
    # "-F 'files=@" の後のパスをナレッジベースファイルのパスに置き換えます。
    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=@path' パラメーターを使用します。各パラメーターはアップロードするファイルに対応します。例:

    # <EAS_TOKEN> と <EAS_SERVICE_URL> をそれぞれサービス トークンとエンドポイントに置き換えます。
    # <name> をナレッジベースの名前に置き換えます。
    # "-F 'files=@" の後のパスをナレッジベースファイルのパスに置き換えます。
    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' \

応答例 (クリックして詳細を表示)

{ "message": "Files have been successfully uploaded." }

アップロードステータスの取得

呼び出しメソッド

URL

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

リクエストメソッド

GET

リクエストヘッダー

Authorization: EAS_TOKEN # EAS 呼び出しのトークン

リクエストパラメーター

  • file_name: ファイルの名前。

  • name: ナレッジベースの名前 (例: my_milvus)。

cURL リクエスト例 (クリックして詳細を表示)

# <EAS_TOKEN> と <EAS_SERVICE_URL> をそれぞれサービス トークンとエンドポイントに置き換えます。
# <name> をナレッジベース名に、<file_name> をファイル名に置き換えます。
curl -X 'GET' <EAS_SERVICE_URL>/api/v1/knowledgebases/<name>/files/<file_name> -H 'Authorization: <EAS_TOKEN>'

応答例 (クリックして詳細を表示)

{
  "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"
}

アップロード履歴の取得

呼び出しメソッド

URL

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

リクエストメソッド

GET

リクエストヘッダー

Authorization: EAS_TOKEN # EAS 呼び出しのトークン

リクエストパラメーター

name: ナレッジベースの名前 (例: my_milvus)。

cURL リクエスト例 (クリックして詳細を表示)

# <EAS_TOKEN> と <EAS_SERVICE_URL> をそれぞれサービス トークンとエンドポイントに置き換えます。
# <name> をナレッジベースの名前に置き換えます。
curl -X 'GET' <EAS_SERVICE_URL>/api/v1/knowledgebases/<name>/history -H 'Authorization: <EAS_TOKEN>'

応答例 (クリックして詳細を表示)

[
  {
    "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"
  }
]

ナレッジベースファイルの一覧表示

呼び出しメソッド

URL

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

リクエストメソッド

GET

リクエストヘッダー

Authorization: EAS_TOKEN # EAS 呼び出しのトークン

リクエストパラメーター

name: ナレッジベースの名前 (例: my_milvus)。

cURL リクエスト例 (クリックして詳細を表示)

# <EAS_TOKEN> と <EAS_SERVICE_URL> をそれぞれサービス トークンとエンドポイントに置き換えます。
# <name> をナレッジベースの名前に置き換えます。
curl -X 'GET' <EAS_SERVICE_URL>/api/v1/knowledgebases/<name>/files -H 'Authorization: <EAS_TOKEN>'

応答例 (クリックして詳細を表示)

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

ナレッジベースファイルの削除

呼び出しメソッド

URL

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

リクエストメソッド

DELETE

リクエストヘッダー

Authorization: EAS_TOKEN # EAS 呼び出しのトークン

リクエストパラメーター

  • file_name: ファイルの名前。

  • name: ナレッジベースの名前 (例: my_milvus)。

cURL リクエスト例 (クリックして詳細を表示)

# <EAS_TOKEN> と <EAS_SERVICE_URL> をそれぞれサービス トークンとエンドポイントに置き換えます。
# <name> をナレッジベース名に置き換えます。<file_name> を削除するファイルの名前に置き換えます。
curl -X 'DELETE' <EAS_SERVICE_URL>/api/v1/knowledgebases/<name>/files/<file_name> -H 'Authorization: <EAS_TOKEN>'

応答例 (クリックして詳細を表示)

{ "message": "File 'paul_graham_essay.txt' have been successfully removed." }

ナレッジベースに関する情報の取得

呼び出しメソッド

URL

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

リクエストメソッド

GET

リクエストヘッダー

Authorization: EAS_TOKEN # EAS 呼び出しのトークン

リクエストパラメーター

name: ナレッジベースの名前 (例: my_milvus)。

cURL リクエスト例 (クリックして詳細を表示)

# <EAS_TOKEN> と <EAS_SERVICE_URL> をそれぞれサービス トークンとエンドポイントに置き換えます。
# <name> をナレッジベースの名前に置き換えます。
curl -X 'GET' <EAS_SERVICE_URL>/api/v1/knowledgebases/<name> -H 'Authorization: <EAS_TOKEN>'

応答例 (クリックして詳細を表示)

{
  "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"
  }
}

ナレッジベースの更新

呼び出しメソッド

URL

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

リクエストメソッド

PATCH

リクエストヘッダー

  • Authorization: EAS_TOKEN # EAS 呼び出しのトークン

  • Content-Type: application/json

リクエストパラメーター

  • name: ナレッジベースの名前 (例: new_milvus)。

  • vector_store_config: ナレッジベースの構成。

cURL リクエスト例 (クリックして詳細を表示)

# <EAS_TOKEN> と <EAS_SERVICE_URL> をそれぞれサービス トークンとエンドポイントに置き換えます。
# <name> をナレッジベースの名前に置き換えます。
# vector_store_config を更新したいナレッジベースの構成に設定します。
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
      }
  }'

上記のコードは、vector_store_config パラメーターに Milvus を使用する例を示しています。他のベクターデータベースの vector_store_config 構成の詳細については、「ナレッジベースの追加」をご参照ください。

応答例 (クリックして詳細を表示)

{ "msg": "Update knowledgebase 'new_milvus' successfully." }

ナレッジベースの削除

呼び出しメソッド

URL

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

リクエストメソッド

DELETE

リクエストヘッダー

Authorization: EAS_TOKEN # EAS 呼び出しのトークン

リクエストパラメーター

name: ナレッジベースの名前 (例: new_milvus)。

cURL リクエスト例 (クリックして詳細を表示)

# <EAS_TOKEN> と <EAS_SERVICE_URL> をそれぞれサービス トークンとエンドポイントに置き換えます。
# <name> をナレッジベースの名前に置き換えます。
curl -X 'DELETE' <EAS_SERVICE_URL>/api/v1/knowledgebases/<name> -H 'Authorization: <EAS_TOKEN>'

応答例 (クリックして詳細を表示)

{ "msg": "Delete knowledgebase 'new_milvus' successfully." }

ナレッジベースからの取得

v0.3.0-v0.3.3

呼び出しメソッド

URL

{EAS_SERVICE_URL}/api/v1/query/retrieval

リクエストメソッド

POST

リクエストヘッダー

  • Authorization: EAS_TOKEN # EAS 呼び出しのトークン

  • Content-Type: application/json

リクエストパラメーター

  • question: ユーザーのクエリ。

  • index_name: ナレッジベースの名前。デフォルト値は default です。

cURL リクエスト例 (クリックして詳細を表示)

# <EAS_TOKEN> と <EAS_SERVICE_URL> をそれぞれサービス トークンとエンドポイントに置き換えます。
# question をユーザーのクエリに設定します。
# index_name をナレッジベースの名前に設定します。
  curl -X 'POST' '<EAS_SERVICE_URL>/api/v1/query/retrieval' \
  -H 'Authorization: <EAS_TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{
      "question": "What can I do when the x13-auto-arima component reports an error?",
      "index_name": "default"
  }'

応答例 (クリックして詳細を表示)

{
  "docs": [
    {
      "text": "2.PAl-Studio/Designer FAQ 2.1. FAQ about algorithm components : \nCharacters that cannot be transcoded are displayed as \"blob.\" Ignore this error, because nodes in the downstream can read and process the data.\nWhat can I do when the x13-auto-arima component reports an error?\nMake sure that up to 1,200 training data samples are imported into the x13-auto-arima component.\nWhat can I do when the Doc2Vec component reports the CallExecutorToParseTaskFail error?",
      "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 about algorithm components : \nThis topic describes the FAQ about algorit hm components.\nWhat can I do when the format conversion component reports an error? · What can I do when \"blob\" is displayed on the data present ation page of the PAl? · what canI do when the xl3-auto-arima component reports an error? · What can Ido when the Doc2Vec component reports the CallExecutorToParseTaskFail error?\nWhat can I do when the format conversion component reports an error?",
      "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 about algorithm components\n2.3. Preview Oss files in Machine Learning Studio : \n2.On the details page of the Oss bucket, choose Access Cont rol $>$ Cross-Origin Resource Sharing (CORS). In the Cross-Origin Resource Sharing (CORS) section, click Conf igure.\n3.Click Create Rule. In the Create Rule panel, set the following parameters.",
      "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

呼び出しメソッド

URL

{EAS_SERVICE_URL}/api/v1/retrieval

リクエストメソッド

POST

リクエストヘッダー

  • Authorization: EAS_TOKEN # EAS 呼び出しのトークン

  • Content-Type: application/json

リクエストパラメーター

  • query: ユーザーの検索クエリ。

  • knowledgebase_id: ナレッジベースの名前。デフォルト値は default です。

  • retrieval_settings: 取得パラメーター。これらのパラメーターは WebUI で設定することをお勧めします。パラメーターの詳細については、WebUI をご参照ください。

cURL リクエスト例 (クリックして詳細を表示)

# <EAS_TOKEN> と <EAS_SERVICE_URL> をそれぞれサービス トークンとエンドポイントに置き換えます。
# query をユーザーの検索クエリに設定します。
# knowledge_id をナレッジベースの名前に設定します。
curl -X 'POST' '<EAS_SERVICE_URL>/api/v1/retrieval' \
  -H 'Authorization: <EAS_TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{
      "query": "What can I do when the x13-auto-arima component reports an error?",
      "knowledgebase_id": "default",
      "retrieval_settings": {"similarity_top_k": 5}
  }'

その他の API 操作

RAG サービス構成の取得

呼び出しメソッド

URL

{EAS_SERVICE_URL}/api/v1/config

リクエストメソッド

GET

リクエストヘッダー

Authorization: EAS_TOKEN # EAS 呼び出しのトークン

cURL リクエスト例 (クリックして詳細を表示)

 # <EAS_TOKEN> と <EAS_SERVICE_URL> をそれぞれサービス トークンとエンドポイントに置き換えます。
 curl -X 'GET' '<EAS_SERVICE_URL>/api/v1/config' -H 'Authorization: <EAS_TOKEN>'

応答例 (クリックして詳細を表示)

  {
    "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": "You are a travel assistant, xxx",
      "python_scripts": "xxx",
      "function_definition": "xxx",
      "api_definition": "xxx"
    },
    "chat_store": {
      "type": "local",
      "persist_path": "localdata/storage"
    },
    "data_analysis": {
      "type": "mysql",
      "nl2sql_prompt": "Given an input question, xxx",
      "synthesizer_prompt": "Given an input question, 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": "\nThis tool can help you get more specific information from the knowledge base.\n",
        "tool": "\nThis tool can help you get travel information about time, weather, flights, train and hotels.\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": "You are xxx",
      "custom_prompt_template": "Your goal is to provide accurate, useful, and easy-to-understand information. xxx"
    },
    "query_rewrite": {
      "enabled": true,
      "rewrite_prompt_template": "# Role\nYou are a professional information retrieval expert, 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
    }
  }

RAG サービス構成の更新

呼び出しメソッド

URL

{EAS_SERVICE_URL}/api/v1/config

リクエストメソッド

PATCH

リクエストヘッダー

  • Authorization: EAS_TOKEN # EAS 呼び出しのトークン

  • Content-Type: application/json

cURL リクエスト例 (クリックして詳細を表示)

# <EAS_TOKEN> と <EAS_SERVICE_URL> をそれぞれサービス トークンとエンドポイントに置き換えます。
    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
        },
        ...
    }' # (詳細な構成情報については、RAG サービス構成を取得するための応答例をご参照ください。)

応答例 (クリックして詳細を表示)

  { "msg": "Update RAG configuration successfully." }

CHAT_DB 情報の読み込み

Chat_DB でのテーブルコンテンツクエリ用の Excel または CSV ファイルのアップロード

呼び出しメソッド

URL

{EAS_SERVICE_URL}/api/v1/upload_datasheet

リクエストメソッド

POST

リクエストヘッダー

  • Authorization: EAS_TOKEN # EAS 呼び出しのトークン

  • Content-Type: multipart/form-data

リクエストパラメーター

file: Excel または CSV ファイル。

cURL リクエスト例 (クリックして詳細を表示)

# <EAS_TOKEN> と <EAS_SERVICE_URL> をそれぞれサービス トークンとエンドポイントに置き換えます。
# "-F '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'

応答例 (クリックして詳細を表示)

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

Q&A ペアで Chat_DB データベース情報を補足するための JSON ファイルのアップロード

呼び出しメソッド

URL

{EAS_SERVICE_URL}/api/v1/upload_db_history

リクエストメソッド

POST

リクエストヘッダー

  • Authorization: EAS_TOKEN # EAS 呼び出しのトークン

  • Content-Type: multipart/form-data

リクエストパラメーター

  • file: JSON ファイル。

  • db_name: データベースの名前。

cURL リクエスト例 (クリックして詳細を表示)

# <EAS_TOKEN> と <EAS_SERVICE_URL> をそれぞれサービス トークンとエンドポイントに置き換えます。
# " -F 'file=@" の後のパスを JSON ファイルパスに置き換えます。db_name をデータベース名に設定します。
  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'

応答例 (クリックして詳細を表示)

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

列の説明で Chat_DB データベース情報を補足するための CSV ファイルのアップロード

呼び出しメソッド

URL

{EAS_SERVICE_URL}/api/v1/upload_db_description

リクエストメソッド

POST

リクエストヘッダー

  • Authorization: EAS_TOKEN # EAS 呼び出しのトークン

  • Content-Type: multipart/form-data

リクエストパラメーター

  • files: CSV ファイル。

  • db_name: データベースの名前。

cURL リクエスト例 (クリックして詳細を表示)

 # <EAS_TOKEN> と <EAS_SERVICE_URL> をそれぞれサービス トークンとエンドポイントに置き換えます。
 # "-F 'files=@" の後のパスを CSV ファイルパスに置き換えます。db_name をデータベース名に設定します。
  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'

応答例 (クリックして詳細を表示)

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

データベース情報の読み込み

呼び出しメソッド

URL

{EAS_SERVICE_URL}/api/v1/query/load_db_info

リクエストメソッド

POST

リクエストヘッダー

Authorization: EAS_TOKEN # EAS 呼び出しのトークン

cURL リクエスト例 (クリックして詳細を表示)

# <EAS_TOKEN> と <EAS_SERVICE_URL> をそれぞれサービス トークンとエンドポイントに置き換えます。
curl -X 'POST' <EAS_SERVICE_URL>/api/v1/query/load_db_info -H 'Authorization: <EAS_TOKEN>'

応答例 (クリックして詳細を表示)

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