【fabric】複雑なタスクをAIが自動化、人間の能力を拡張するオープンソースAIを使ってみた

fabric タスク AI 自動化 オープンソース

WEELメディア事業部LLMライターのゆうやです。

fabricは、誰でも人生や仕事を向上させるために使用できる、オープンソースAIフレームワークです。

このフレームワークは様々なタスクをパターン分けしており、文章の要約や動画の抽出といったタスクを簡単に実行できるほか、それらのパターンを組み合わせて高度なタスクをこなすこともできます。

以下の動画は実際に動作している様子です。

引用元:https://github.com/danielmiessler/fabric?tab=readme-ov-file#fabric-is-an-open-source-framework-for-augmenting-humans-using-ai

fabricのGithubのスター数は、4,500を超えており、大注目されています。

今回は、fabricの概要や使ってみた感想をお伝えします。是非最後までご覧ください!

なお弊社では、生成AIツール開発についての無料相談を承っています。こちらからお気軽にご相談ください。
無料相談で話を聞いてみる

目次

fabricの概要

fabricは、誰でも人生や仕事を向上させるために使用できる、オープンソースAIフレームワークです。

このフレームワークは様々なタスクをパターン分けしており、文章の要約や動画の抽出といったタスクを簡単に実行できるほか、それらのパターンを組み合わせて高度なタスクをこなすこともできます。

Fabricの機能を分かりやすく説明すると以下のようになります。

  • パターン(Patterns): 特定のタスクを実行するためのAIの指示やコマンドの集まりです。例えば、YouTubeビデオから興味深い部分を抽出したり、学術論文を要約したりするためのパターンがあります。これらは、特定の活動に合わせてカスタマイズされたAIの「レシピ」と考えることができます。
  • スティッチ(Stitch): 複数のパターンを組み合わせて、より複雑なタスクを達成するプロセスです。例えば、あるドキュメントを要約してから、その要約を基にしてAIアートを生成するといった流れを自動化することができます。
  • ミル(Mill): サーバー側の機能で、パターンをホストし、管理する役割を担います。これにより、個々のユーザーや開発者が自分たちのパターンをクラウド上で実行し、共有することが可能になります。
  • ルーム(Looms): クライアント側のスクリプトやアプリケーションで、特定のパターンを呼び出して実行します。これにより、ユーザーは自分のデバイスやプラットフォーム上で直接、AIの力を利用することができます。

パターンについてはあらかじめ/patternsディレクトリに用意されており、ここから自分の目的に合ったものを選択して実行できます。

また、独自のミルを構築するためのコードも提供されています。

fabricはタスクの実行にChatGPTを使用しているため、正確性も確保されています。

Fabricの利点は、AIを活用して日常のタスクを自動化できることで、技術的な知識がない人でもAIを活用することが可能になり、より効率的でクリエイティブな作業が実現できるようになります​。

なお、スマホアプリを自動的に操作できるAIフレームワークについて詳しく知りたい方は、下記の記事を合わせてご確認ください。
【AppAgent】人間のようにスマホを自動で操る最強の生成AIを使ってみた

fabricのライセンス

fabricは、MITライセンスで提供されています。そのため、商用利用のみならず、ほぼすべての用途で利用可能です。

利用用途可否
商用利用⭕️
改変⭕️
配布⭕️
特許使用⭕️
私的使用⭕️
引用元:https://github.com/danielmiessler/fabric/blob/main/LICENSE.txt

fabricの使い方

fabricのgithubリポジトリにあるクイックスタートを参考に、fubricを導入していきます。

fabric/quickstart

まずは、fabricプロジェクトを配置する場所に移動します。

cd /where/you/keep/code

次に、Githubのリポジトリをクローンします。

git clone git@github.com:danielmiessler/fabric.git

クローンが完了したら、Fabricの/client ディレクトリに入ります。

cd fabric/client

ここで依存関係をインストールします。

pip3 install -r requirements.txt

次に、fabricパスをシェルに追加します。

# Tell your shell how to find the `fabric` client
echo 'alias fabric="/the/path/to/fabric/client" >> .bashrc'
# Example of ~/.zshrc or ~/.bashrc
alias fabric="~/Development/fabric/client/fabric"

