DUICUO

AIがVS Codeの操作を自動化し、自然言語でさまざまな設定を処理。Alibaba Tongyi Intelligent Computing Labより | オープンソース

国産AIがプログラミングソフトを直接操作することを学習しました!

Alibaba の Tongyi Intelligent Computing Lab は、 SmartVscodeと呼ばれる VSCode 専用の AI アシスタント ツールをリリースしました。

自然言語コマンドはプログラミングに役立つだけでなく、さまざまな構成を制御および変更することもできます。

現在、プラグインと基盤となるフレームワークは両方ともオープンソースであり、VS Code 拡張機能マーケットプレイスで入手できます。

VS Codeで大規模モデルを操作する

SmartVscode の目標は、大規模なモデルが VS Code を完全に制御できるようにすることであり、主に 2 つのコア機能を備えています。

自然言語でVS Codeを簡単に制御

ユーザーは自然言語コマンドを使用して VS Code を簡単に制御および変更できます。

たとえば、見つけにくいページを開いたり、特定の構成設定をすばやく正確に調整したりします。

複雑な操作手順を覚える必要はありません。SmartVscode に何をしたいかを伝えるだけで、SmartVscode が自動的に実行してくれます。

たとえば、ユーザーが変更したいスタイルを入力すると、SmartVscode は構成を見つけて変更する手順を自動的に完了します。

Python でクイックソート コードを記述する場合、SmartVscode を使用すると、Python プラグインがインストールされているかどうかの確認、対応する Python インタープリターの選択、クイックソート コードを記述するファイルを開く、対応するコードの実行という一連のタスクを自動化できます。

VS Codeでアプリケーションを開発する

SmartVscode を使用すると、VS Code 内の大規模なモデルを完全に制御できるだけでなく、VS Code の豊富な組み込み機能を使用してさまざまなアプリケーションを開発することもできます。

つまり、大きなモデルは「頭脳」として機能し、VS Code は「ツール」として機能し、SmartVscode は 2 つを接続する橋の役割を果たします。

ユーザーは、強力なツール VS Code の助けを借りて、自然言語による記述を使用して大規模なモデルでさまざまな想像力豊かなアプリケーションを直接実現できるようになります。

たとえば、ユーザーが三目並べゲームの説明を入力すると、SmartVscode はファイルの作成、コードの記述、プログラムの実行という手順を自動的に完了します。

SmartVscodeプラグインの使い方

この SmartVscode プラグインも非常に使いやすく、必要なのは 3 つのステップだけです。

  • VS Code 拡張機能マーケットプレイスから SmartVscode プラグインを検索してダウンロードします。
  • VSCode の左側のサイドバーにある SmartVscode ダイアログ ウィンドウを開き、設定に一般化モデルまたは OpenAI モデル構成を入力します。
  • ダイアログ ボックスにタスクの説明を入力し、SmartVscode が実行されて結果が表示されるまで待ちます。

基盤となるフレームワークもオープンソースです。

SmartVscode の背後には、Tongyi Intelligent Computing Lab によって独自に開発された App-Controller フレームワークがあります。

App-Controllerは、大規模モデルとエージェントを基盤とした革新的なAPIオーケストレーションフレームワークです。大規模モデルの高度な推論機能を活用し、アプリケーションのAPIインターフェースを統合・調整します。

これにより、アプリケーションは自然言語ベースの指示に応答して実行できるようになり、ユーザー エクスペリエンスが大幅に向上し、アプリケーションとユーザー間の対話プロセスが簡素化されます。

下の図は、App-Controllerがアプリケーションのインタラクティブ性をどのように向上させるかを示しています。左半分は、タスクを完了するための従来の質疑応答と実行フローを示しており、右半分はApp-Controller導入後のタスク完了フローを示しています。

従来のプロセスでは、ユーザーがアプリケーションでタスクを完了する必要があるものの、その方法がわからない場合、まず大規模なモデルを参照して操作手順を確認し、その後、指示に従ってステップごとにタスクを完了する必要がありました。
App-Controller の導入により、ユーザーは自然言語を使用してアプリケーションに要件を入力するだけで実行結果を取得できるようになります。

基本的な原則は、アプリケーションが App-Controller の助けを借りて大規模なモデルを使用してユーザーの意図を理解し、実行する必要があるコマンドを調整することです。

アプリケーション ベンダーは、アプリに通信インターフェイスを実装し、サポートされている API のリストを App-Controller に送信するだけで、フレームワークはユーザーの指示を完了するために必要な最適な API 呼び出し順序を独自に探索して識別できます。

さらに、高度に抽象化され柔軟な HTTP インターフェースを備えているため、アプリケーションの相互接続性がさらに容易になります。

