コンテンツにスキップ

RAG API

APIキーを取得するにはクイックスタートガイドを参照してください。

$YOUR_API_KEYを前のステップで生成した実際のAPIキーに置き換えてください。
当プラットフォームでは API キーごとにデータの分離を行っています。同一ユーザーアカウント内であっても、異なる API キー(トークン)を通じてアクセスされるデータは完全に独立しており、相互に共有されることはありません。


文書管理インターフェース (Documents)

メソッド ルート 機能説明 APIインターフェース
POST /documents/upload 文書アップロードリクエストを処理します。ファイル保存、テキスト分割、データ永続化を含みます https://api-platform.ope.ai/documents/upload
GET /documents/documents すべての文書リストを取得します。文書ID、ファイル名、アップロード時間、チャンク数などを含み、クエリ結果はアップロード時間の降順で並べ替えられます https://api-platform.ope.ai/documents/documents
DELETE /documents/documents 指定された文書と関連リソースを削除します。物理ファイルの削除、Milvusベクトルデータの削除、データベースレコードの削除、BM25インデックスの削除を含みます https://api-platform.ope.ai/documents/documents
GET /documents/document_chunks 指定された文書のすべてのチャンクリストを取得します https://api-platform.ope.ai/documents/document_chunks
GET /documents/download_document 指定された文書ファイルをダウンロードします https://api-platform.ope.ai/documents/download_document

データベース管理インターフェース (Database)

メソッド ルート 機能説明 APIインターフェース
POST /database/collections ユーザースペースコレクションを作成します。このインターフェースは、指定されたユーザー用に新しいMilvus Collectionを作成し、ベクトルデータを保存するために使用されます。作成に失敗した場合やMilvusに接続できない場合はエラーを返します https://api-platform.ope.ai/database/collections
DELETE /database/collections ユーザースペースコレクションを削除します。このインターフェースは、指定されたユーザーのMilvus Collectionとそこに保存されているすべてのベクトルデータを削除するために使用されます https://api-platform.ope.ai/database/collections

メソッド ルート 機能説明 APIインターフェース
POST /search/chat_message RAGベースの会話型検索、RAG検索リクエストを処理します

ユーザーの質問と関連パラメータを受け取り、RAG(検索拡張生成)方式を使用して回答を生成します。

全体のプロセスには以下が含まれます:
- 文書検索:ナレッジベースから関連文書を検索
- コンテキスト統合:検索された文書と質問を組み合わせる
- 回答生成:大規模言語モデルを使用して応答を生成
- ストリーミング応答:生成されたコンテンツをリアルタイムで返す
https://api-platform.ope.ai/search/chat_message

セッション管理インターフェース (Session Manage)

メソッド ルート 機能説明 APIインターフェース
POST /session_manage/delete 指定されたユーザーセッションを削除します。このインターフェースは、ユーザーの特定のセッションと関連するすべてのチャット履歴を手動で指定して削除するために使用されます https://api-platform.ope.ai/session_manage/delete

APIリクエスト例

/documents/upload

POST 文書のアップロード

curl --location --request POST 'https://api-platform.ope.ai/documents/upload' \
  --header 'Authorization: Bearer $YOUR_API_KEY' \
  --header 'Accept: */*' \
  --header 'Host: api-platform.ope.ai' \
  --header 'Connection: keep-alive' \
  --header 'Content-Type: multipart/form-data; boundary=------------------------897026663741264421313454' \
  --form 'files=@"/Users/ten/Documents/test.txt"' \   # 対応ファイル形式:.txt、.pdf、.csv、.md、.docx
  --form 'model="opeai/bge-m3"'                       # 生成モデル名
  --form 'chunk_size=500'                             # 文書分割トークン長
  --form 'chunk_overlap=50'                           # 文書分割オーバーラップ長
  --form 'separators=!'                               # 文書分割区切り文字、指定しない場合はデフォルトで\n\n
import requests

headers = {
    'Authorization': 'Bearer $YOUR_API_KEY',
    'Accept': '*/*',
}

files = {
    'files': open('/Users/ten/Documents/test.txt', 'rb'),       # 対応ファイル形式:.txt、.pdf、.csv、.md、.docx
    'model': (None, 'opeai/bge-m3'),                            # 埋め込みモデル名
    'chunk_size': (None, '500'),                                # 文書分割トークン長
    'chunk_overlap': (None, '50'),                              # 文書分割オーバーラップ長
    'separators': (None, '!'),                                  # 文書分割区切り文字、指定しない場合はデフォルトで\n\n
}