シェルを再起動します。

# Make sure you can
echo 'alias fabric="/the/path/to/fabric/client" >> .bashrc'
# Example
echo 'alias fabric="~/Development/fabric/client/fabric" >> .zshrc'

これで設定は完了で、続いて使用方法です。

まずはfabric -hでオプションを確認しましょう。

fabric [-h] [--text TEXT] [--copy] [--output [OUTPUT]] [--stream] [--list]
              [--update] [--pattern PATTERN] [--setup]

An open-source framework for augmenting humans using AI.

options:
  -h, --help            show this help message and exit
  --text TEXT, -t TEXT  Text to extract summary from
  --copy, -c            Copy the response to the clipboard
  --output [OUTPUT], -o [OUTPUT]
                        Save the response to a file
  --stream, -s          Use this option if you want to see the results in realtime.
                        NOTE: You will not be able to pipe the output into another
                        command.
  --list, -l            List available patterns
  --update, -u          Update patterns
  --pattern PATTERN, -p PATTERN
                        The pattern (prompt) to use
  --setup               Set up your fabric instance

使用するには、クライアントをセットアップする必要があります。

fabric --setup

ここでOpenAI API キーの入力が求められるので入力してください。

これでfabricを使用する準備ができました。

早速使ってみましょう!

fabricを実際に使ってみた

以下のコマンドを実行してみます。

pbpaste | fabric --pattern summarize

これはfabricの記事を要約させたものです。

# ONE SENTENCE SUMMARY:

Fabric is a command-line tool that simplifies the process of executing commands on remote or local servers.

# MAIN POINTS:

1. Fabric is a Python library and command-line tool for streamlining the use of SSH for application deployment.
2. It provides a basic suite of operations for executing local or remote shell commands and uploading/downloading files.
3. Fabric is designed to use SSH and other protocol libraries for its underlying transport.
4. It provides a high-level interface for managing and executing shell commands on remote servers.
5. Fabric allows users to perform tasks such as starting/stopping services, rebooting systems, and managing packages.
6. It can be used to automate repetitive tasks, reducing the risk of human error.
7. Fabric supports parallel execution, which can significantly speed up administrative tasks.
8. It is built on top of Invoke, another Python task execution library, providing a more user-friendly interface.
9. Fabric can be extended with plugins to add additional functionality.
10. It is open-source and actively maintained, with a large community of users and contributors.

# TAKEAWAYS:

1. Fabric is a powerful tool for automating server management tasks, reducing the need for manual intervention.
2. It provides a user-friendly interface for executing shell commands on remote servers.
3. The ability to extend Fabric with plugins allows for customization and added functionality.
4. Its support for parallel execution can significantly speed up administrative tasks.
5. Being open-source and actively maintained, it has a large community that can provide support and contribute to its development.

一文の要約:

Fabric は、リモートまたはローカル サーバーでコマンドを実行するプロセスを簡素化するコマンド ライン ツールです。

主要なポイント:

  1. Fabric は、アプリケーション展開での SSH の使用を効率化するための Python ライブラリおよびコマンドライン ツールです。
  2. ローカルまたはリモートのシェル コマンドを実行し、ファイルをアップロード/ダウンロードするための基本的な一連の操作を提供します。
  3. ファブリックは、基盤となるトランスポートに SSH およびその他のプロトコル ライブラリを使用するように設計されています。
  4. リモート サーバー上でシェル コマンドを管理および実行するための高レベル インターフェイスを提供します。
  5. ファブリックを使用すると、ユーザーはサービスの開始/停止、システムの再起動、パッケージの管理などのタスクを実行できます。
  6. 反復的なタスクを自動化するために使用でき、人的エラーのリスクを軽減します。
  7. ファブリックは並列実行をサポートしているため、管理タスクを大幅に高速化できます。
  8. これは、別の Python タスク実行ライブラリである Invoke の上に構築されており、よりユーザーフレンドリーなインターフェイスを提供します。
  9. ファブリックはプラグインで拡張して機能を追加できます。
  10. これはオープンソースであり、ユーザーや貢献者の大規模なコミュニティによって積極的に保守されています。

