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 |
検索インターフェース (Search)
メソッド | ルート | 機能説明 | 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 すべての文書リストを取得
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 サーバー内部エラー
サーバー側の処理中にシステムエラー、データベース接続の失敗、ベクトルエンジンの異常などが発生しました。
対処方法: しばらくしてから再試行してください。何度も発生する場合は管理者にご連絡ください。