SuperDuperは、主要なデータベースと統合して、独自のデータにエンド2エンドのAI-DATAワークフローとアプリケーションを構築するためのPythonベースのフレームワークです。 LLMS、ベクトル検索、RAG、マルチモダリティ、および古典的なAIおよびMLパラダイムなどの最新のテクノロジーとテクニックをサポートしています。
開発者は、展開、オーケストレーション、バージョンの詳細などをアウトソースする構成および宣言的オブジェクトを構築することにより、Superduperエンジンにさらに多くのオブジェクトを構築することにより、Superduperを活用できます。これにより、開発者はMLOP、ETLパイプライン、モデル展開、データ移行、同期の実装を完全に避けることができます。
Superduperの使用は単に「ケープ」です。データに接続し、そのデータに任意のAIを適用し、任意のデータにアプリケーションをパッケージ化して再利用し、結果のAI出力とデータのAI-Databaseクエリと予測を実行します。
接続する
db = superduper ( 'mongodb|postgres|mysql|sqlite|duckdb|snowflake://<your-db-uri>' )
適用する
listener = MyLLM ( 'self_hosted_llm' , architecture = 'llama-3.2' , postprocess = my_postprocess ). to_listener ( 'documents' , key = 'txt' )
db . apply ( listener )
パッケージ
application = Application ( 'my-analysis-app' , components = [ listener , vector_index ])
template = Template ( 'my-analysis' , component = app , substitutions = { 'documents' : 'table' })
template . export ( 'my-analysis' )
実行する
query = db [ 'documents' ]. like ({ 'txt' , 'Tell me about Superduper' }, vector_index = 'my-index' ). select ()
query . execute ()
Superduperはどこでも実行される場合があります。また、Superduperワークフローを大規模に生産するためのエンタープライズプラットフォームの詳細については、お問い合わせください。
Superduperは、膨大な範囲のAI技術とパラダイムをサポートするのに十分な柔軟性があります。 plugins
およびtemplates
ディレクトリには、さまざまな機能があります。特に、AIとデータが連続的かつ緊密に統合された方法で対話する必要がある場合、Superduperは優れています。ここにいくつかの実例例があります。これをテンプレートから試すことができます。
熱心な開発者とつながり、Superduperオープンソースで利用できる驚くべき事前に構築されたテンプレートとワークフローのレパートリーに貢献したいと考えています。貢献してリクエストを引き出すことで、ディスカッションに参加してください!
Component
)を構築します。これは、プリミティブとベースクラスの単純なセットを使用して、データバックエンドのデータと密接に統合します。Component
インスタンスをAI-DATA Application
にラッピングするより大きなユニットを構築するTemplate
を使用して、バトルテストされたComponent
、 Model
、 Application
インスタンスを再利用して、開発者が難しいAI実装から簡単に開始することができますApplication
の系統とバージョン化を簡単に作成し、AIの世界からデータベージング/タイプDataの世界へのエレガントなセグウェイを作成するために、透明で人間が読みにくい、ウェブフレンドリーで高度に携帯用のシリアル化プロトコル「Superduper-Protocol」を作成します。Model
インスタンスの出力とプライマリデータバックエンドデータの組み合わせを使用してクエリを実行して、ベクトル検索、RAGなどのすべてのフレーバーを含む最新世代のAI-DATAアプリケーションを有効にします。 膨大な柔軟性
エコシステムからのPythonベースのAIモデル、APIを、最も確立された戦闘テスト済みのデータベースと倉庫と組み合わせます。 Snowflake、Mongodb、Postgres、MySQL、SQL Server、SQLite、BigQuery、Clickhouseはすべてサポートされています。
MLOPを避けるシームレスな統合
宣言的および構成的なスーパーダーパーコンポーネントを使用して、MLOPSを実装する必要性を削除します。
コードの再利用性と移植性を促進します
パッケージコンポーネントテンプレートとして、コミュニティと組織のAIアプリケーションを再利用および通信するために必要な重要なパラメーターを公開します。
コスト削減
専用のベクトルデータベースを必要とせずに、ベクトル検索と埋め込み生成を実装します。大規模なコード変更なしに、自己ホストモデルとAPIホストモデルを簡単に切り替えます。
追加の努力なしで生産に移行します
SuperDuperのREST APIでは、追加の開発作業なしにインストールされたモデルを提供できます。エンタープライズグレードのスケーラビリティについては、Superduperで作成されたセキュリティ、セキュリティ、ロギング、アプリケーション、ワークフローをスーパーダーパーエンタープライズのワンクリックで展開できます。
main
ブランチの新しいものは何ですか? 0.4.0
の今後のリリースに取り組んでいます。このリリースには:
@trigger
を使用して、 Component
初期計算とデータ依存の計算をトリガーする方法を改良しましたこれにより、確立されたModel
、 Listener
、 VectorIndex
に加えて、大量のComponent
タイプが可能になります。
CDC
(Change-Data-Capture)ベースクラスを作成しましたこれにより、開発者は着信データの変更に反応するさまざまな機能を作成できます。
Template
の概念を開発しましたTemplate
インスタンスとして保存されたコンポーネントにより、ユーザーは、既に展開およびテストされたComponent
とApplication
実装、代替データソースで、および運用要件に対応するために切り替えられた重要なパラメーターを使用して簡単に再展開できます。
Template
実装を追加しましたこれらのTemplate
インスタンスは、単純な単一コマンドでSuperDuperで適用される場合があります
superduper apply <template> '{"variable_1": "value_1", "variable_2": ...}'
または:
from superduper import templates
app = template ( variable_1 = 'value_1' , variable_2 = 'value_2' , ...)
db . apply ( app )
これで、ユーザーインターフェイスでComponent
、 Application
、およびTemplate
インスタンスを表示し、 QueryTemplate
インスタンスを使用してクエリを実行して、RESTサーバーに対して直接実行できます。
superduper start
インストール:
pip install superduper-framework
利用可能な事前に構築されたテンプレートを表示します:
superduper ls
事前に構築されたテンプレートを接続して適用します。
(注:事前に構築されたテンプレートは、Python 3.10によってのみサポートされています。Python3.11+で他のすべての機能を使用できます。 )
# e.g. 'mongodb://localhost:27017/test_db'
SUPERDUPER_DATA_BACKEND= < your-db-uri > superduper apply simple_rag
結果のクエリまたは予測を実行します。
from superduper import superduper
db = superduper ( '<your-db-uri>' ) # e.g. 'mongodb://localhost:27017/test_db'
db [ 'rag' ]. predict ( 'Tell me about superduper' )
Superduperインターフェイスのすべてを表示および監視します。コマンドラインから:
superduper start
これを行った後、独自のコンポーネント、アプリケーション、テンプレートを構築する準備ができました!
既存のテンプレートを独自の開発環境にコピーすることから始めてください。
superduper bootstrap < template_name > --destination templates/my-template
build.ipynb
ノートブックを編集して、独自の機能を構築します。
問題、質問、コメント、またはアイデアがある場合:
[email protected]
にメールしてください。貢献するには多くの方法があり、コードの作成に限定されません。次のようなすべての貢献を歓迎します。
詳細については、寄付ガイドをご覧ください。
これらの素晴らしい人々に感謝します:
Superduperはオープンソースであり、コミュニティの努力を目的としており、あなたのサポートと熱意なしには不可能です。 Apache 2.0ライセンスの条件の下で配布されます。このプロジェクトへの貢献は、同じ規定の対象となります。
私たちは、私たちがフルタイムで参加するために解決しようとしている問題に投資している素敵な人々を探しています。ここで埋めようとしている役割を見つけてください!