要点:

  1. ファブリックは、サーバー管理タスクを自動化するための強力なツールであり、手動介入の必要性を減らします。
  2. リモート サーバー上でシェル コマンドを実行するための使いやすいインターフェイスを提供します。
  3. プラグインを使用して Fabric を拡張できるため、カスタマイズや機能の追加が可能になります。
  4. 並列実行のサポートにより、管理タスクが大幅に高速化されます。
  5. オープンソースであり、積極的に保守されているため、サポートを提供し、その開発に貢献できる大規模なコミュニティがあります。

fabricについて非常に分かりやすく要約してくれています。

ここからはさらにfabricを使ってみようと思います。

fabricの推しポイントである効率的でクリエイティブなタスクの実行は本当なのか?

ここからは、fabricのパターン機能を組み合わせてタスクを実行するスティッチ機能を使ってみたいと思います。

スティッチ機能を使用する最も簡単な方法は、以下のようにパターンを複数個実行する方法です。

pbpaste | fabric --pattern extract_wisdom | fabric --pattern summarize

それでは早速タスクを実行させてみましょう。

要約+ロゴ作成

以下のfabricの概要や機能を紹介した文章を要約して、それをもとにロゴを生成してもらいます。

Fabric is an open-source framework designed to augment human capabilities using AI. Its primary goal is to enhance efficiency and effectiveness in everyday life and work processes. With Fabric, users can automate routine tasks or build AI assistants to solve complex problems.
At the heart of Fabric are “Patterns” and “Stitches”. Patterns are modules of AI functions that execute specific tasks, such as summarizing texts, generating images, or recognizing speech. Stitches, on the other hand, combine multiple patterns to automate more complex operations. For instance, one could summarize an article and then generate related images based on that summary.
Fabric offers flexible configuration, allowing users to customize patterns according to their needs. It operates through a cloud-based “Mill” and client-side “Looms”. The Mill serves as the server-side function, providing an environment for executing patterns, while Looms are client applications on the user’s device, accessing patterns provided by the Mill.
Using Fabric requires some technical knowledge, but its documentation is comprehensive, making it accessible for developers. The code is available on a public GitHub repository, where developers can customize and extend the framework.
This framework can be applied across a wide range of uses, from enhancing personal productivity to streamlining business processes. Tasks like marketing automation, customer support enhancement, and research material organization can be efficiently handled with Fabric.
Fabric is a powerful tool for leveraging AI technology to enrich daily life and improve work productivity. Its open-source nature invites not only technicians and researchers but also general users interested in AI to participate in the development and improvement of this cutting-edge framework. Through Fabric, the full potential of AI can be harnessed to better our lives and society.

和訳:
Fabric は、AI を使用して人間の能力を強化するように設計されたオープンソース フレームワークです。 その主な目標は、日常生活と作業プロセスの効率と有効性を高めることです。 Fabric を使用すると、ユーザーは日常的なタスクを自動化したり、AI アシスタントを構築して複雑な問題を解決したりできます。
ファブリックの中心となるのは「柄」と「ステッチ」です。 パターンは、テキストの要約、画像の生成、音声認識などの特定のタスクを実行する AI 機能のモジュールです。 一方、ステッチは複数のパターンを組み合わせて、より複雑な操作を自動化します。 たとえば、記事を要約し、その要約に基づいて関連画像を生成できます。
Fabric は柔軟な構成を提供するため、ユーザーはニーズに応じてパターンをカスタマイズできます。 クラウドベースの「ミル」とクライアント側の「織機」を通じて動作します。 Mill はサーバー側の機能として機能し、パターンを実行するための環境を提供します。一方、Loom はユーザーのデバイス上のクライアント アプリケーションであり、Mill によって提供されるパターンにアクセスします。
Fabric を使用するにはある程度の技術的知識が必要ですが、そのドキュメントは包括的であり、開発者にとってアクセスしやすいものになっています。 コードはパブリック GitHub リポジトリで入手でき、開発者はそこでフレームワークをカスタマイズおよび拡張できます。
このフレームワークは、個人の生産性向上からビジネスプロセスの合理化まで、幅広い用途に適用できます。 マーケティングオートメーション、顧客サポートの強化、研究資料の整理などのタスクは、Fabric を使用して効率的に処理できます。
Fabric は、AI テクノロジーを活用して日常生活を豊かにし、仕事の生産性を向上させるための強力なツールです。 そのオープンソースの性質により、技術者や研究者だけでなく、AI に興味のある一般ユーザーもこの最先端のフレームワークの開発と改善に参加することができます。 Fabric を通じて、AI の可能性を最大限に活用して、私たちの生活と社会をより良くすることができます。

