通过电子邮件快速设置 AI 代理 | → | 以最简单的方式为您的用户部署代理 |
收件人、抄送和转发:多个代理 | → | 简化培训:只需发送电子邮件 |
强大的 AI 简码 | → | 面向所有人的多代理多步骤协作 |
包含电池,只需添加凭据 | → | 包括电子邮件客户端和代理仪表板 |
ATAT 可以快速设置您可以通过电子邮件发送的 AI 代理 - 使用简单的短代码即可赋予代理超能力。
源代码 https://github.com/semanticsean/ATAT
路线图:对于那些有兴趣为该项目做出贡献的人,请参阅我们的贡献指南,了解如何参与的详细信息。
v0.4 - 包括 ABE - A/B + 选举投票。 v0.3 - 初始版本
示例:向由三名人工智能代理组成的团队发送电子邮件,他们合作撰写短篇小说:
给一位 AI 代理发送电子邮件,指示他分三步写一个故事(三个 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 的应用程序密码。
DOMAIN_NAME 应该是电子邮件地址中 @ 后面的内容。例如,“acme.com”如“[email protected]”。
COMPANY_NAME 应该是书面形式,例如“ACME Corp.”
创建代理@电子邮件地址:这必须是没有历史记录的新电子邮件地址。
代理别名:在agents/agents.json
中为至少一名代理分配至少一个电子邮件别名。其余的都是可选的,可以使用@@(代理名称)短代码调用,或者可以接收自己的别名。如果您想要的代理数量多于电子邮件服务器支持的别名数量,@@ 会很有帮助。例如,Google Workspace 限制为 25 个,但您可以部署数百个可通过 @@ 短代码访问的代理模型。
请参阅 /tools/testing_emails.md 以获取用于测试的电子邮件。
重要提示:您可能需要将域和/或电子邮件地址列入白名单。
创建一个新电子邮件以与 ATAT 一起使用。不要连接现有帐户。 ATAT 是反应性的,如果您没有正确索引历史记录,您可能会发送意外的电子邮件。创建一个专供 ATAT 使用的新帐户。
ATAT 是一个电子邮件客户端,托管回复电子邮件的 AI 代理,因此您可以直接向他们发送电子邮件、抄送他们或转发:电子邮件给他们。 ATAT 旨在使人工智能的使用民主化,允许在几分钟内快速设置人工智能代理“公司”,并通过电子邮件进行指导。这意味着培训就像提供一封新电子邮件转发或抄送一样简单。这种方法利用电子邮件固有的缓慢性来进行深思熟虑、全面的人工智能响应。它还为普通人打开了“MoE”或“CoE”思维。
电子邮件的另一个优点是速度慢。正如 @@ 和 !detail! 中所演示的那样可以集成短代码、多通道(多 API 调用)组件,并且运行所有调用所需的时间(无论是几分钟甚至几小时)对于电子邮件来说都是正常的。
!detail
、 !summarize
和!ff
等短代码简化复杂的任务。利用new_agent.py
生成具有详细角色和 DALL-E 生成图像的新代理。
cards.py
为 Flask 服务器提供支持,展示所有代理的仪表板以方便访问。
使用我们先进的简码系统增强您的电子邮件交互。这些短代码专为无缝集成到电子邮件内容而设计,可触发 ATAT 平台内的专门功能,从而直接通过电子邮件实现动态代理参与和内容操作。探索每个短代码的功能和用法,以充分利用 ATAT 的电子邮件通信潜力。
@@
与代理互动@@
短代码同时向多个代理发送电子邮件,从而促进多代理协作响应。对于需要不同人工智能角色输入的场景来说,此功能非常宝贵。@@(agent name)
或@@.creator
,后跟特定的代理标识符或创建说明。此命令提示 ATAT 让指定代理参与响应过程。测试电子邮件
Devatlas - 资助申请者在撰写初创公司宣传材料时要回答的最重要的问题是什么?
@@(castor) 你喜欢什么创业公司?
@@(Nova) 你觉得怎么样?
@@(猎户座) 你觉得怎么样?
@@(星云)你觉得怎么样?
@@(Altair) 你觉得怎么样?
@@.creator
创建动态代理@@.creator
短代码可立即生成新的代理角色,提供即时定制以适应不断变化的对话需求。@@.creator(Embody an agent...)
。确保存在“体现”以激活创建者功能,指示 ATAT 根据您的指示制作并引入新的特工角色。测试电子邮件
我正在开展一个新的创意项目,需要一些角色扮演。请提供此代理并让它回答以下问题。
@@.creator(以儿童读物风格体现一个顽皮的吸血鬼,他与海豚是朋友,并用滑稽的吸血鬼声音说话。)!
吸血鬼先生,你最喜欢玩什么游戏?
Detail
分块长格式内容生成请求Detail
短代码将大量文本块分解为可管理的片段,优化响应的处理和生成。!detail_start!
之间和!detail_stop!
标记。 ATAT 自动对内容进行分段以实现高效处理。使用“!分割!”拆分 API 调用/参与多通道。!detail_start!简介:现在是 2050 年,人工智能驱动的合成时间旅行很容易成为可能!分裂!我们详细地见到了我们的主角!分裂!我们详细地见到了我们的对手!分裂!我们看到主角和反派之间的第一次冲突,第一幕结束!分裂!第二幕以一个新玩家开始,一个尚未被提及的浪漫对象!分裂!第二幕有一个主要的冲突!分裂!高潮发生!分裂!决议还没有发生!分裂!现在解决了!detail_stop!
Summarize
总结内容Summarize
短代码将详细内容压缩为简短摘要,可通过特定修饰符进行自定义,以适合摘要的预期重点和风格。!summarize!
触发此功能,根据需要添加修饰符以细化摘要输出。(这个功能比其他功能更容易出错。)
请参阅 /tools/testing_emails.md 用于测试脚本 - 太长,不适合放在这里。
!summarize.json!
等修饰符, !summarize.marketing!
,或!summarize.budget!
指导 ATAT 制作符合您要求的摘要,无论是 JSON 格式、营销语言还是以预算为重点的内容。利用这些短代码来简化您的电子邮件交互,确保与 AI 代理之间的高效且有效的通信。
ABE (A/B+Election) - 代理轮询工具概述 ABE 代表 A/B+Election,是一种复杂的工具,旨在促进各种场景中智能代理的轮询,从决策过程到意见收集等。 ABE 建立在 Flask 的基础上,与 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 许可证获得许可。有关详细信息,请参阅许可证文件。
@@ 和 ATAT 是 Semantic Life 的商标,版权所有 2024。保留所有权利。
谷歌 / Google Workspace (TM) 谷歌。
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 migrate -m "Added PageView model" Flask db Upgrade
语义生活 - AI 代理仪表板
欢迎来到语义生活 - AI 代理仪表板!这个强大的工具允许您在用户友好的 Web 界面中创建、管理 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 Dashboard 之前,请确保您具备以下条件:
Python 3.x installed
OpenAI API key
Required Python packages (listed in requirements.txt)
安装
Clone the repository:
巴什
git 克隆 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:
巴什
蟒蛇应用程序.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.
贡献
欢迎为语义生活 - AI 代理仪表板做出贡献!如果您遇到任何问题或有改进建议,请在 GitHub 存储库上提出问题或提交拉取请求。执照
该项目已获得 MIT 许可证的许可。接触
如有任何疑问或反馈,请通过 [email protected] 联系我们。
享受使用 Semantic Life - AI 代理仪表板来释放 AI 代理的潜力并获得宝贵的见解!
打开终端或命令提示符并导航到您的项目目录。运行以下命令启动 Flask shell:flas
烧瓶壳
从模型导入用户,数据库
user = User.query.filter_by(username='用户名').first()
用户.token_balance = 1000
db.session.commit()
打印(用户.token_balance)
出口()
flask db migrate -m“添加用户积分”flask db 升级
pip install 'itsdangerous<2.0'
当然!以下是另一个 AI 应用程序的技术描述:
Semantic Life 应用程序是一个基于 Web 的应用程序,使用 Python 中的 Flask Web 框架构建。它允许用户创建和管理人工智能代理、进行调查并根据用户定义的指令生成时间范围。
该应用程序遵循蓝图架构,其中应用程序的不同部分被分为单独的蓝图,例如 auth_blueprint、survey_blueprint、dashboard_blueprint 和 profile_blueprint。每个蓝图处理与其目的相关的特定路线和功能。
该应用程序使用 PostgreSQL 数据库来存储用户信息、代理数据、调查和时间范围。数据库模型是使用 Flask-SQLAlchemy 定义的,该扩展提供用于与数据库交互的 ORM(对象关系映射)功能。
用户身份验证是使用 Flask-Login 实现的,它处理用户注册、登录和会话管理。用户可以注册帐户、登录并更新个人资料信息。
该应用程序与 OpenAI API 集成以生成代理数据并进行调查。它使用 abe_gpt 模块来处理代理数据并根据用户定义的指令生成响应。 abe_gpt 模块与 OpenAI API 通信以生成代理数据、修改代理属性并生成调查响应。
该应用程序允许用户创建和管理人工智能代理。用户可以添加基本代理、创建新代理、编辑代理属性和删除代理。代理数据存储在数据库中,可以根据需要检索和更新。
用户还可以创建调查并与人工智能代理举行会议。调查是通过选择代理和定义问题来创建的。该应用程序使用 abe_gpt 模块根据所选代理和用户定义的指令生成调查响应。调查结果存储在数据库中,可供用户查看。
时间范围是该应用程序的另一个功能,允许用户根据特定的说明和上下文创建基本代理的修改版本。用户可以选择代理、提供说明并使用修改后的代理生成新的时间范围。时间范围数据存储在数据库中,可由用户访问和管理。
该应用程序利用各种 Flask 扩展和库来增强其功能。 Flask-Images 用于图像处理和处理,尽管它在当前代码中的使用需要清理和修复。 Flask-Migrate 用于数据库迁移,可以轻松管理数据库架构更改。
该应用程序的前端是使用 HTML 模板构建的,并使用 Tailwind CSS 进行样式设置。这些模板使用 Jinja2 进行渲染,Jinja2 是一个允许动态内容生成的模板引擎。 JavaScript 用于客户端交互和 AJAX 请求。
错误处理和日志记录在整个应用程序中实现,以优雅地捕获和处理异常。该应用程序会记录相关信息和错误,以用于调试和监控目的。
总体而言,Semantic Life 应用程序为用户提供了一个平台,用于创建、管理人工智能代理并与之交互、进行调查并根据用户定义的指令生成时间范围。它利用 Flask Web 框架、PostgreSQL 数据库和 OpenAI API 来提供其功能。
表模式 |表名 |列名 |数据类型
--------------+-----------------+----------------+- ---------------------------- 公众 | alembic_版本 |版本号 |性格各异的公众|会议|编号 |公共整数 |会议|名称 |性格各异的公众|会议|用户 ID |公共整数 |会议|会议数据 | json 公共 |会议|是_公共 |布尔公共 |会议|公共网址 |性格各异的公众|页面浏览量 |编号 |公共整数 |页面浏览量 |页 |性格各异的公众|页面浏览量 |时间戳|没有时区的时间戳 public |调查|编号 |公共整数 |调查|名称 |性格各异的公众|调查|用户 ID |公共整数 |调查|是_公共 |布尔公共 |调查|公共网址 |性格各异的公众|调查|调查数据 | json 公共 |时间范围 |编号 |公共整数 |时间范围 |名称 |性格各异的公众|时间范围 |用户 ID |公共整数 |时间范围 |代理数据 | json 公共 |用户 |编号 |公共整数 |用户 |用户名 |性格各异的公众|用户 |电子邮件 |性格各异的公众|用户 |密码哈希 |性格各异的公众|用户 |代理数据 | json 公共 |用户 |图像数据 | json 公共 |用户 |学分|整数
从用户中选择积分,其中用户名 = 'the_username';
SELECT table_schema、table_name、column_name、data_type FROM information_schema.columns WHERE table_schema NOT IN ('information_schema'、'pg_catalog') ORDER BY table_schema、table_name、ordinal_position;
----------
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.问题 AS 会议_问题、m.answers AS 会议_答案、m.is_public AS 会议_is_public、m.public_url AS 会议_public_url、u.id AS user_id、u .username AS user_username, u.email AS user_email FROM 会议 AS m JOIN "user" AS u ON m.user_id = u.id 其中 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 ASagents_populated, CASE WHEN u.images_data IS NULL THEN false ELSE true END AS图片填充, json_agg(t.agents_data->>'id') AS agent_names FROM timeframe 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 '非零' ELSE '零' END AS image_data_status, CASE WHEN LENGTH(t.thumbnail_image_data) > 0 THEN '非零' ELSE '零' END ASthumbnail_image_data_status FROM“用户” u LEFT JOIN 时间范围 t ON t.user_id = u.id WHERE u.username = 'realityinspector82';