App-Controller には次の特性があります。

  • インテリジェント API シーケンス オーケストレーション: ユーザーが入力した自然言語コマンドを、ユーザーのニーズを満たすために段階的に実行できる一連の使用可能なアプリケーション API にインテリジェントに変換します。
  • 簡単な統合: 開発者はアプリケーションの API リストを登録するだけで、複雑なコーディングを必要とせずに、App-Controller がその後の識別とオーケストレーション作業を自動的に処理します。
  • 非同期および同時処理: 最新の非同期テクノロジーを採用することで、App-Controller は同時リクエストのサポートを強化し、複数のユーザーやタスクがある高負荷環境でもアプリケーションの効率性と応答性を維持できるようにします。
  • 強力な API インターフェース: App-Controller は、ユーザーフレンドリーで堅牢な HTTP API インターフェースを備えて設計されており、アプリケーションとのやり取りがシームレスかつ無料になり、データ転送の高効率性とセキュリティが確保されます。
  • 複数の大規模モデルをサポート: App-Controller はさまざまな大規模言語モデルと適切に統合できるため、開発者はニーズとシナリオに応じて最適なモデルを選択し、最適な自然言語理解および処理機能を実現できます。
  • 広範なドキュメント リソース: App-Controller は、クイック スタート ガイド、API リファレンス マニュアル、ベスト プラクティスの例、よくある質問などの包括的なドキュメントを提供しており、開発者が簡単に使い始めて、フレームワークのすべての機能を最大限に活用できるように支援します。
  • タスクフローの永続性:タスクフローはデータベースに永続的に保存できます。この機能により、タスクの監視と管理が容易になり、開発者はいつでもタスクのステータスと履歴を確認できます。
  • インテリジェントなキャッシュメカニズム:高度なキャッシュ技術により、App-Controllerはパフォーマンスと応答速度を最適化できます。頻繁に要求されるリクエストの結果をインテリジェントに保存することで、外部の大規模モデルへの呼び出し回数を削減します(近日公開予定)。
  • トークンの最適化: App-Controller の最適化アルゴリズムは、メッセージの可用性をインテリジェントに評価し、トークンの使用を減らし、API 呼び出しによって発生するオーバーヘッドを削減します (近日公開予定)。

技術的な観点から見ると、App-Controller プロジェクトには次の 5 つのコア機能があります。

  • ユーザーのコラボレーション: ユーザーは、App-Controller によって生成されたタスク プランに基づいて決定や修正を行うことができます。
  • 強化されたドキュメント分析: アプリケーション ドキュメントと利用可能な API ドキュメントを統合することで、タスク分析の深さと精度が向上します。
  • インテリジェントな情報収集: システムは、ユーザーがタスクを完了する際に必要な関連情報をすばやく検索して要約できます。
  • インテリジェント API シーケンス オーケストレーション: ユーザーの特定のタスク要件に基づいて利用可能な API 呼び出しシーケンスを迅速にオーケストレーションし、作業効率を向上させます。
  • 非同期および同時処理モジュール: asyncio フレームワークを採用することで、App-Controller は同時リクエストを処理する能力を強化し、複数のユーザーまたは複数のタスクがある高負荷環境でもアプリケーションが高い効率を維持できるようにします。

ドキュメント分析拡張モジュール

ドキュメント分析拡張モジュールは、オフライン フェーズで重要な役割を果たし、大規模なモデルがアプリケーションのドキュメントと利用可能な API ドキュメントをより適切に理解して活用できるようにし、タスク実行の精度と効率を向上させます。
App-Controller を使用すると、ユーザーは、大規模なモデルがタスクを完了できるように、次の 2 種類の重要なコンテンツをアップロードできます。

  • アプリケーションドキュメント:アプリケーションの構造、基本定義、そして様々なタスクを実行するためのアプリケーションの操作方法について詳細に説明します。情報の多様性と可読性を確保するために、複数のテキスト形式(TXT、JSONなど)をサポートしています。
  • 利用可能な API ドキュメント: アプリケーション内の App-Controller によって呼び出すことができるすべての API をリストし、大規模なモデルの正確な呼び出しを可能にするための詳細な API 関数の説明とパラメーター情報を提供します。
    大規模モデルが各 API の機能と使用方法を正確に理解できるように、システムでは、名前、詳細な説明、パラメータ タイプ、パラメータの説明、必須パラメータなど、API 情報の必須フィールドを指定します。

検索速度と精度を向上させるために、システムはユーザーがアップロードしたアプリケーション ドキュメントと利用可能な API ドキュメントをセグメントに事前処理します。

各知識フラグメントは、高度なテキスト ベクトル モデル (一般化テキスト ベクトル モデルなど) を通じてテキスト コンテンツを高次元ベクトルに変換し、深い意味情報を取得します。

最後に、これらのベクトルに基づいて、高速な類似性検索を実現するための効率的なインデックス構造が構築されます。

効率的なベクトルインデックス構造を活用することで、システムは大規模な知識ベース内でユーザータスクに関連する知識フラグメントと利用可能な API ドキュメントを迅速に見つけることができ、情報検索の応答速度と精度が大幅に向上します。

インテリジェント情報収集モジュール


