電子メールによる AI エージェントの迅速なセットアップ | → | ユーザーにとって最も簡単な方法でエージェントを導入する |
宛先、CC、および転送: 複数のエージェント | → | 簡素化されたトレーニング: メールで送信するだけ |
AI 用の強力なショートコード | → | すべての人のためのマルチエージェントのマルチステップコラボレーション |
電池付属、認証情報を追加するだけ | → | 電子メールクライアントとエージェントダッシュボードが含まれます |
ATAT を使用すると、エージェントにスーパーパワーを与えるシンプルなショートコードを使用して、電子メールで送信できる AI エージェントの迅速なセットアップが可能になります。
ソースコード https://github.com/semanticsean/ATAT
ロードマップ: プロジェクトへの貢献に興味がある方は、参加方法の詳細については貢献ガイドを参照してください。
v0.4 - ABE - A/B + 選挙投票が含まれます。 v0.3 - 初期リリース
例: 協力して短編小説を執筆する 3 人の AI エージェントのチームに電子メールを送信します。
1 人の AI エージェントにメールを送信し、3 つの行為 (3 つの API 呼び出し) でストーリーを書くように指示します。
このガイドでは、Replit での展開を手順を追って説明します。これは、展開が非常に簡単であるためです。このReplから始めてください。
ローカルまたは Github で使用するには、環境変数を取得するように呼び出しを変更する必要があります。
pip install openai==0.28.0
を使用します。{
"SMTP_SERVER": "",
"IMAP_SERVER": "",
"SMTP_PORT": "",
"SMTP_USERNAME": "",
"SMTP_PASSWORD": "",
"OPENAI_API_KEY": "",
"DOMAIN_NAME": "",
"会社名": ""
}
Google Workspace を使用する SMTP_PORT の場合は、ポート 587 を使用します。
SMTP_PASSWORD については、Google / Gmail を使用している場合は、2FA を必要とする APP PASSWORD である必要があります。
DOMAIN_NAME は、メール アドレスの @ の後に続くものである必要があります。たとえば、「acme.com」は「[email protected]」のようになります。
COMPANY_NAME は、「ACME Corp.」のように、書面に記載されているとおりにする必要があります。
Agent@ 電子メール アドレスの作成:これは履歴のない新しい電子メール アドレスである必要があります。
エージェント エイリアス: agents/agents.json
で、少なくとも 1 人のエージェントに少なくとも 1 つの電子メール エイリアスを割り当てます。残りはオプションであり、@@(エージェント名) ショートコードを使用して呼び出すことも、独自のエイリアスを受け取ることもできます。 @@ は、電子メール サーバーがエイリアスとしてサポートする数よりも多くのエージェントが必要な場合に役立ちます。たとえば、Google Workspace では 25 に制限されていますが、@@ ショートコードを通じてアクセスできる数百のエージェント モデルをデプロイできます。
テストに使用する電子メールについては、/tools/testing_emails.md を参照してください。
重要: ドメインや電子メール アドレスをホワイトリストに登録する必要がある場合があります。
ATAT で使用する新しいメールを作成します。既存のアカウントには接続しないでください。 ATAT は事後対応型であるため、履歴のインデックスを適切に作成していないと、意図しない電子メールが送信される可能性があります。 ATAT 専用の新しいアカウントを作成します。
ATAT は、電子メールに応答する AI エージェントをホストする電子メール クライアントです。そのため、AI エージェントに直接電子メールを送信したり、CC に送信したり、fw: 電子メールを送信したりできます。 ATAT は AI の使用を民主化するように設計されており、電子メール経由で操作を行い、数分で AI エージェント「会社」を迅速にセットアップできるようになります。つまり、トレーニングは、転送先または CC 先の新しい電子メールを提供するのと同じくらい簡単です。このアプローチでは、電子メール特有の遅さを利用して、思慮深く包括的な AI 応答を実現します。また、標準向けに「MoE」または「CoE」の考え方も開かれます。
電子メールのもう 1 つの強みは、速度が遅いことです。 @@ と !detail! で示されているように、ショートコード、マルチパス (マルチ API 呼び出し) コンポーネントを統合でき、すべての呼び出しを実行するのにかかる時間は、電子メールでは数分から数時間かかるのが普通です。
!detail
、 !summarize
、 !ff
などのショートコードを使用して複雑なタスクを簡素化します。new_agent.py
を使用して、詳細なペルソナと DALL-E で生成されたイメージを備えた新しいエージェントを生成します。
cards.py
簡単にアクセスできるようにすべてのエージェントのダッシュボードを表示する Flask サーバーを強化します。
高度なショートコード システムを使用して電子メールのやり取りを強化します。これらのショートコードは、電子メール コンテンツにシームレスに統合できるように設計されており、ATAT プラットフォーム内の特殊な機能をトリガーし、電子メールを介して直接エージェントの動的なエンゲージメントとコンテンツ操作を可能にします。各ショートコードの機能と使用法を調べて、電子メール通信で ATAT の可能性を最大限に活用します。
@@
を使用してエージェントと連携する@@
ショートコードを使用して複数のエージェントに同時に電子メールを送信し、複数のエージェントによる協調的な対応を促進します。この機能は、さまざまな AI ペルソナからの入力を必要とするシナリオでは非常に貴重です。@@(agent name)
または@@.creator
含め、その後に特定のエージェント ID または作成手順を含めます。このコマンドは、指定されたエージェントを応答プロセスに参加させるよう ATAT に指示します。電子メールのテスト
devatlas - 助成金申請者がスタートアップのピッチ資料を作成する際に答えなければならない最も重要な質問は何ですか?
@@(キャスター) どのスタートアップが好きですか?
@@(ノヴァ)どう思いますか?
@@(オリオン)どう思いますか?
@@(星雲)どう思いますか?
@@(アルタイル)どう思いますか?
@@.creator
を使用した動的なエージェントの作成@@.creator
ショートコードは新しいエージェント ペルソナを瞬時に生成し、進化する会話のニーズに適応するためのオンザフライのカスタマイズを提供します。@@.creator(Embody an agent...)
を実装します。 「Embody」が存在していることを確認してクリエイター機能を有効にし、ATAT に指示に基づいて新しいエージェント ペルソナを作成して導入するよう指示します。電子メールのテスト
新しいクリエイティブなプロジェクトに取り組んでおり、ロールプレイングが必要です。このエージェントをレンダリングして、以下の質問に答えてもらいます。
@@.creator(コミカルな吸血鬼の声で話すイルカと友達になるお茶目な吸血鬼を児童書風に具現化)!
ミスター・ヴァンパイア、プレイするお気に入りのゲームは何ですか?
Detail
を含む長い形式のコンテンツ生成リクエストのチャンク化Detail
ショートコードは、広範なテキスト ブロックを管理可能なセグメントに分割し、応答の処理と生成を最適化します。!detail_start!
で囲みます。そして!detail_stop!
マーカー。 ATAT は、効率的に処理できるようにコンテンツを自動的にセグメント化します。 「!split!」を使用します。 API 呼び出しを分割するか、マルチパスを使用します。!詳細_開始!はじめに: 2050 年になり、AI 主導の合成タイムトラベルが簡単に可能になります!分割!私たちは主人公を詳しく紹介します!分割!私たちは敵対者を詳しく紹介します!分割!主人公と敵対者の最初の対立が見られ、第一幕は終了します!分割!第 2 幕は、まだ言及されていないロマンチックな関心を持つ新しいプレイヤーから始まります。分割!第 2 幕には主要な衝突 !split! があります。クライマックスが起こる!スプリット!解決はまだ行われていません!分割!これで解決が行われました !detail_stop!
Summarize
によるコンテンツの要約Summarize
ショートコードは、詳細なコンテンツを短い概要に凝縮します。これは、概要の意図した焦点とスタイルに合わせて特定の修飾子を使用してカスタマイズできます。!summarize!
を使用してこの機能をトリガーします。 、必要に応じて修飾子を追加して、概要出力を調整します。(この機能は他の機能よりもさらにバグが多いです。)
スクリプトのテストについては、/tools/testing_emails.md を参照してください。長すぎてここには収まりません。
!summarize.json!
のような修飾子を使用します。 , !summarize.marketing!
、または!summarize.budget!
JSON 形式、マーケティング言語、予算重視のコンテンツなど、要件に合わせた概要の作成を ATAT に指示します。これらのショートコードを活用して電子メールのやり取りを合理化し、AI エージェントとの間で効率的かつ効果的なコミュニケーションを確保します。
ABE (A/B+Election) - エージェント ポーリング ツールの概要 ABE は A/B+Election の略で、意思決定プロセスから意見収集などに至るまで、さまざまなシナリオでインテリジェント エージェントのポーリングを容易にするように設計された洗練されたツールです。 Flask の基盤上に構築された ABE は、Web テクノロジーとシームレスに統合し、管理者と参加者の両方に動的でインタラクティブなエクスペリエンスを提供します。
機能 エージェント管理: それぞれが一意の識別子と属性を持つエージェントの名簿を簡単に管理します。 ABE では、カスタム キーワードや画像などのエージェントを詳細に指定して、ポーリング エクスペリエンスを向上させることができます。
動的ポーリング: カスタマイズされた質問と指示を使用して、エージェント間で A/B テストまたは選挙を実施します。この機能により、研究者や開発者はエージェントの好みや決定についての微妙な洞察を収集できます。
電子メール認証: ユーザー検証に電子メール確認を利用する安全な認証システム。これにより、承認された参加者のみがポーリング プロセスに参加できるようになります。
セッション管理: ABE を使用すると、セッションが一意に識別および管理され、データの収集と分析に対する構造化されたアプローチが可能になります。各セッションは、特定の質問、指示、エージェントの選択に合わせてカスタマイズできます。
インタラクティブ ダッシュボード: Web ベースのダッシュボードは、投票の設定、エージェントの選択の視覚化、およびセッションの開始のための一元的なインターフェイスを提供します。ダッシュボードによりユーザー エクスペリエンスが向上し、投票プロセスのナビゲートが容易になります。
カスタマイズ可能な出力: ポーリング結果に基づいて出力を生成およびカスタマイズします。 ABE は、幅広い分析ニーズに応え、詳細なレポート、視覚化、要約の作成をサポートします。
セキュリティとプライバシー: セキュリティを念頭に置いて構築された ABE は、ユーザー データを保護し、ポーリング プロセスの整合性を確保するためのベスト プラクティスを実装しています。セッションとデータ送信は、プライバシーと機密性を考慮して安全に処理されます。
セットアップとインストールの開始: まず、Python 環境をセットアップし、Flask を他の必要な依存関係とともにインストールします。 ABE では、下位互換性のために Python 3.6 以降が必要です。
エージェントの構成: エージェントの情報 (名前、属性、画像など) を Agents.json に入力します。このファイルは、投票に参加するエージェントのデータベースとして機能します。
アプリケーションを起動します: abe.py を実行して Flask サーバーを起動します。指定された URL に移動して、ABE ダッシュボードにアクセスします。
投票の作成: ダッシュボードを使用して、質問、関与するエージェント、カスタム指示などの投票を設定します。各アンケートは、特定の調査や意思決定のニーズに合わせて調整できます。
回答の配布と収集: 投票が公開されると、承認された参加者がプラットフォームに参加して、回答や意見を提供できます。 ABE は、このデータの収集と整理をリアルタイムで管理します。
結果の分析: 投票が完了すると、ABE はダッシュボードを通じて結果の分析を容易にします。データをエクスポートし、レポートを生成し、集約された応答から洞察を導き出します。
使用例 ABE の多用途フレームワークにより、次のようなさまざまなアプリケーションに適しています。
市場調査: 代表的なエージェントのグループにアンケートを行うことで、消費者の好みを理解し、市場の傾向を予測します。意思決定サポート: エージェントの意見を収集および分析することで、組織内の意思決定プロセスを促進します。学術研究: エージェントベースのモデルとシミュレーションに関する研究と実験を実施します。結論 ABE は、さまざまなコンテキストにわたってエージェントをポーリングするための強力で柔軟なプラットフォームを提供します。 ABE は、使いやすさと堅牢な機能セットを組み合わせることで、ユーザーが革新的な方法でデータを収集、分析、活用できるようにします。調査、意思決定、市場分析のいずれの場合でも、ABE はエージェントの集合知を活用するために必要なツールを提供します。
contribute.md
にリストされている既知の問題や機能強化に対処するための貢献を歓迎します。ATAT は MIT ライセンスに基づいてライセンスされています。詳細については、LICENSE ファイルを参照してください。
@@ および ATAT は Semantic Life の商標であり、著作権は 2024 にあります。全著作権所有です。
Google / Google Workspace(TM) Google。
psql -h ホスト名 -U ユーザー名 -d データベース名 SET idle_in_transaction_session_timeout = '15min'; psql -d $DB_NAME -U $DB_USER -W $DB_PASS flask db init # 移行ディレクトリのセットアップに初回のみ必要 flask db merge -m "追加された PageView モデル" flask db upgrade
Semantic Life - AI エージェント ダッシュボード
Semantic Life - AI エージェント ダッシュボードへようこそ!この強力なツールを使用すると、使いやすい Web インターフェイスで AI エージェントを作成、管理し、対話することができます。エージェントの作成、時間枠管理、会議の組織、アンケートの実施などの機能により、AI の力を活用して貴重な洞察を獲得し、情報に基づいた意思決定を行うことができます。特徴
Agent Creation: Easily create new AI agents by providing a name, job title, and description. The system generates a detailed agent persona, including keywords, relationships, and an image prompt, using the OpenAI GPT-4 model. It also generates a profile picture using the DALL-E model.
Timeframe Management: Create different scenarios or contexts for your AI agents by establishing timeframes. You can select specific agents to include in a timeframe and provide instructions to modify their attributes using the OpenAI API. The modified agents are saved in a new JSON file for easy access.
Meeting Organization: Organize meetings with your AI agents to gather insights and conduct surveys. Select a timeframe, choose the agents to include, and provide a name for the meeting. The system creates a survey form where you can define questions and gather responses from the agents using the OpenAI API.
Survey Results: View the results of your surveys in a user-friendly interface. The responses from each agent are displayed alongside their profile information. You can analyze the responses, compare insights from different agents, and make informed decisions based on the survey results.
Public Sharing: Make your survey results publicly accessible by generating a unique public URL. Anyone with the URL can view the survey results without authentication, allowing you to share insights with a broader audience.
前提条件
Semantic Life - AI Agent ダッシュボードを実行する前に、次のものが揃っていることを確認してください。
Python 3.x installed
OpenAI API key
Required Python packages (listed in requirements.txt)
インストール
Clone the repository:
バッシュ
git clone https://github.com/your-username/semantic-life.git
Install the required Python packages:
バッシュ
pip install -r 要件.txt
Set up the environment variables:
OPENAI_API_KEY: Your OpenAI API key
DATABASE_URL: URL for your database (e.g., PostgreSQL)
FLASK_KEY: Secret key for Flask sessions
DOMAIN_NAME: Domain name for your application
Run the database migrations:
バッシュ
フラスコデータベースのアップグレード
Start the application:
バッシュ
Python app.py
Access the application in your web browser at http://localhost:5000.
使用法
Register a new account or log in to an existing account.
Create new agents by providing a name, job title, and description.
Establish timeframes and select agents to include. Provide instructions to modify the agents' attributes.
Organize meetings by selecting a timeframe, choosing agents, and providing a name.
Conduct surveys by defining questions and gathering responses from the agents.
View survey results and analyze the insights provided by the AI agents.
Optionally, make survey results publicly accessible by generating a unique public URL.
貢献する
Semantic Life - AI Agent ダッシュボードへの貢献は大歓迎です。問題が発生した場合、または改善の提案がある場合は、問題をオープンするか、GitHub リポジトリでプル リクエストを送信してください。ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています。接触
お問い合わせやフィードバックがございましたら、[email protected] までご連絡ください。
Semantic Life - AI Agent ダッシュボードを楽しんで使用して、AI エージェントの可能性を解き放ち、貴重な洞察を獲得してください。
ターミナルまたはコマンド プロンプトを開き、プロジェクト ディレクトリに移動します。次のコマンドを実行して Flask シェルを起動します:flas
フラスコの殻
モデルからインポート ユーザー、データベース
user = User.query.filter_by(username='username').first()
ユーザートークン残高 = 1000
db.session.commit()
print(user.token_balance)
出口()
フラスコ データベース 移行 -m "ユーザー クレジットの追加" フラスコ データベース アップグレード
pip インストール 'itsdangerous<2.0'
確かに!別の AI 用のアプリの技術的な説明は次のとおりです。
Semantic Life アプリは、Python の Flask Web フレームワークを使用して構築された Web ベースのアプリケーションです。これにより、ユーザーは AI エージェントの作成と管理、調査の実施、ユーザー定義の指示に基づいた時間枠の生成を行うことができます。
アプリはブループリント アーキテクチャに従っており、アプリケーションのさまざまな部分が auth_blueprint、survey_blueprint、dashboard_blueprint、profile_blueprint などの個別のブループリントに分割されています。各ブループリントは、その目的に関連する特定のルートと機能を処理します。
このアプリは PostgreSQL データベースを使用して、ユーザー情報、エージェント データ、アンケート、および期間を保存します。データベース モデルは、データベースと対話するための ORM (オブジェクト リレーショナル マッピング) 機能を提供する拡張機能である Flask-SQLAlchemy を使用して定義されます。
ユーザー認証は、ユーザー登録、ログイン、セッション管理を処理する Flask-Login を使用して実装されます。ユーザーはアカウントを登録し、ログインし、プロフィール情報を更新できます。
このアプリは OpenAI API と統合され、エージェント データを生成し、アンケートを実施します。 abe_gpt モジュールを使用してエージェント データを処理し、ユーザー定義の指示に基づいて応答を生成します。 abe_gpt モジュールは OpenAI API と通信して、エージェント データの生成、エージェント属性の変更、アンケート回答の生成を行います。
このアプリを使用すると、ユーザーは AI エージェントを作成および管理できます。ユーザーは、ベース エージェントの追加、新しいエージェントの作成、エージェント属性の編集、およびエージェントの削除を行うことができます。エージェント データはデータベースに保存され、必要に応じて取得および更新できます。
ユーザーはアンケートを作成したり、AI エージェントとのミーティングを実施したりすることもできます。アンケートは、エージェントを選択し、質問を定義することによって作成されます。このアプリは abe_gpt モジュールを使用して、選択したエージェントとユーザー定義の指示に基づいてアンケート回答を生成します。調査結果はデータベースに保存され、ユーザーが閲覧することができます。
タイムフレームはアプリのもう 1 つの機能であり、ユーザーは特定の指示とコンテキストに基づいてベース エージェントの修正バージョンを作成できます。ユーザーはエージェントを選択し、指示を提供し、変更されたエージェントで新しいタイムフレームを生成できます。時間枠データはデータベースに保存され、ユーザーがアクセスして管理できます。
このアプリは、さまざまな Flask 拡張機能とライブラリを利用して機能を強化します。 Flask-Images は画像の処理と処理に使用されますが、現在のコードでの使用法をクリーンアップして修正する必要があります。 Flask-Migrate はデータベースの移行に使用され、データベース スキーマの変更を簡単に管理できます。
アプリのフロントエンドは HTML テンプレートを使用して構築され、Tailwind CSS でスタイル設定されます。テンプレートは、動的コンテンツ生成を可能にするテンプレート エンジンである Jinja2 を使用してレンダリングされます。 JavaScript は、クライアント側の対話性と AJAX リクエストに使用されます。
例外を適切にキャッチして処理するために、エラー処理とログがアプリ全体に実装されています。アプリは、デバッグと監視の目的で、関連情報とエラーをログに記録します。
全体として、Semantic Life アプリは、ユーザーが AI エージェントを作成、管理、対話し、調査を実施し、ユーザー定義の指示に基づいてタイムフレームを生成するためのプラットフォームを提供します。 Flask Web フレームワーク、PostgreSQL データベース、OpenAI API を利用してその機能を提供します。
テーブルスキーマ |テーブル名 |列名 |データ型
---------------+--------------+--------------+- ---------------------------- 公開 |アレンビックバージョン |バージョン番号 |キャラクター変化公開 |会議 | ID |整数パブリック |会議 |名前 |キャラクター変化公開 |会議 |ユーザーID |整数パブリック |会議 |会議データ | json パブリック |会議 |は_パブリック |ブール値パブリック |会議 |公開URL |キャラクター変化公開 |ページビュー | ID |整数パブリック |ページビュー |ページ |キャラクター変化公開 |ページビュー |タイムスタンプ |タイムゾーンなしのタイムスタンプ public |アンケート | ID |整数パブリック |調査 |名前 |キャラクター変化公開 |アンケート |ユーザーID |整数パブリック |アンケート |は_パブリック |ブール値パブリック |アンケート |公開URL |キャラクター変化公開 |調査 |調査データ | json パブリック |時間枠 | ID |整数パブリック |時間枠 |名前 |キャラクター変化公開 |時間枠 |ユーザーID |整数パブリック |時間枠 |エージェントデータ | json パブリック |ユーザー | ID |整数パブリック |ユーザー |ユーザー名 |キャラクター変化公開 |ユーザー |メール |キャラクター変化公開 |ユーザー |パスワードハッシュ |キャラクター変化公開 |ユーザー |エージェントデータ | json パブリック |ユーザー |画像データ | json パブリック |ユーザー |クレジット |整数
ユーザーからクレジットを選択 WHERE username = 'the_username';
SELECT テーブルスキーマ、テーブル名、列名、データ型 FROM 情報スキーマ.columns WHERE テーブルスキーマ NOT IN ('情報スキーマ', 'pg_catalog') ORDER BY テーブルスキーマ、テーブル名、順序位置;
----------
check images
SELECT
agent.value->>'id' AS agent_id,
agent.value->>'photo_path' AS photo_path,
LENGTH(COALESCE(u.images_data->>(agent.value->>'photo_path'), '')) AS image_length,
CASE
WHEN LENGTH(COALESCE(u.images_data->>(agent.value->>'photo_path'), '')) > 0
THEN 'Present'
ELSE 'Missing'
END AS image_status
FROM
"user" u,
json_array_elements(u.agents_data) AS agent
WHERE
u.id = 12;
admin.py スタンドアロンでクレジットを追加
SELECT m.id AS ミーティング ID、m.name AS ミーティング名、m.agents AS ミーティング エージェント、m.questions AS ミーティング質問、m.answers AS ミーティングアンサー、m.is_public AS ミーティング is_public、m.public_url AS ミーティングパブリック URL、u.id AS ユーザー ID、u .username AS user_username、u.email AS user_email FROM ミーティング AS m JOIN "user" AS u ON m.user_id = u.id WHERE m.id = 24;
タイムフレームエージェントを参照
SELECT t.id AS timeframe_id、t.name AS timeframe_name、json_array_length(t.agents_data) AS num_agents、CASE WHEN t.agents_data IS NULL THEN false ELSE true END AS Agents_populated、CASE WHEN u.images_data IS NULL THEN false ELSE true END AS画像_入力済み、 json_agg(t.agents_data->>'id') AS エージェント名 FROM タイムフレーム t JOIN "user" u ON t.user_id = u.id GROUP BY t.id, t.name, t.agents_data, u.images_data;
SELECT u.id AS user_id, u.username, CASE WHEN LENGTH(t.image_data) > 0 THEN '0以外' ELSE '0' END AS image_data_status, CASE WHEN LENGTH(t.thumbnail_image_data) > 0 THEN '0以外' ELSE 'ゼロ' END AS summnail_image_data_status FROM "user" u LEFT JOIN タイムフレーム t ON t.user_id = u.id WHERE u.username = 'realityinspector82';