以下のコマンドを実行します。

pbpaste | fabric --pattern summarize | fabric --pattern create_logo

結果はこのようになりました。

A minimalist vector graphic logo featuring a stylized, interconnected pattern of threads forming a fabric. The threads should represent the AI’s tasks, with thicker threads symbolizing complex tasks and thinner ones for simpler tasks.
The overall shape should subtly hint at a cloud and a loom to represent the cloud-based ‘Mill’ and client-side ‘Looms’.

和訳:
ミニマルなベクターグラフィックのロゴ。糸はAIのタスクを表し、太い糸は複雑なタスクを、細い糸は単純なタスクを象徴する。全体の形は、クラウドベースの “ミル “とクライアントサイドの “織機 “を表すために、雲と織機をさりげなくほのめかすこと。

結果は、要約はしてくれているようですが、私の予想に反し、ロゴの作成はしてくれず、生成するイメージの詳細なプロンプトを生成してくれました。

実際に画像は生成されませんでしたが、これをそのままDALL-E3に入力すると以下のようなロゴが得られました。

Stitichの機能を使えば、イメージの作成ができると書いてありましたが、何かしらの工夫を凝らす必要があるのかもしれません。

論文作成支援

続いて、論文を作成する際に参照する参考文献のアブストラクトをいくつか出力させてみたいと思います。

以下のプロンプトを入力します。

I would like to prepare a paper on LLM.
I need three papers that support the theme and three papers that oppose the theme, and I need to create an abstract for the paper that references both of these papers.

和訳:
LLMに関する論文を作成したい。
テーマをサポートしてくれる論文と反対の論文を3つずつ出して、その両方の論文を参照して論文のアブストラクトを作成して

今回は、ちょうど良いパターンがなかったので、以下のコマンドを実行します。

pbpaste | fabric

結果はこのようになりました。

Title: A Comprehensive Analysis of the Master of Laws (LLM) Program: A Dual Perspective

Abstract:
This paper aims to provide an in-depth analysis of the Master of Laws (LLM) program, examining its merits and demerits through a comprehensive review of existing literature. The study will draw from various scholarly articles that both support and oppose the LLM program. Supporters argue that the LLM program provides an opportunity for specialization, enhances career prospects, and promotes a global perspective on law (Smith, 2015; Johnson & Lee, 2017; Davis, 2019). Critics, however, contend that the program is overly expensive, does not significantly improve job prospects, and may not provide a comprehensive understanding of foreign legal systems (Brown, 2016; Thompson & Miller, 2018; Williams, 2020). This paper will critically analyze these perspectives to provide a balanced view of the LLM program.

Supporting Papers:
1. Smith, J. (2015). “The Value of an LLM Degree: A Law Professional’s Passport to Success.”
2. Johnson, R., & Lee, K. (2017). “Specialization in Law: The Role of the LLM Program.”
3. Davis, M. (2019). “Promoting Global Legal Perspectives: The Impact of LLM Programs.”

Opposing Papers:
1. Brown, T. (2016). “The LLM Program: A Cost-Benefit Analysis.”
2. Thompson, S., & Miller, R. (2018). “Job Prospects after LLM: A Reality Check.”
3. Williams, J. (2020). “Understanding Foreign Legal Systems: Does an LLM Suffice?”


和訳:
タイトル: 法学修士 (LLM) プログラムの包括的分析: 二重の視点

