パッケージには、コレクション管理、文書処理、推論、関連する API 操作のデモに使用するスクリプトと設定が含まれています。
一般的な Knowledge Base API ワークフローの実用的な Python 実装を実行、検査、および変更できます。
Python デモは、アプリケーション開発の実用的な出発点を提供します。完全なワークフローを使用してコレクション作成、文書処理、AI 推論が連携する様子を確認し、特定のコレクションおよび推論操作用の個別のスクリプトを参照できます。
はじめる前に
次の項目について確認してください。
- Knowledge Base API へのアクセス。
- アプリケーションの認証に必要な資格情報。
- Python 3.7 以降。Python 3.11 以降が推奨されます。
- 完全なデモワークフローで使用できる PDF。
API アクセスを設定していない場合は、Knowledge Base API アクセスの設定を参照してください。
Python デモのダウンロードと設定
仮想環境を作成します。
python3 -m venv venv
環境をアクティブ化します。
- macOS または Linux の場合:
source venv/bin/activate - Windows の場合:
venv\Scripts\activate
依存関係をインストールします:
pip install --upgrade pip
pip install -e .
必要な API 資格情報とサービス設定を config.yaml に追加します。
サンプルスクリプトを実行する前に、python サブフォルダーに変更します。
デモでは requests、pyyaml、tqdm を使用します。資格情報は config.yaml に保存され、認証トークンは自動的に管理されます。
config.yaml や生成された .token ファイルをソース管理にコミットしないでください。
完全なワークフローを実行する
実行:
python knowledgebase.py
特定の PDF を使用するには:
python knowledgebase.py --document=<path-to-pdf>
デモ:
- API で認証します。
- demo-collection という名前のコレクションを作成します。
- PDF をアップロードします。
- インデックス作成が完了するまで文書を監視します。
- 処理済み文書に対して推論リクエストを実行します。
アップロードとインデックス作成は、文書取り込みの別々の部分です。インデックス作成では、文書内容を抽出して AI 操作で使用できるようにします。
PDF を指定しない場合、デモはパッケージの documents ディレクトリから 1 つを選択します。文書の処理は、完了状態に到達しない場合、5 分後にタイムアウトします。
完全なワークフローでは、demo-collection という名前のコレクションを作成し、そこに PDF をアップロードします。デモでは、ワークフローが終了してもコレクションやアップロードした文書は削除されません。
コレクション操作を確認する
完全なワークフローを実行した後、個々のスクリプトを使用して特定の API 操作を探索します。
コレクションを作成
python collection.py --action create --name <collection-name>
コレクション名は最大 255 文字まで使用できます。
コレクションのリスト
python collection.py --action list
プロンプトが表示されたら、自分で作成したコレクション、自分が共有したコレクション、他人が共有したコレクションのどれをリストするかを選択します。
コレクションを共有
python collection.py --action share --collection-id <collection-id>
プロンプトが表示されたら、読み取りまたは書き込みアクセスを受け取るメールアドレスを入力します。
文書をアップロード
python collection.py --action upload --collection-id <collection-id> --path=<path-to-file-or-directory>
スクリプトでは、指定したディレクトリから単一のファイルまたは文書をアップロードできます。
コレクション内の文書を一覧表示
python collection.py --action get_documents --collection-id <collection-id>
文書の処理ステータスを確認
python collection.py --action get_status --document-id <document-id>
デモでは、完全なワークフローとは独立して確認および応用できるスタンドアロンの例として、これらの操作を提供しています。
推論操作を確認
推論の例には、コレクション ID と文書 ID が必要です。コレクションのスクリプトを使用してそれらを識別します
python collection.py --action list
python collection.py --action get_documents --collection-id <collection-id>
質問への回答
コレクションと文書を一覧表示してから、Q&A の例を実行してください:
python collection.py --action list
python collection.py --action get_documents --collection-id <collection-id>
python inference.py --questionAnswer
プロンプトが表示されたら、コレクション ID、文書 ID、質問を入力してください。
文書の要約
コレクションと文書を識別してから、要約の例を実行してください。
python collection.py --action list
python collection.py --action get_documents --collection-id <collection-id>
python inference.py --summarize
プロンプトが表示されたら、コレクション ID と文書 ID を入力してください。
コンテキスト検索
コレクションと文書を識別してから、コンテキスト検索の例を実行してください:
python collection.py --action list
python collection.py --action get_documents --collection-id <collection-id>
python inference.py --context-search
プロンプトが表示されたら、コレクション ID、文書 ID、検索テキストを入力してください。
プロパティの抽出
コレクションと文書を識別してから、抽出の例を実行してください:
python collection.py --action list
python collection.py --action get_documents --collection-id <collection-id>
python inference.py --extract
プロンプトが表示されたら、コレクション ID、文書 ID、プロパティ名、抽出プロンプト、データタイプ、およびオプションの説明を入力してください。
API で作成を続行
Python デモは、完全な API ドキュメントではなく、動作する実装パターンを提供します。
Knowledge Base API の入門を使用して、API リソースモデル、文書のライフサイクル、推論動作、および回答処理について理解してください。
現在のエンドポイントパス、パラメーター、リクエストと応答スキーマ、およびステータス情報が必要な場合は、Knowledge Base API リファレンスを使用してください。
トラブルシューティング
デモでは詳細な診断情報が以下に書き込まれます。
logs/knowledgebase-demo.log
ログファイルには DEBUG レベルの情報が記録され、コンソールには WARNING レベル以上のメッセージが表示されます。
操作が失敗した場合:
- リクエストと認証の詳細については、logs/kinowledgebase-demo.log を参照してください。
- config.yaml の設定を確認してください。
- 使用している PDF が存在し、アクセスできることを確認してください。
- アプリケーションが組織に適したサービスエンドポイントを使用していることを確認してください。
- 認証されたアイデンティティがリクエストされたリソースへのアクセス権限を持っていることを確認してください。
- API の失敗については、利用可能な場合は応答ヘッダーで返される X-Request-ID を保持してください。サポートチームはこの識別子を使用してリクエストをトレースできます。
実装の検討事項
- 完全なワークフローは PDF ファイルを受け入れます。
- デモは API アクセスが設定された後に認証トークンを管理します。
- API 操作は、認証されたアイデンティティが利用できる権限を使用します。
- ソースパッケージにはリージョン別のエンドポイント自動検出機能が含まれていますが、本番環境のエンドポイント値は、デモに含まれているレガシー値ではなく、現在の Knowledge Base API ドキュメントから取得する必要があります。