最近,我一直在拖延,沉迷於 Netflix 追劇,無止境地滑動社交媒體等等。
最終,我決定擺脫拖延症。有什麼比編寫一個 AI 代理來幫助我保持軌道並定期提醒我是否應該開始沉迷於媒體消費的方式更好呢?
所以,我是這樣做到的:
這裡是我們的簡介。
Composio 是一個開源的工具基礎架構,用於構建健壯且可靠的 AI 應用程式。我們提供超過 100 種工具和跨行業整合,包括 CRM、HRM、銷售到生產力、開發和社交媒體。
他們還提供本地工具,如 CodeAnalyser、RAG、SQL 等。
這篇文章討論了使用 CodeAnalyser 工具對代碼庫進行索引以進行問答。
請幫我們點個星。🥹
這將幫助我們創建更多像這樣的文章 💖
https://dub.composio.dev/XGTJ1JJ 給 Composio.dev 儲存庫點個星 ⭐
要成功完成這個項目,你將需要以下內容。
那麼,讓我們開始吧。
首先,創建一個 Python 虛擬環境。
python -m venv ai-friend
cd ai-friend
source bin/activate
現在,安裝以下依賴項。
pip install composio-core
pip install composio-openai openai
pip install pyautogui
接下來,創建一個 .env
文件並添加 OpenAI API 金鑰的環境變數。
OPENAI_API_KEY=你的 API 金鑰
要創建 OpenAI API 金鑰,請訪問官方網站並在儀表板創建 API 金鑰。
你可以使用 CLI 輕鬆設置 Composio。
首先,執行以下命令登錄到你的帳戶。
composio login
這將重定向你登錄/註冊 Composio。
登錄後,會出現一個帶有金鑰的螢幕。
複製它並將其粘貼到終端中。
現在,更新應用程式。
composio apps update
現在你準備好進入編碼部分了。
現在你已設置好環境,讓我們進入編碼部分。
首先,導入庫並初始化工具集。
import dotenv
from openai import OpenAI
from composio_openai import App, ComposioToolSet
from composio.utils.logging import get as get_logger
logger = get_logger(__name__)
# 從 .env 加載環境變數
dotenv.load_dotenv()
# 初始化工具。
openai_client = OpenAI()
composio_toolset = ComposioToolSet()
# 擷取操作
actions = composio_toolset.get_tools(apps=[App.SYSTEMTOOLS, App.IMAGEANALYSERTOOL])
在上面的代碼中,
.env
文件中定義的變數。SYSTEMTOOLS
和 IMAGEANALYSERTOOL
取得操作。這些工具的作用如下:
SYSTEM TOOLS
:系統工具有兩個操作:推送通知和螢幕捕捉。IMAGEANALYSERTOOL
:這個工具只有一個操作:使用多模態 LLM(如 GPT-4o 和 Claude Sonnet 等)分析圖片。如果你想查看代碼及其工作原理,請檢查 系統工具 和 圖片分析工具 的代碼檔。
注意:Composio 中的操作是你的代理可以執行的任務,例如點擊螢幕截圖、發送通知或發送郵件。
現在,為代理定義一個清晰簡明的提示。這對於代理的性能至關重要。你可以根據需求修改提示。
assistant_instruction = (
"""你是一個智能且主動的個人效率助手。
你的主要任務是:
1. 定期捕捉和分析用戶螢幕的截圖。
2. 監控用戶活動並提供及時、有幫助的干預。
具體責任:
- 每幾秒鐘,拍攝一個螢幕截圖並分析其內容。
- 比較近期截圖以識別潛在問題或模式。
- 如果你發現用戶面臨技術或工作流程問題:
- 用簡潔、可執行的解決方案通知他們。
- 優先提供不具干擾性的建議,可以快速實施。
- 如果你注意到用戶長時間使用可能讓人分心的網站或應用程式(例如社交媒體、視頻串流):
- 溫和地提醒用戶他們的效率目標。
- 建議短暫休息或轉向更集中的任務。
- 在提供幫助的同時,保持不過分干擾。
- 根據一天中的時間和用戶的工作模式量身定制你的干預。
操作指示:
- 你會在定期間隔收到一條 'CHECK' 消息。接收到後:
1. 使用截圖工具拍攝螢幕截圖。
2. 然後,使用圖像分析工具分析該截圖。
3. 接著,檢查用戶是否正在使用分心的網站或應用程序。
4. 如果是,提醒他們做一些生產性的事情。
5. 如果不是,檢查用戶是否根據之前的歷史面臨技術或工作流程問題。
6. 如果是,提供簡潔、可執行的解決方案通知他們。
7. 試著維護用戶活動的歷史記錄,並在他們做錯事時通知他們。
記住:你的目標是提高效率的同時尊重用戶的自主性和工作風格。"""
)
assistant = openai_client.beta.assistants.create(
name="個人效率助手",
instructions=assistant_instruction,
model="gpt-4-turbo",
tools=actions, # type: ignore
)
# 創建一個線程
thread = openai_client.beta.threads.create()
print("線程 ID: ", thread.id)
print("助手 ID: ", assistant.id)
在上述代碼中,
現在,定義一個運行助手的函數。
def check_and_run_assistant():
logger.info("正在檢查並運行助手")
# 向助手發送 'CHECK' 消息
message = openai_client.beta.threads.messages.create(
thread_id=thread.id,
role="user",
content="CHECK",
)
# 執行代理
run = openai_client.beta.threads.runs.create(
thread_id=thread.id,
assistant_id=assistant.id,
)
# 執行功能調用
run_after_tool_calls = composio_toolset.wait_and_handle_assistant_tool_calls(
client=openai_client,
run=run,
thread=thread,
)
# 每 10 秒運行助手檢查
while True:
check_and_run_assistant()
在上面的代碼中發生了什麼。
最後,通過運行 Python 檔案來執行該文件,讓你的新 AI 朋友幫助你專注於目標。
該代理會監視你的螢幕,當它看到你做一些不應該做的事情時發送通知。
完整的代碼可以在 這裡 找到。
這裡是代理運行的示例。👇
https://x.com/KaranVaidya6/status/1820129229683454160
在這篇文章中,你建立了個性化的 AI 朋友來監控你的活動。不過,添加外部整合,如日曆或 Gmail 工具,將更加有幫助。這會讓你知道是否有一些活動需要參加或重要電子郵件需要回復。
你可以輕鬆地使用 Composio 提供的各種整合,從 GitHub 和日曆到 Slack、Discord 等等。
如果你想看到更多 AI 相關的文章,請在評論中告訴我,並在 GitHub 上給我們一顆星。
https://dub.composio.dev/XGTJ1JJ 給 Composio 儲存庫點個星 ⭐