AI エンジン:単なる翻訳ではありません
なぜ DevLingo は辞書 API を直接使わないのでしょうか?単純な API クエリが返すのは静的でコンテキストのない情報です。DevLingo の AI エンジンは辞書にはできない 3 つのことを行います。
1. コンテキスト理解
Section titled “1. コンテキスト理解”辞書は「deploy」を「デプロイする」と説明します。しかし開発者が知る必要があるのは:
| シーン | 意味 | 例文 |
|---|---|---|
| アプリのデプロイ | 本番環境にリリース | ”We deployed the new version to production.” |
| リソースの配置 | リソースの割り当て/有効化 | ”Deploy additional servers to handle traffic.” |
| 配置(軍事用語) | 展開する、配備する | ”The team is deployed across different time zones.” |
DevLingo AI は、あなたが Xcode でコードを読んでいることを知っているので、最初の意味を強調します。HR ソフトウェアで「deploy」を見た場合は、3 番目の意味がより関連する可能性があります。
{ "sourceApp": "com.apple.dt.Xcode" }→ AI がレスポンススタイルを調整:技術指向、コード関連の例文を優先
{ "sourceApp": "com.tinyspeck.slackmacgap" }→ AI がレスポンススタイルを調整:チームコミュニケーション、よりカジュアル:::tip アプリ認識 DevLingo は NSWorkspace を通じて現在アクティブなアプリの Bundle Identifier を取得し、Claude に渡します。AI はこれに基づいてレスポンスを調整します。 :::
2. 構造化出力
Section titled “2. 構造化出力”辞書はテキストの塊を返します。DevLingo AI は構造化された JSON を返します:
Word モード
Section titled “Word モード”{ "word": "idempotent", "ipa": "/ɪˈdɛmpətənt/", "pos": "adjective", "definition_en": "Describing an operation that, when applied multiple times, produces the same result as when applied once.", "meaning_ja": "冪等の;複数回適用しても1回の適用と同じ結果になる", "examples": [ { "en": "Ensure your API endpoints are idempotent to handle retry requests safely.", "ja": "API エンドポイントが冪等であることを確認し、リトライリクエストを安全に処理しましょう。", "context": "API design" }, { "en": "This function's idempotent nature makes it safe to call multiple times.", "ja": "この関数の冪等な性質により、複数回呼び出しても安全です。", "context": "Function design" } ], "synonyms": [ { "word": "repeatable", "difference": "より一般的;任意の繰り返し可能な操作を指します。'idempotent' はより専門的で正確です。" } ], "collocations": [ "idempotent operation", "idempotent function", "idempotent API" ], "grammar_notes": "形容詞、不可算。技術ドキュメントでは修飾語または補語として頻繁に使用されます。", "l1_tips": { "ja": "日本語のカタカナ語「アイデンポテント」として使われることもありますが、英語での発音はかなり異なります。技術的な議論では英語のまま使用するのが一般的です。" }, "tech_pronunciation": { "ipa": "/ɪˈdɛmpətənt/", "common_mispronounce": "i-DEM-po-tent(誤り;アクセントは DEM にあります)", "correct_stress": "i-**DEM**-pu-tunt", "etymology": "数学用語に由来、ラテン語の 'idem'(同じ)と 'potent'(力のある)から" }}各フィールドは UI のカードの異なる領域に対応しています。テキストの塊ではなく、丁寧に整理された学習教材です。
Phrase モード
Section titled “Phrase モード”{ "phrase": "rubber ducking", "type": "compound (noun phrase)", "register": "informal / tech culture", "definition_en": "A debugging method where you explain your code to a rubber duck (or any object), often revealing bugs through the act of articulation.", "meaning_ja": "ラバーダック(またはどんなオブジェクトでも)にコードを説明することでデバッグする方法。説明する過程で問題を発見できることが多い。", "stress_pattern": "RUB-ber DUCK-ing", "usage_patterns": [ { "pattern": "[Subject] [is/uses] rubber ducking", "example": "I've been rubber ducking this problem for 10 minutes and just found the issue.", "ja": "10分間 rubber ducking をしていて、やっと問題を見つけました。" }, { "pattern": "[Let's] do some rubber ducking [on X]", "example": "Let's do some rubber ducking on this algorithm.", "ja": "このアルゴリズムについて rubber ducking をしましょう。" } ], "alternatives": [ { "phrase": "debugging by explanation", "note": "よりフォーマルな表現;'rubber ducking' ほど文化的な色彩はない" }, { "phrase": "talk it out", "note": "よりカジュアル;デバッグ手法を特に指すわけではない" } ]}3. 開発者向け強化
Section titled “3. 開発者向け強化”技術用語の認識
Section titled “技術用語の認識”入力が開発用語の場合、AI は追加情報を提供します:
単語:latency標準出力:definition, examples, pronunciation...
追加出力(技術用語のみ):• 関連する指標:ミリ秒(ms)/ マイクロ秒(μs)• 対応する概念:throughput, bandwidth• 実践シナリオ:"P99 latency < 100ms" の意味• 業界ベンチマーク:一般的なネットワーク遅延 50ms、悪い場合は 500ms+シーンに基づいた例文
Section titled “シーンに基づいた例文”「猫がマットの上に座っている」ではなく:
単語:concurrent例文(実際の開発から):1. "This function is not concurrent-safe; you need to add locking." → コードレビューのシーン2. "We redesigned the system to handle concurrent requests efficiently." → アーキテクチャ設計のシーン3. "Make sure your HTTP client supports concurrent connections." → パフォーマンス最適化のシーンL1(第一言語)干渉のヒント
Section titled “L1(第一言語)干渉のヒント”ユーザーの母語に基づいて、AI が一般的な落とし穴を積極的に指摘します:
ユーザー:日本語母語単語:article / the / a
AI のヒント:"日本語話者によくある問題:日本語には冠詞がありませんが、英語では definite article (the) と indefinite article (a/an) を区別します。
誤り例:'I saw cat' → 'I saw a cat' または 'I saw the cat'(コンテキストに依存)
記憶法:英語では可算名詞には通常冠詞が必要です。日本語の「猫」はそのまま使えますが、英語では「一匹の猫」か「その猫」と言わなければなりません。":::note L1 干渉 これが DevLingo のユニークな点です。標準的な辞書は「あなたがこの単語を間違って使う原因はあなたの母語の背景にある」とは教えてくれません。 :::
AI モデル:Claude by Anthropic
Section titled “AI モデル:Claude by Anthropic”DevLingo が Claude を選んだ理由:
- 構造化出力能力が高い:Claude はフォーマットされた JSON の生成に優れており、信頼性が高い
- コンテキスト理解が深い:Claude はアプリのコンテキスト、コードのコンテキスト、L1 干渉を理解できる
- 開発者フレンドリー:Claude の技術用語、コード、開発ワークフローの理解は汎用 LLM を上回る
- 制御性:プロンプトエンジニアリングにより、DevLingo は出力の形式と品質を正確に制御可能
プロンプトエンジニアリング
Section titled “プロンプトエンジニアリング”DevLingo の Claude 呼び出しには、丁寧に設計されたプロンプトテンプレートが含まれています:
You are an English learning assistant for developers.The user selected: "{selectedText}"Mode: {mode}User's native language: {userLanguage}Current application: {sourceApp}Surrounding context: "{context}"
Respond with JSON in the following structure:{ "mode": "word|phrase|sentence|paragraph|express", ... [detailed schema]}
Important:1. Examples must be from software development context2. Provide 2-3 examples per item3. For native speakers of {userLanguage}, highlight common interference patterns4. If applicable, note pronunciation and stress patterns5. Keep definitions concise (< 20 words)このプロンプトにより:
- 出力形式が一貫する
- 例文が開発コンテキストから取得される
- L1 干渉が重視される
- 結果が学習に対して的を絞ったものになる
比較:辞書 vs DevLingo AI
Section titled “比較:辞書 vs DevLingo AI”| 機能 | 辞書 API | DevLingo AI |
|---|---|---|
| 基本的な定義 | ○ | ○ |
| 複数の例文 | ○(通常は的を絞っていない) | ○(すべて技術シーン) |
| コンテキスト認識 | × | ○(使用しているアプリを認識) |
| L1 干渉のヒント | × | ○ |
| 構造化出力 | ×(テキストのみ) | ○(JSON、UI フレンドリー) |
| 技術用語の追加情報 | × | ○(語源、業界ベンチマークなど) |
| 同義語の比較 | ×(同義語を列挙するだけ) | ○(違いを説明) |
| 発音と IPA | ○(部分的) | ○(完全 + 4 種類のアクセント) |
コストとパフォーマンスのバランス
Section titled “コストとパフォーマンスのバランス”:::note なぜ階層化で AI を使わないのか DevLingo の階層化クエリシステムにより:
- よく使われる語彙(ローカルライブラリにヒット):AI 0ms、100% 高速
- キャッシュヒット(ユーザーが以前にクエリ済み):AI 0ms、100% 高速
- まれな語彙(AI 呼び出し):<2s で完了、それでも高速
これにより、ユーザーの 95% のクエリに API コールが不要となり、コスト削減と体験向上の両方を実現します。 :::
DevLingo の AI エンジンは「翻訳」のためではなく、「理解と教育」のためにあります。あなたが何をしているか、あなたの言語背景を知り、最も効果的な教え方を知っています。