コンテンツにスキップ

CLI リファレンス

Schift CLI は、ファイルのアップロード、バケットの検索、埋め込みベンチマークの実行、使用状況の確認など、ワークスペース操作のためのターミナルファーストインターフェースを提供します。

schift 実行可能ファイル名を共有するパッケージは2つあります:

パッケージサーフェス用途
schift-cli (Python)標準、メンテナンス中バケット、アップロード、検索、カタログ、エンベディング、ジョブ、使用状況、ベンチマーク、移行
@schift-io/cli (npm)互換性専用レガシーデプロイ、プロバイダー、エージェント、AWP、およびメモリワークフロー

注意: 新しいターミナルワークフローは Python の schift-cli を使用するべきです。npm CLI は、uploadsearchcatalogmigrate などの標準データコマンドを Python CLI にリダイレクトします。

Terminal window
python3 -m pip install schift-cli

リポジトリからのローカル開発用:

Terminal window
cd clients/sdk/cli
python3 -m pip install -e '.[dev]'

このパッケージは、pyproject.toml コンソールエントリポイントを通じて schift 実行可能ファイルをインストールします。

Terminal window
npm install -g @schift-io/cli

これは、schift deployschift providers、または schift agent などの古い TypeScript 専用コマンドサーフェスが必要な場合のみ使用してください。

インタラクティブに、または環境変数を通じて認証します。

Terminal window
# インタラクティブログイン — API キーを ~/.schift/config.json に保存します
schift auth login
# 現在の認証ソースを確認します
schift auth status
# 保存されたキーを削除します
schift auth logout

CLI は次の順序で資格情報を解決します:

  1. SCHIFT_API_KEY 環境変数
  2. ~/.schift/config.json

両方が存在する場合、環境変数が優先されます。設定ファイルは 0600 の権限で書き込まれます。

API ベース URL は SCHIFT_API_URL から解決されます。この変数が欠けている場合、CLI はプロダクションのオリジンを仮定しないため、ローカル、ステージング、またはホストされたワークスペース用に明示的に設定してください。

Terminal window
export SCHIFT_API_KEY=sch_your_key_here
export SCHIFT_API_URL=http://localhost:8080/v1
コマンド用途
schift auth ...ローカル認証状態を管理します
schift catalog ...サポートされている埋め込みモデルをブラウズします
schift embed ...テキストから埋め込みを生成します
schift bench ...2つのモデル間の移行品質を評価します
schift migrate ...プロジェクションをフィットさせ、見積もり/開始/ステータスデータベース移行を実行します
schift db ...バケットを作成、リスト、検査します
schift upload ...バケットにファイルをアップロードします
schift jobs ...取り込みジョブを検査、再処理、キャンセルします
schift search ...バケット検索を実行します
schift query ...search の互換性エイリアス
schift usage ...集計された使用状況と請求の概要を表示します
コマンド用途
schift auth login|logout|status認証または保存された資格情報をクリアします
schift deployレガシー展開互換性(データをアップロードし、バケットを作成)
schift agent callデプロイされたエージェントクエリエンドポイントを呼び出します
schift awp publish-pack第一者 AWP YAML パックを公開します
schift providers set組織レベルの LLM プロバイダーアクセスを構成します
schift remember, ask, ingestレガシー メモリワークフロー

バケットのアップロードと検索

Section titled “バケットのアップロードと検索”
Terminal window
schift auth login
schift upload ./handbook.pdf --bucket company-docs
schift jobs list --bucket company-docs
schift search "revenue report" --bucket company-docs --top-k 5

モデルのブラウズとテキストの埋め込み

Section titled “モデルのブラウズとテキストの埋め込み”
Terminal window
schift catalog list
schift catalog get openai/text-embedding-3-large
schift embed "quarterly revenue report" --model openai/text-embedding-3-large
Terminal window
schift embed batch \
--file ./texts.jsonl \
--model google/gemini-embedding-004 \
--output ./embeddings.jsonl

入力フォーマット:

{"text":"First document"}
{"text":"Second document"}

出力フォーマット:

{"text":"First document","embedding":[0.123,0.456]}
{"text":"Second document","embedding":[0.789,0.012]}
Terminal window
schift bench \
--source openai/text-embedding-3-large \
--target google/gemini-embedding-004 \
--bucket-source ./bucket-source.npy \
--bucket-target ./bucket-target.npy \
--query-source ./query-source.npy \
--query-target ./query-target.npy \
--bucket-document-id doc_1 \
--bucket-document-id doc_2 \
--top-k 10

ライブ移行の前に安全ゲートとして bench を使用します。リコールが低い場合は展開をブロックします。

プロジェクションをフィットさせてデータベースを移行

Section titled “プロジェクションをフィットさせてデータベースを移行”
Terminal window
schift migrate fit \
--source openai/text-embedding-3-large \
--target google/gemini-embedding-004 \
--source-embeddings ./source.npy \
--target-embeddings ./target.npy \
--project-name docs-migration
schift migrate quote --from 'pgvector://user:password@localhost:5432/app?table=docs'
schift migrate start \
--from 'pgvector://user:password@localhost:5432/app?table=docs' \
--to schift://bucket_abc123

注意: migrate run は廃止されました。公開 API はもはや /migrate/run を公開していません。代わりに migrate quotemigrate startmigrate status を使用してください。

変数用途
SCHIFT_API_KEY認証用の API キー。~/.schift/config.json よりも優先されます。
SCHIFT_API_URLSchift API のベース URL、例えば http://localhost:8080/v1

エラーハンドリングと終了動作

Section titled “エラーハンドリングと終了動作”
  • 認証失敗は、schift auth login を実行するように指示する直接的なアクションメッセージを表示します。
  • 接続失敗は、解決された API URL を示し、SCHIFT_API_URL を確認するように提案します。
  • API エラーは非ゼロで終了し、利用可能な場合はサーバー提供の詳細テキストを表示します。
  • 空の結果セットは通常の出力として処理され、クラッシュは発生しません。