インテリジェント情報収集モジュールは、ユーザーが特定のタスクを入力するとすぐに起動し、タスクの実行に必要なすべての関連情報を網羅的に収集する役割を担います。このモジュールの具体的な機能とプロセスは以下のとおりです。

  • 要件のベクトル化:まず、ユーザーが入力したタスク要件を高度なテキストベクトルモデルを用いて処理し、自然言語による記述を高次元セマンティックベクトルに変換します。このステップにより、App-Controllerはタスクの根底にある意図と詳細を理解できるようになります。
  • 知識フラグメントの取得:生成されたテキストベクトルに基づいて、App-Controllerは事前に構築されたドキュメント知識ベースからタスク関連の知識コンテンツを取得します。このコンテンツには、機能関連の定義、タスク操作手順、その他の情報が含まれます。
  • APIの発見と確認:システムは、インテリジェントエージェントを活用し、キーワード生成と最も類似したAPI検索戦略を通じて、タスクに関連するAPIを最初に特定します。その後、大規模モデルの分析能力を活用し、複数ラウンドの反復メカニズムを用いて、最適なAPIを段階的に確認・フィルタリングすることで、タスク実行の精度と効率性を確保します。
  • アプリケーション環境情報クエリ:タスク要件に基づき、システムは関連するアプリケーション環境情報収集APIを呼び出し、システム構成、ユーザー権限、ネットワークステータスなど、必要なアプリケーション環境パラメータを照会・取得します。これらの情報は、タスクの計画と実行に不可欠です。
  • 情報の統合と送信: すべての情報を収集した後、インテリジェント情報収集モジュールは統合データをインテリジェント API シーケンス オーケストレーション モジュールに送信し、後続のタスクの計画と実行のための包括的な基本サポートを提供します。

インテリジェントAPIシーケンス配置モジュール

インテリジェント API シーケンス オーケストレーション モジュールは、収集された情報に基づいてタスク実行の API 呼び出し順序を計画および最適化し、タスクが効率的かつ正確に完了することを保証します。

具体的には、このモジュールは次の機能をサポートします。

  • 計画:App-Cpntrollerは、インテリジェントエージェント、インテリジェント情報収集モジュールから提供される知識フラグメント、利用可能なAPI、および類似のタスク実行フローを組み合わせて、予備的なタスク実行計画を策定します。この計画には、各ステップで呼び出されるAPIとそのパラメータ設定の詳細が含まれます。
  • ユーザーレビューとフィードバック:初期計画が生成されると、システムはそれをユーザーにレビューのために送信します。ユーザーは、実際のニーズに基づいて修正を提案することで、計画の実現可能性と期待される目標への適合性を確認できます。
  • 計画の反復的な最適化:ユーザーからのフィードバックに基づいて、システムは計画を修正・最適化します。このプロセスは、ユーザーが最終計画を承認するまで、複数回の反復を伴う場合があります。
  • タスク実行:計画が確定すると、段階的に実行されます。システムは、事前に設定されたAPI呼び出し順序に従って各タスクを順次完了します。各ステップの結果はリアルタイムでフィードバックされるため、プロセス全体の透明性と制御性が確保されます。
  • フィードバックと調整メカニズム:タスク実行中、システムはリアルタイムのフィードバック情報に基づいて、後続のAPI呼び出し計画を動的に調整します。異常事態が発生した場合、システムはタイムリーに計画を修正し、タスクが正常に完了するか安全に終了することを保証します。

能力の限界と継続的な改善

AppController はインテリジェント制御とマルチアプリケーション拡張において大きな可能性を示していますが、Tongyi Intelligent Computing Lab チームは、現在のいくつかの制限も指摘しています。

最初の制限は、大規模モデルの推論能力です。

現在の大規模言語モデルの推論機能の制限により、SmartVscode は特定の複雑なタスクや微妙なニュアンスのあるタスクを処理するときにエラーを起こす可能性があります。

これらのエラーには、ユーザー指示の誤解や不正確な操作の実行などが含まれます。

研究チームは、エラーの頻度を減らし、操作の精度を向上させるために、モデルのトレーニングと命令解析アルゴリズムを継続的に最適化しています。

2つ目は、モデルの推論速度です。

現在、モデルの推論速度がリアルタイム処理のニーズを満たせない場合があり、タスク実行時に遅延が発生することがあります。この問題に対処するため…

研究チームはモデルの応答速度を最適化しており、より効率的なアルゴリズムとより強力なキャッシュメカニズムを通じて将来のバージョンでより高速な推論と応答を実現することを目指しています。

最後に、VS Code 機能のサポートには依然として制限があります。

現在、SmartVscode は基本的に VS Code の一般的な基本機能をカバーしていますが、一部の複雑な機能や高度な機能のサポートはまだ開発中です。

Tongyi Intelligent Computing Lab チームは、ユーザーが SmartVscode を最大限に活用して開発効率を向上できるように、VS Code のより複雑な機能のサポートを積極的に拡張しています。

プロジェクトアドレス: App-Controller: https://github.com/alibaba/app-controller
Smart-Vscode プラグイン: https://github.com/alibaba/smart-vscode-extension