Morph

Morph 1.0

Morph Beta 3の新機能

2024-07-25
三橋 啓多
三橋 啓多
共同創業者 COO

Morphの新しいベータ版である Beta 3 が配信されました。これは、招待されたベータユーザーに提供されています。

この記事では、Beta 3のアップデート内容を紹介します。

ファイルシステムの導入

SQLとPythonを自由に組み合わせて、データを取り扱う環境を提供する上で、どのようにしてツールの柔軟性を実現するかということは重要な問題でした。

Beta 2までのMorphでは、ローコードツールのような設計で、ユーザーは決められた場所に決められたルールに則ってコードを書く必要がありました。

これには二つの問題があります。

一つ目は、ユーザーがすでに持っているSQLやPythonの知識やベストプラクティスを持ち込めないということです。ローコードツールはルールを強制してくるために、多くのプログラマーやテックに熱心なビジネスプロフェッショナルたちが、ターミナルとコードエディターで行っていることをそのまま持ち込むことができないのです。

二つ目は、プロダクト側の不都合として、新たなユーザーのニーズを満たすためには機能開発が必ず必要になってしまうという点です。新たな機能を開発するためには、データベースを設計し、バックエンドを開発し、フロントエンドを開発する必要があります。非常に長い開発期間が必要になってしまいます。

これを解決するために、私たちはMorphの機能をフレームワークとして再設計し、プロダクトにはローカルコンピューターのようなファイルシステムを導入しました。

これにより、ユーザーはプログラミングの真の美徳の一つである無限の可能性と究極の柔軟性を手にいれました。

ファイルシステムに関連するアップデートには以下のようなものがあります。

  • ユーザーはあらゆる形式の静的ファイルをインプットにすることができます。これまではcsvファイルのみでした。
  • データ変換やチャート生成、レポート生成のアウトプットが静的ファイル、主にはHTMLファイルやCSVとして出力されます。
  • アウトプットの公開は出力された静的ファイルへのアクセス制限として管理されます。

Canvasをコードで管理

Morphの中心的な機能であるデータキャンバスも、内部的にはコードで管理されます。

Morph Beta 3では、 morph.yaml というYAMLファイルを参照してデータキャンバスを実行します。また、データキャンバス上で行われた変更は各スクリプトファイルと morph.yaml に反映されます。

これにより、複雑な機能を備えるデータキャンバスの安定性を改善し、長期的な運用をサポートします。

近い将来の展望

ここまでのアップデート内容を読んでいただければ、私たちが何を目指しているか予想がつくと思います。

Morphはコマンドラインから動作可能なプログラミングフレームワークとして再設計されました。

Morphの内部では、フレームワークを実行することで様々な機能を実現しています。

今後数ヶ月の間で、私たちはまずフレームワークの一部をオープンソースにし、ローカル開発環境でもMorphの便利な機能を利用できるようにしようと考えています。

Morph AIのアップデート

Morph Beta 3では、Morph AIにもアップデートが加えられました。Morph AIはユーザーの同僚として常に画面上からアクセスができ、ユーザーが開いているファイルやページに応じたモードを提供します。現時点で、以下のモードが実装されています。

データパイプラインの構築

Morph AIのデータパイプライン構築は、パイプラインの設計から実装、実行結果の評価まで一連の作業を代わりに行ってくれます。ただ集計結果を取得するだけではなく、集計プロセスも全てCanvas上に記録を残してくれます。そのため、最終結果の利用にとどまらず、構築されたパイプラインを再利用にも便利です。

ユーザーからの使用するテーブルと自然言語でのリクエストを受け取ると以下のプロセスを自動的に実行をします

  1. プランニング: ユーザーからのリクエストを受け取って、ユーザーの所望するデータパイプラインを構築するための計画をします。複数のsql, pythonによる処理が必要な場合にも多段階のステップに分けて計画を立ててくれます。もし、要望した目的と立てた計画に齟齬がある場合は計画の修正依頼も行うことができます。
  2. コーディング・実行: 計画に基づいて、sql, pythonを実装します。MorphAIは、データスキーマを理解をしているためMorphのフレームワークに最適なコードを実装することが可能です。実装されたコードは即時にMorphのクラウド環境を利用して実行されます。
  3. コード修正: コード実行時にエラーが発生した場合は、エラーメッセージを解釈して自動的にコードの修正を行い再実行を行います。コードの修正は複数回行なわれ、実行が成功するまで自律的に修正をしてくれます。

コードの生成と修正

Morph AIのコード生成・修正機能はsql, pythonエディターでの実装をサポートしてくれる機能を提供します。活用しようとしているデータスキーマの理解をしているため、高い精度の実装サポートを行います。また、利用しているデータベース種類やMorphのクラウド上でインストールされているPythonパッケージを考慮に入れてコードを生成をします。

以下のような機能を提供しています。

  • コード生成: 既存のコード全体を考慮に入れて、ユーザーの要望に合うような新しいコード全体を提案します。
  • コードの修正: コードの一部を指定して指定した部分に関してのコードのみに関して修正案を提案します。プロンプトとして表現をするよりもコードの一部をプロンプトとして渡した方が指示がしやすい場合に効果的です。
  • エラーの修正: 実行エラーが発生した場合に発生した箇所とエラーメッセージを元に変更内容を提案してくれます。

データ Q&A

Morph AIはユーザーのデータに関する質問への回答を提供します。ユーザーがデータに関しての質問と問い合わせるテーブルを指定することで、Morph AIが自動的に必要な前処理や集計を行い回答を生成します。Canvas上に作業のプロセスが残ることもないので、一時的に集計結果の回答が欲しい場合に効果的に使用をすることができます。

以下のようなケースで、簡単に回答を得ることができます。

  1. データの集計結果を取得する: 「直近半年間のARRを教えて」「LPへの訪問者が最も多いチャネルを教えて」などの蓄積されているデータをSQL集計をした結果を用いて回答することが可能です。これらのビジネス上の質問への回答を得るには必要なテーブルを指定して質問をするだけです。
  2. 可視化の結果を元に回答を得る: 「直近のコスト増加率の異常があるものを教えて」のようにデータを視覚的に捉えて変化を検知するような要望にも対応が可能です。質問への回答のプロセスの中でグラフを作成して視覚的に判断をするため、回答の根拠になったグラフに関しても同時に確認することができます。

今後のロードマップ

今回のアップデートで、Morphは抜本的な改革を終え、パプリックアスセスに向けて進んでいきます。今後は、さらに具体的なユースケースをサポートする機能・コンテンツを提供していく予定です。今後のアップデートの最新情報を得るには、私たちのソーシャルメディアをフォローしていただくか、Discordコミュニティに参加してください。