AI SDKs
Email checker integration with AI SDKs. Anthropic, OpenAI, LangChain, Vercel AI SDK guides.
人気のあるAIフレームワークとSDKを使用して、メール検証機能が組み込まれたAIアプリケーションを構築します。
対応フレームワーク
Vercel AI SDK
Next.jsとReactアプリケーションでのツールコール
LangChain
PythonとJavaScriptのLangChainエージェント用カスタムツール
OpenAI Function Calling
OpenAI GPTモデルでのネイティブファンクションコール
Anthropicツール使用
Claudeモデルでのツール使用
比較
| フレームワーク | 言語 | 最適な用途 | 複雑さ |
|---|---|---|---|
| Vercel AI SDK | TypeScript | Next.jsアプリ、ストリーミング | 低 |
| LangChain | Python/JS | 複雑なエージェント、チェーン | 中 |
| OpenAI Functions | 任意 | 直接GPT統合 | 中 |
| Anthropic Tools | 任意 | 直接Claude統合 | 中 |
クイック例
フレームワーク間で動作するシンプルなツール定義:
const verifyEmailTool = {
name: 'verify_email',
description: 'Verify if an email address is valid and deliverable',
parameters: {
type: 'object',
properties: {
email: {
type: 'string',
description: 'The email address to verify',
},
},
required: ['email'],
},
execute: async ({ email }) => {
const response = await fetch('https://api.emailverify.ai/v1/verify', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.EMAILVERIFY_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ email }),
});
return response.json();
},
};ベストプラクティス
1. エラーハンドリング
ツール内でAPIエラーを適切に処理:
execute: async ({ email }) => {
try {
const response = await fetch('https://api.emailverify.ai/v1/verify', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.EMAILVERIFY_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ email }),
});
if (!response.ok) {
if (response.status === 429) {
return { error: 'Rate limit exceeded. Please try again later.' };
}
return { error: `Verification failed: ${response.statusText}` };
}
return response.json();
} catch (error) {
return { error: 'Network error. Could not reach verification service.' };
}
}2. 明確なツール説明
AIがいつ使用すべきかわかるように、説明的なツール定義を書きます:
description: `Verify if an email address is valid and deliverable.
Returns:
- status: "valid", "invalid", or "unknown"
- deliverable: whether the email can receive messages
- disposable: whether it's a temporary email service
- role: whether it's a role-based address like info@ or support@
- score: confidence score from 0 to 1
Use this tool when:
- User asks to verify an email
- Checking if an email is real
- Validating contact information`3. 効率化のためのバッチ処理
複数のメールを検証する場合は、一括エンドポイントを使用:
const verifyEmailsBulkTool = {
name: 'verify_emails_bulk',
description: 'Verify multiple emails at once. More efficient than verifying one by one.',
parameters: {
type: 'object',
properties: {
emails: {
type: 'array',
items: { type: 'string' },
maxItems: 100,
},
},
required: ['emails'],
},
};4. 結果のキャッシュ
クレジット節約のために検証結果をキャッシュすることを検討:
const cache = new Map<string, { result: any; timestamp: number }>();
const CACHE_TTL = 3600000; // 1 hour
async function verifyWithCache(email: string) {
const cached = cache.get(email);
if (cached && Date.now() - cached.timestamp < CACHE_TTL) {
return cached.result;
}
const result = await verifyEmail(email);
cache.set(email, { result, timestamp: Date.now() });
return result;
}