AI について
AI は、Nasdanika のリソースセットと相互接続されたモデル上に構築される AI 機能群です。モデルの説明、埋め込み、ベクトル検索、チャットを備え、意味検索と RAG でモデルのグラフ関係も考慮できます。
主な機能
- 01モデル要素と関係の説明
- 02OpenAI と Ollama の埋め込み
- 03ベクトルストア対応
- 04グラフ距離を考慮した意味検索
- 05チャット補完とコマンドライン
- 06埋め込みおよびベクトルストア生成
活用シーン
- 01モデル内の関係を説明
- 02モデルの説明から RAG を構築
- 03意味とグラフ距離を使って検索
- 04サイトやモデルとチャット
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
AI
ほかの Nasdanika 機能の上で動作する人工知能関連の機能です。 具体的には、相互につながったモデルのコレクションであるリソースセットの上で動作します。 モデルとリソースセットにより、AI コンポーネントを低レベルの実装詳細から抽象化できます。
モデル要素とその関係をさまざまな方法で説明する「ナレーター」プロセッサーです。 たとえば、サンプルの家族 では、派生した関係と能力ベースの推論を備えたモデルを使って、次のように説明できます。
- Paul は Lea の親です
- Paul は Lea の父親です
- Lea は Paul の子です
- Lea は Paul の娘です
- Elias は Lea のきょうだいです
- Elias は Lea の兄弟です
- ...
また、EObject -> EClass の関係を使って、Lea が女性であると説明し、メタモデルにある女性の定義を提示できます。
このテキストを Lea の説明に追加できます。その後、生成されたテキストをチャンクに分割し、埋め込みを生成して、 ベクトルストアに追加できます。 これは、意味的な距離だけでなくグラフ上の距離も考慮するセマンティック検索や RAG に利用できます。
たとえば、Dave のコンテキストでの質問やチャットでは、Elias からの意味的な一致が Paul からの一致よりも 高い重み、つまり小さい距離になります。
主なコンポーネント:
- 埋め込み — OpenAI と Ollams のもの
- ベクトルストア — https://github.com/jelmerk/hnswlib。ローカルコンピューターでの観察結果:
- 事前にダウンロードした https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.en.300.vec.gz から 200K 個のベクトルを読み込むのに約 10 分
- インデックスファイルは約 2.5 Gb
- ファイルからインデックスを読み込むのに約 90 秒
- チャット補完
- CLI
- ベクトルストアのミックスイン
- search-documents.json 用の埋め込み生成ツール
- 埋め込みの有無を指定できる、search-documents.json からのベクトルストア生成ツール。新規作成、または既存のものへの追加/更新
- セマンティック検索 HTTP サーバーのルート
- チャット用 Vuejs コンポーネント — https://medium.com/@alen.ajam/building-a-simple-chat-app-with-vue-js-462c4a53c6ad を応用
- サイトとのチャット — 静的サイトとセマンティック検索コマンドの両方を提供し、OpenAI と Ollama を利用。GCP VM 上の Docker。
- モデルとのチャット
今後、Invocation フローに基づくエージェントも検討します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。