ユースケース: 人工知能
製品: MongoDB Atlas、 MongoDB Atlas Vector Search、 MongoDB Atlas Triggers、 投票AI
パートナー: ObjectBox
ソリューション概要
接続されたマシンは、即座の、ハンドシェイク サポートを必要とするドライバーのセンサーデータを継続的に生成します。しかし、ターミナル、トンネル、またはローカルロードで接続が低下すると、クラウドに依存する支援は最も重要なときに失敗します。
このソリューションは、ネットワーク停止時に継続的なエンジン内の支援を確保するためにAI のコピービルドを実行します。オンデバイスの ObjectBoxデータベースを使用して、所有者のマニュアルと一緒にライブ検証を保存します。その後は、アクティブなネットワーク接続を必要としないローカル LVMエージェントを使用してクエリを処理します。再接続時に、 ObjectBox Sync Server はこのエッジ データをMongoDB Atlasに自動的に同期します。
MongoDB Atlas は、レコードの統合クラウドシステムとして機能します。マニュアル コンテンツに対してベクトル検索を実行し、時系列コレクション内にテレメトリ履歴を維持し、同期されたすべてのスナップショットを Atlas trigger 経由で完全にクエリ可能なドキュメントに処理します。
参照アーキテクチャ
インターネット接続なしで正確な応答を提供するインドキュメント ドライバーを構築するためのアーキテクチャは、インドキュメント エッジ層とMongoDB Atlasクラウド層の 2 つの階層に分裂ます。
図の 1。 MongoDB Atlasおよび Atlas trigger の出力コレクションへの同期リクエストからのエンドツーエンドのユーザー フロー
エッジ階層アーキテクチャ
インサイト エッジ階層は自己完結型のランタイムを構成し、 Cocopit、バックエンド、 ローカルエージェント、 ObjectBox サービスがマシン上で直接通信します。このスタック、支援者は知識を取得し、 MongoDB Atlasなしで操作できるようになりますが、接続が戻ったときにローカル データはMongoDB Atlasと同期されます。エッジ層は次のコンポーネントを使用します。
ログ記録UI: Next.js で構築されたこのインターフェースは、ライブ ゲージ、フォールトコード ティッカー、チャット パネル、マップを表示し、すべてのブラウザ呼び出しを同じ発信元APIルートに制限します。
Pythonバックエンド: REST エンドポイントとサーバー送信イベントを公開し、テレメトリのプロキシ、言語をテキストに、テキストを含まない変換と、エージェントのオーケストレーションを処理します。
LgChuinエージェント: Ollma を介してローカル LM と通信し、個別のオンライン実行パスとオフライン実行パスの二重にコンパイルされたグラフを管理します。
埋め込みパイプライン: 自動車マニュアルはまず、小さなテキスト チャンクに分割されます。各チャンクは、その後、Vorage1 024AI の vary-4 -nano モデルを使用して 、 次元の埋め込みに変換され、結果として得られる埋め込みは対応するチャンクと一緒に保存されます。
ObjectBox サービス: C++によって提供され、3 つの異なる同期クライアントは、ユーザーマニュアルのチャンクとその埋め込み、自動車テレメトリ、ダイアログ履歴をローカルに保存します。
ObjectBox HNSWベクトル検索: ObjectBox は、ローカルに保存された手動埋め込みに対して HNSWベクトルインデックスを維持します。結果のインデックスを使用すると、シャードにまたがる近似最近傍検索が可能になるため、支援者はオフラインでもMongoDB Atlas接続に依存することなく、関連するマニュアル コンテンツを検索できます。
テレメトリ ジェネレーター: VSS スナップショットを直接ローカル テレメトリ ストアにキャプチャし、2 秒間隔で保存します。
クラウド階層アーキテクチャ
MongoDB Atlas は、マシンのローカル ObjectBox ストアに接続されたカウンターとして機能します。接続が利用可能になると、同期された手動チャンクと埋め込み、データベース テレメトリ、ダイアログ履歴が受信され、エッジ層がオフラインで運用されている間もクラウドベースの永続性が確保されます。クラウド階層は次のコンポーネントを使用します。
データレプリケーション: ObjectBox Sync Server はクラウドに接続し、エッジ データ ストアをMongoDB コネクタを介してMongoDB Atlasに直接同期します。同期には、手動チャンク、その埋め込み、テレメトリ、ダイアログ履歴が含まれます。
MongoDB Atlasクラスター: 複製されたデータコレクションを維持し、ローカル ObjectBox ストアよりも多くのストレージキャパシティーを提供します。 MongoDB Atlasへの同期により、ソリューションはデータベースの ローカルストレージキャパシティーに制約されることなく、より大量の手動コンテンツ、テレメトリ、ダイアログ履歴、およびその他の長期データを保持できます。
Atlas ベクトル検索: 同期されたマニュアル埋め込みをインデックス化し、接続が利用可能な場合は完全なマニュアルコンテンツに対するクラウド側のベクトル検索を提供します。
Atlas triggers: 専用の 時系列履歴ログを拡張しながら、受信テレメトリ スナップショットをステータス ドキュメントに自動的に変換します。
リクエストの実行フロー
エッジ階層とクラウド階層が確立されると、実行フローは、ドライバーのリクエストがシステム全体を介してローカルバックエンドとエージェントに移動される方法を記述します。クラウド同期は接続が利用可能な場合に行われます。
ドライバーが入力または を指示すると、バックエンドはリクエストストリームをエージェントに直接フィードします。エージェントはLagGraph を使用してクエリを評価し、呼び出すツールを決定します。
自動車マニュアルは チャンク 化され、 MongoDB の操作 AI の1 、024 次元操作4 - のモデルに埋め込まれています。同じ埋め込み表現が ObjectBox にローカルに保存され、 MongoDB Atlasに複製され、 MongoDB Atlas Vector Searchのインデックスが作成されます。エッジでは、ObjectBox の HNSWインデックスは、自動車のマニュアル埋め込みに対するローカルの近似近傍検索をサポートします。クラウドでは、 MongoDB Atlas Vector Search は、同期されたマニュアルコンテンツに対して対応するベクトル検索機能を提供します。
リクエストにマシン情報が含まれている場合、エージェントはどのテレメトリ ツールがドライバーの質問に最も適しているかを判断し、それを呼び出します。リクエストに応じて、選択されたツールは、適切なテレメトリ ストアから現在の自動車状態、関連する VSS シグナル、障害コード、または派生したステータス情報を検索します。選択したツールが DTC を返す場合、エージェントは専用の翻訳ツールを呼び出して、コードとそれに関連するシグナルを影響を受けるシステム、重大度、次のステップに変換するために変換できます。
データモデルアプローチ
ドキュメントモデルは、これらのシェイプを 1 つのデータベースに保存します。
構造化テレメトリ
図の 2。テレメトリーデータモデル
クリックして拡大します無料テキスト マニュアル チャンク
図の 3。自動車マニュアルデータモデル
クリックして拡大しますチャット履歴
図の 4。チャットセッションデータモデル
クリックして拡大します時系列テレメトリー データ
自動車の最終ステータス
図の 5。テレメトリステータスデータモデル
クリックして拡大します
各テレメトリ スナップショットは 1 つのドキュメントです。スナップショットには、ネストされたJSONとして保存される完全な VSS サンプル ツリーと、多数のドメインにわたる 1300 シグナルが保持されます。モデルでは、これらのドメイン全体の固定スキーマは必要ありません。
ObjectBox はテレメトリのペイロードを string として保存します。 MongoDB コネクタは、それを JsonToNative 外部型を通じて Atlas のネイティブのネストされたドキュメントに展開するため、クラウドクエリは正確な VSS パスでフィールドにアドレス指定します。
コレクション
これらのデータモデルは合わせて、ソリューションの主要ドメインを表します。検索可能なマニュアル知識、やり取り履歴、未加工の自動車テレメトリ、現在のドキュメントのステータス、履歴テレメトリを返します。これらのデータ型を分離することで、効率的な取得が可能になり、リアルタイムシャード状態クエリをサポートし、チャット コンテキストが保持され、 MongoDB Atlasで長期のテレメトリ履歴をスケーラビリティとクエリ可能に維持します。このソリューションのコレクションには、次のものが含まれます。
manual_chunks:ベクトル検索用の 1024 次元の MongoDB AI埋め込みを持つオーナーのマニュアル テキスト チャンク。conversations: チャット履歴。人間とエージェントの応答の両方と、各支援者が質問に答えるために使用するツールを含みます。objectbox_telemetry: エッジから同期されたドキュメントごとの未加工スナップショット。telemetry-status: trigger によって書き込まれた現在のドキュメント状態(1 台ごとに 1 つのドキュメント)。telemetry-data: MongoDB時系列コレクション。 Atlas trigger はスナップショットごとに 1 つのレコードを追加するため、データが大きくなるにつれて履歴クエリは効率的に維持されます。
ソリューションのビルド
README実装の完全な詳細については、GitHubリポジトリの を確認してください。次の手順では、アプリケーションを作成する方法について説明します。
図の 6。ライブUI、チャット、フォールト コード ティッカー、オンラインとオフラインの同期パネル
キーポイント
エッジを認可的に保つ:オンデバイスの ObjectBox ストアは読み取りを処理し、接続なしで書き込みを受け入れるため、支援は低接続で動作します。
クエリが存在するベクトル検索を実行します。MongoDB MongoDB AI埋め込みモデル(vary-4 -nano、1024 次元)は、エッジ上の Object Boxベクトル検索とクラウド内のMongoDB Atlas Vector Search を強化するため、モード間で応答の一貫性が保たれます。 。
テレメトリ履歴を時系列として保存する: MongoDB Atlas trigger は、各スナップショットをMongoDB時系列コレクションに書込みます。
1 つのスナップショットを 1 つのドキュメントとしてモデル化 : 柔軟なドキュメントモデルは、固定された クロスドメインスキーマなしで VSS シグナルを保存します。
接続が失われた場合を許容するためのサービスの設計: エッジはオフライン時に書き込みをバッファし、再接続時にMongoDB Atlasと調整します。
作成者
MongoDB、Timothy Markand、 MongoDB
Dorottya Nyárády, MongoDB