response = requests.post('https://api-platform.ope.ai/documents/upload', headers=headers, files=files)
for line in response.iter_lines():
    if line:
        decoded = line.decode('utf-8')
        print(decoded)

/documents/document_chunks

GET 文書の分割チャンクを取得

curl --location --request GET 'https://api-platform.ope.ai/documents/document_chunks?doc_id=14ba616e-2214-412e-8d3e-9164970de543' \
  --header 'Authorization: Bearer $YOUR_API_KEY' \
  --header 'Accept: */*' \
  --header 'Host: api-platform.ope.ai' \
  --header 'Connection: keep-alive'
  # doc_idは/documents/documentsから返されます
import requests

headers = {
    'Authorization': 'Bearer $YOUR_API_KEY',
    'Accept': '*/*',
    'Host': 'api-platform.ope.ai',
    'Connection': 'keep-alive',
}

params = {
    'doc_id': '14ba616e-2214-412e-8d3e-9164970de543',             # doc_idは/documents/documentsから返されます
}

response = requests.get('https://api-platform.ope.ai/documents/document_chunks', params=params, headers=headers)
print(response.json())

/documents/download_document

GET 文書のダウンロード

curl --location --request GET 'https://api-platform.ope.ai/documents/download_document?doc_file_path=storage/docs/158/14ba616e-2214-412e-8d3e-9164970de543_test.txt&filename=test.txt' \
  --header 'Authorization: Bearer $YOUR_API_KEY' \
  --header 'Accept: */*' \
  --header 'Host: api-platform.ope.ai' \
  --header 'Connection: keep-alive'
  # filenameはローカルに保存するファイル名です
  # doc_file_pathは/documents/documentsから返されます
import requests

headers = {
    'Authorization': 'Bearer $YOUR_API_KEY',
    'Accept': '*/*',
    'Host': 'api-platform.ope.ai',
    'Connection': 'keep-alive',
}

params = {
    'doc_file_path': 'storage/docs/158/14ba616e-2214-412e-8d3e-9164970de543_test.txt',   # doc_file_pathは/documents/documentsから返されます
    'filename': 'test.txt'                                                               # filenameはローカルに保存するファイル名です
}

response = requests.get(
    'https://api-platform.ope.ai/documents/download_document',
    headers=headers,
    params=params
)

with open(params['filename'], 'wb') as f:
    f.write(response.content)

/database/collections

POST 创建用户知识库

curl --location --request POST 'https://api-platform.ope.ai/database/collections' \
  --header 'Authorization: Bearer $YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --header 'Accept: */*' \
  --header 'Host: api-platform.ope.ai' \
  --header 'Connection: keep-alive' \
  --data-raw ''
  # 最初に使用して、ユーザーのナレッジベースを作成します
import requests

headers = {
    'Authorization': 'Bearer $YOUR_API_KEY',
    'Content-Type': 'application/json',
    'Accept': '*/*',
    'Host': 'api-platform.ope.ai',
    'Connection': 'keep-alive',
}

response = requests.post('https://api-platform.ope.ai/database/collections', headers=headers)
print(response.json())
# 最初に使用して、ユーザーのナレッジベースを作成します

DELETE 删除用户知识库

curl --location --request DELETE 'https://api-platform.ope.ai/database/collections' \
  --header 'Authorization: Bearer $YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --header 'Accept: */*' \
  --header 'Host: api-platform.ope.ai' \
  --header 'Connection: keep-alive' \
  --data-raw ''
  # ユーザーのナレッジベースを削除します
import requests

headers = {
    'Authorization': 'Bearer $YOUR_API_KEY',
    'Content-Type': 'application/json',
    'Accept': '*/*',
    'Host': 'api-platform.ope.ai',
    'Connection': 'keep-alive',
}

response = requests.delete('https://api-platform.ope.ai/database/collections', headers=headers)
print(response.json())
# ユーザーのナレッジベースを削除します

/search/chat_message

POST 質問を送信して RAG 検索を実行

curl --location --request POST 'https://api-platform.ope.ai/search/chat_message' \
  --header 'Authorization: Bearer $YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --header 'Accept: */*' \
  --header 'Host: api-platform.ope.ai' \
  --header 'Connection: keep-alive' \
  --data-raw '{
    "embedding_model_name": "opeai/bge-m3",          # Embedding モデル名
    "llm_model_name": "opeai/deepseek-v3",           # 大規模言語モデル
    "question": "什么是RAG?",                         # ユーザー質問
    "session_id": "session_1",                       # セッションID、空の場合は新しいセッションが自動的に作成され、このインターフェースによってIDが返されます。以降の呼び出しでこの返されたセッションIDを渡すと、現在のセッションの履歴情報を取得できます
    "top_k": 5,                                      # ナレッジベースから最も類似するドキュメントの件数を返す
    "stream": false                                  # デフォルトはtrue
  }'
import requests

headers = {
    'Authorization': 'Bearer $YOUR_API_KEY',
    'Content-Type': 'application/json',
    'Accept': '*/*',
    'Host': 'api-platform.ope.ai',
    'Connection': 'keep-alive',
}