抽象的な:
この論文は、既存の文献の包括的なレビューを通じて法学修士(LLM)プログラムの長所と短所を調査し、そのプログラムの詳細な分析を提供することを目的としています。 この研究は、LLM プログラムを支持するものと反対するもの両方のさまざまな学術論文に基づいて行われます。 支持者は、LLM プログラムが専門化の機会を提供し、キャリアの可能性を高め、法律に対するグローバルな視点を促進すると主張しています (Smith, 2015; Johnson & Lee, 2017; Davis, 2019)。 しかし、批評家たちは、このプログラムは費用がかかりすぎ、雇用の見通しを大きく改善するものではなく、外国の法制度の包括的な理解を提供しない可能性があると主張している(Brown, 2016; Thompson & Miller, 2018; Williams, 2020)。 この文書では、LLM プログラムのバランスの取れた見方を提供するために、これらの観点を批判的に分析します。

サポートペーパー:
1. Smith, J. (2015). “The Value of an LLM Degree: A Law Professional’s Passport to Success.”
2.Johnson, R., & Lee, K. (2017). “Specialization in Law: The Role of the LLM Program.”
3.Davis, M. (2019). “Promoting Global Legal Perspectives: The Impact of LLM Programs.”

反対論文:
1. Brown, T. (2016). “The LLM Program: A Cost-Benefit Analysis.”
2. Thompson, S., & Miller, R. (2018). “Job Prospects after LLM: A Reality Check.”
3. Williams, J. (2020). “Understanding Foreign Legal Systems: Does an LLM Suffice?”

このように、LLMに関する論文のテーマを考えてくれた上で、サポート論文と反対論文を探してくれるとともに、それらを参照して、論文のアブストラクトを詳細に生成してくれました。

私が期待していた通りの結果を出力してくれました。

このように、fabricは一度導入してしまえば非常に簡単かつ効率的にタスクを実行してくれます。

今後も継続的にアップデートが行われるようなので、新しい機能が追加された際はまた紹介します。

なお、ユーザーの目標を達成するために必要なタスクを自動生成して実行するBabyAGIについて詳しく知りたい方は、下記の記事を合わせてご確認ください。
BabyAGIとは?日本語での使い方やAutoGPT・ChatGPTとの違い、利用事例を解説

fabricは複雑なタスクを自動で実行してくれるAI

fabricは、複雑なタスクを自動化してくれるオープンソースのAIフレームワークです。

さまざまな作業を分類し、テキストの要約やビデオの要点を抽出するなどのシンプルなタスクから、より複雑なタスクまで実行可能です。

Fabricの利点は、AIを活用して日常のタスクを自動化できることで、技術的な知識がない人でもAIを活用することが可能になり、より効率的でクリエイティブな作業が実現できるようになります​。

fabricがさらに進化すれば、将来的に日常生活のありとあらゆるタスクをAIが解決してくれるようになり、まさにSF映画のような世界観になるかもしれませんね!

最後に

いかがだったでしょうか?

弊社では

・マーケティングやエンジニアリングなどの専門知識を学習させたAI社員の開発
・要件定義・業務フロー作成を80%自動化できる自律型AIエージェントの開発
・生成AIとRPAを組み合わせた業務自動化ツールの開発
・社内人事業務を99%自動化できるAIツールの開発
ハルシネーション対策AIツールの開発
自社専用のAIチャットボットの開発

などの開発実績がございます。

まずは、「無料相談」にてご相談を承っておりますので、ご興味がある方はぜひご連絡ください。

➡︎生成AIを使った業務効率化、生成AIツールの開発について相談をしてみる。

生成AIを社内で活用していきたい方へ
無料相談

「生成AIを社内で活用したい」「生成AIの事業をやっていきたい」という方に向けて、生成AI社内セミナー・勉強会をさせていただいております。

セミナー内容や料金については、ご相談ください。

また、サービス紹介資料もご用意しておりますので、併せてご確認ください。

投稿者

  • ゆうや

    ロボット工学専攻。 大学時代は、対話ロボットのための画像キャプションの自動生成について研究。 趣味は、サウナとドライブ。

  • URLをコピーしました!
  • URLをコピーしました!
目次