こんにちは、かつコーチです。
前回の記事では、話題の新AI「Jev」がChatGPTやClaudeとどう違うのかを解説しました。
「分類・採点・はい/いいえ判定に特化したAI」という位置づけが理解できたところで、今回は実際に手を動かして、APIキーの取得から判定処理を実装するところまでを見ていきます。
対象読者は、普段からAPIを使った開発に慣れている中級者の方を想定しています。
本記事は2026年9月19日時点の情報をもとにしています。
Jevは2026年9月15日発表とまだ日が浅いサービスのため、この記事で紹介するAPI仕様は今後変更される可能性がある点をご了承ください。
Jevを使い始めるまでの流れ
現時点はウェイトリストからの早期アクセス段階
まず前提として、2026年9月19日時点でJevはTypeSafe AI公式サイトのウェイトリストに登録して、早期アクセスの案内を待つ段階です。
筆者もウェイトリストには登録済みですが、まだ実際のAPIキーは発行されていません。
そのためこの記事のコード例は、実際にAPIキーを叩いた検証結果ではなく、公式情報や公開されているSDK仕様をもとにした「APIキー発行後にそのまま使えるはずのコード」として紹介します。
APIキーが発行され次第、実際のレスポンス検証結果は別記事で追記する予定です。
アカウント登録の手順
現時点で確認できる登録の流れは、次のとおりです。
- TypeSafe AI公式サイトにアクセスする
- メールアドレスを入力してウェイトリストに登録する
- 早期アクセスの案内メールが届いたら、ダッシュボードにログインする
- ダッシュボード上で「Create API Key」からAPIキーを発行する
ダッシュボードの見た目や具体的な項目名は、正式リリース時に変わる可能性があります。
APIキーが発行されたら、環境変数などに安全に保管しておきましょう。
export TYPESAFE_API_KEY="your-api-key-here"
Jevの基本的な使い方
入力の考え方:stateとquestions
Jevへの入力は、大きく分けて2つの要素で構成されます。
- state(判断材料):判定の元になる情報。問い合わせ文、レビュー本文、ユーザーの行動履歴など
- questions(質問群):何を判定してほしいかを定義した質問のリスト
たとえば「この問い合わせがクレームかどうかを判定したい」という場合、stateには問い合わせ本文を、questionsには「これはクレームですか?」という質問と、答えの選択肢を渡すイメージです。
エンドポイントは https://api.typesafe.ai/v1/systemone で、公式のPython SDKまたはJavaScript SDKからも呼び出せます。
Python SDKでの実装例
まずはPython SDKを使ったシンプルな例です。
from typesafe import Jev
client = Jev(api_key="your-api-key-here")
response = client.judge(
state={
"text": "注文した商品が届かないのですが、いつ発送されますか?至急確認をお願いします。"
},
questions=[
{
"id": "category",
"type": "classification",
"prompt": "この問い合わせの種類を選んでください。",
"choices": ["クレーム", "質問", "要望", "その他"]
},
{
"id": "urgency",
"type": "score",
"prompt": "緊急度を1〜5で評価してください。",
"scale": [1, 5]
}
]
)
print(response.results)
# 想定される出力イメージ:
# {
# "category": "質問",
# "urgency": 4
# }
ポイントは、Jevには「文章で答えて」とお願いするのではなく、questionsの中で選択肢やスケールをあらかじめ定義しておくことです。
こうすることで、Jevは常に決まった型のレスポンスを返してくれます。
curlで直接APIを叩く場合
SDKを使わず、直接HTTPリクエストで呼び出すこともできます。
curl -X POST https://api.typesafe.ai/v1/systemone \
-H "Authorization: Bearer $TYPESAFE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"state": {
"text": "このアプリ、使い方が全然わからなくて困っています。"
},
"questions": [
{
"id": "is_complaint",
"type": "boolean",
"prompt": "これはクレームですか?"
}
]
}'
レスポンスは、次のようなJSON形式で返ってくることが想定されます。
{
"results": {
"is_complaint": true
},
"latency_ms": 118
}
latency_ms のようなレイテンシ情報が含まれるかどうかはSDKのバージョンによって変わる可能性がありますが、Jevの売りである「速さ」を実感するためにも、実際にAPIキーが発行されたらまず確認したい項目です。
JavaScript(Node.js)での実装例
Webアプリのバックエンドから呼び出す場合は、JavaScript SDKも用意されています。
import { Jev } from "@typesafe/jev";
const client = new Jev({ apiKey: process.env.TYPESAFE_API_KEY });
async function classifyInquiry(text) {
const response = await client.judge({
state: { text },
questions: [
{
id: "category",
type: "classification",
prompt: "この問い合わせの種類を選んでください。",
choices: ["クレーム", "質問", "要望", "その他"],
},
],
});
return response.results.category;
}
classifyInquiry("配送状況を教えてください").then((category) => {
console.log(category); // "質問" が返る想定
});
Node.jsのExpressサーバーなどに組み込む場合は、この classifyInquiry 関数をミドルウェアの中で呼び出し、分類結果に応じてルーティングを変える、といった使い方が考えられます。
つまずきやすいポイント・注意点
「自由記述で答えて」はNG
一番やってしまいがちなのが、questionsのpromptに「詳しく説明して」のような自由記述を期待する文言を入れてしまうことです。
Jevはあくまで型の決まった答えしか返さないモデルなので、choicesやscaleを明示的に定義しないと、意図した挙動になりません。
ChatGPTやClaudeのプロンプト設計に慣れていると、つい自然文で細かいニュアンスを説明したくなりますが、Jevでは「選択肢」「スケール」という構造で問いを設計する発想に切り替える必要があります。
レイテンシを活かすには呼び出し設計も見直す
Jevはレイテンシが70〜500ms、多くは100〜150ms程度と非常に高速です。
ただし、この速さを活かすには、呼び出し側の設計も見直す必要があります。
たとえば1件ずつ逐次的にAPIを呼んでいると、いくらJev自体が速くても、ネットワーク往復のオーバーヘッドが積み重なってしまいます。
複数件をまとめて判定できるバッチ処理のオプションがSDKに用意されているかどうかは、公式ドキュメントの更新を確認しながら対応するのがよさそうです。
APIキーの管理は他のAI APIと同様に
APIキーの管理については、OpenAIやAnthropicのAPIキーと同様に、コードに直接書き込まず環境変数で管理する、Gitに含めない、といった基本的なセキュリティ対策は変わりません。
早期アクセス段階のサービスは特にドキュメントが未整備なことも多いため、公式のセキュリティガイドラインが公開され次第、必ず目を通しておきましょう。
まとめ
この記事のポイント
- Jevは2026年9月19日時点でウェイトリストからの早期アクセス段階
- 入力は「state(判断材料)」と「questions(質問群)」の組み合わせで設計する
- Python/JavaScriptのSDK、またはcurlで直接エンドポイント
https://api.typesafe.ai/v1/systemoneを叩いて利用する - Jevには自由記述ではなく、選択肢やスケールを明示した質問設計が必要
- レイテンシの速さを活かすには、呼び出し側の設計(バッチ処理など)も工夫が必要
次に読むべき記事
APIの基本的な使い方がつかめたら、次は「実践:Jevで問い合わせ内容の自動分類・優先度採点を作る」で、より具体的な業務シナリオに落とし込んだ実装例を紹介します。
問い合わせ管理システムを想定した、分類と採点を組み合わせた実装をぜひ参考にしてください。


コメント