payload = {
    'embedding_model_name': 'opeai/bge-m3',          # Embedding モデル名
    'llm_model_name': 'opeai/deepseek-v3',           # 大規模言語モデル
    'question': '什么是RAG?',                         # ユーザー質問
    'session_id': 'session_1',                       # セッションID、空の場合は新しいセッションが自動的に作成され、このインターフェースによってIDが返されます。以降の呼び出しでこの返されたセッションIDを渡すと、現在のセッションの履歴情報を取得できます
    'top_k': 5,                                      # ナレッジベースから最も類似するドキュメントの件数を返す
    'stream': False,                                 # デフォルトはtrue
}

response = requests.post('https://api-platform.ope.ai/search/chat_message', headers=headers, json=payload)
print(response.json())

/session_manage/delete

POST セッションの削除

curl --location --request POST 'https://api-platform.ope.ai/session_manage/delete' \
  --header 'Authorization: Bearer $YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --header 'Accept: */*' \
  --header 'Host: api-platform.ope.ai' \
  --header 'Connection: keep-alive' \
  --data-raw '{
    "session_id": "session_1"                      # chat_messageから返されたセッションID
  }'
import requests

headers = {
    'Authorization': 'Bearer $YOUR_API_KEY',
    'Content-Type': 'application/json',
    'Accept': '*/*',
    'Host': 'api-platform.ope.ai',
    'Connection': 'keep-alive',
}

payload = {
    'session_id': 'session_1',                   # chat_messageから返されたセッションID
}

response = requests.post('https://api-platform.ope.ai/session_manage/delete', headers=headers, json=payload)
print(response.json())

/documents/documents

DELETE 指定文書の削除

curl --location --request DELETE 'https://api-platform.ope.ai/documents/documents' \
  --header 'Authorization: Bearer $YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --header 'Accept: */*' \
  --header 'Host: api-platform.ope.ai' \
  --header 'Connection: keep-alive' \
  --data-raw '{
    "doc_id": "123"                            # # documents/documentsから取得できます
  }'
  # ユーザー文書を削除します
import requests

headers = {
    'Authorization': 'Bearer $YOUR_API_KEY',
    'Content-Type': 'application/json',
    'Accept': '*/*',
    'Host': 'api-platform.ope.ai',
    'Connection': 'keep-alive',
}

payload = {
    'doc_id': '123',                          # # documents/documentsから取得できます
}

response = requests.delete('https://api-platform.ope.ai/documents/documents', headers=headers, json=payload)
print(response.json())
# ユーザー文書を削除します

GET すべての文書リストを取得

curl --location --request GET 'https://api-platform.ope.ai/documents/documents' \
  --header 'Authorization: Bearer $YOUR_API_KEY' \
  --header 'Accept-Language: zh-cn' \
  --header 'Accept: */*' \
  --header 'Host: api-platform.ope.ai' \
  --header 'Connection: keep-alive'
  # 文書リストを取得します
import requests

headers = {
    'Authorization': 'Bearer $YOUR_API_KEY',
    'Accept-Language': 'zh-cn',
    'Accept': '*/*',
    'Host': 'api-platform.ope.ai',
    'Connection': 'keep-alive',
}

response = requests.get('https://api-platform.ope.ai/documents/documents', headers=headers)
print(response.json())
# 文書リストを取得します

APIリクエストエラー

APIを呼び出す際、以下のような一般的なエラーが発生する可能性があります。

404 インターフェースが存在しない

指定されたAPIパスが存在しません。
対処方法: パスが正しいか確認し、それでも解決しない場合は管理者にお問い合わせください。

422 パラメータエラー

クライアントから送信されたパラメータが要件を満たしていない、または形式が正しくありません(必須フィールドの欠如、フィールド形式の誤り、フィールド名のスペルミスなど)。
対処方法: リクエストボディの構造を確認し、すべての必須パラメータが揃っているか、形式が正しいかをチェックしてください。

500 サーバー内部エラー

サーバー側の処理中にシステムエラー、データベース接続の失敗、ベクトルエンジンの異常などが発生しました。
対処方法: しばらくしてから再試行してください。何度も発生する場合は管理者にご連絡ください。