1.Composio 介紹
Composio是一個專為AI代理和大語言模型(LLMs)設計的創新集成平台,提供超過150個外部工具和服務的連接支持,無框架和模型限制,旨在簡化AI代理和LLMs在各種應用程式中的構建、連接與部署。它通過工具庫和身份驗證管理,支持與如GitHub、Salesforce等外部服務的集成,並支援10個以上流行的代理框架及所有功能調用的LLM供應商。Composio還提供代碼解釋器、文件管理器、數據庫等系統工具,以幫助AI代理執行多樣化的任務。其優點包括減少開發時間和資源、提高可靠性以及強大的數據保護和企業級安全標準。此外,Composio具有可擴展性,便於企業在整個組織中擴展AI集成,並為開發者提供了無框架和模型限制的靈活性,使其能夠使用自己偏好的工具和模型。
2.使用者操作步驟與流程
創建 Composio 帳號:進入 Composio 官網,使用 Gmail 進行綁定註冊。
選擇欲綁定的APP:打開命令提示字元(cmd),輸入指令
composio add APP -e entity ID
進行綁定。取得 Composio API Key:在 Composio 平台的個人帳戶設置中找到並複製 API Key。進入 “https://app.composio.dev/settings” 即可看到 API Key。
取得 Davinci API Key:進入 Davinci 平台,找到 API Key 並複製。
打開
web.zip 當中的 index.html
文件。執行 app.py
填入 Plugin Configuration:根據需要在配置區域填寫相關資訊。
勾選下方欲串接的 APP:選擇所需串接的APP進行勾選。
提交後:系統會生成一個 JSON檔,將該檔案上傳至達哥平台,成為 plugin。
3.開發文件
Composio 與達哥平台串接開發文件
1. 環境準備
在進行開發前,請確保已安裝以下必要套件:
Flask
: 作為Web框架,用於處理HTTP請求。Flask-CORS
: 允許跨來源資源共享(CORS)。openai
: 用於與OpenAI的API進行互動。composio_openai
: Composio工具集套件。
安裝相關套件的指令:
pip install Flask Flask-CORS openai composio_openai
2. 基本架構
建立一個Flask應用,並透過Flask-CORS來允許跨來源請求。應用程序會接收POST請求,其中包含用戶與API Key的資料,並根據用戶的需求使用Composio和Davinci API進行處理。
from flask import Flask, render_template, request from flask_cors import CORS app = Flask(__name__) CORS(app) if __name__ == '__main__': app.run(debug=True, port=5001)
3. Composio 與 Davinci API 集成
3.1 初始化 OpenAI 客戶端
使用Davinci API Key初始化OpenAI客戶端,這樣您就可以透過達哥的服務來處理用戶輸入的訊息。
from openai import OpenAI openai_client = OpenAI( base_url="<https://prod.dvcbot.net/api/assts/v1>", api_key=Davinci_API_KEY )
3.2 初始化 Composio 工具集
通過Composio API Key和Entity ID來初始化Composio工具集。這使我們能夠連接指定的外部應用程序,如Gmail或GitHub。
from composio_openai import ComposioToolSet composio_toolset = ComposioToolSet(api_key=Composio_API_KEY, entity_id=Entity_ID)
3.3 綁定應用
將需要綁定的應用(如Gmail、YouTube等)映射到工具集,並使用Composio API獲取相應工具。
from composio_openai import App App_list_attr = [] for app in App_list: app_enum = getattr(App, app.upper(), None) if app_enum is None: raise ValueError(f'Invalid name') App_list_attr.append(app_enum) tool = composio_toolset.get_tools(apps=App_list_attr)
4. 執行對話和工具調用
將達哥中的用戶訊息作為任務傳入OpenAI助手,並使用先前通過Composio綁定的工具集來進行操作。
assistant_instruction = "You are a super intelligent personal assistant, you can help me find what to do." assistant = openai_client.beta.assistants.create( name="Personal Assistant", instructions=assistant_instruction, model="aide-gpt-4o", tools=tool, metadata={"backend_id": "default"} ) # 創建對話執行線程 thread = openai_client.beta.threads.create() message = openai_client.beta.threads.messages.create(thread_id=thread.id, role="user", content=my_task) # 執行助手操作 run = openai_client.beta.threads.runs.create(thread_id=thread.id, assistant_id=assistant.id) # 處理助手工具調用 response_after_tool_calls = composio_toolset.wait_and_handle_assistant_tool_calls( client=openai_client, run=run, thread=thread, )
5. 檢查狀態並返回結果
根據助手操作的狀態來決定是否進行後續操作,並最終返回結果。
while run.status in ["queued", "in_progress"]: run = openai_client.beta.threads.runs.retrieve(thread_id=thread.id, run_id=run.id) if run.status == "requires_action": print(run) elif run.status == "failed": print(run) else: messages = openai_client.beta.threads.messages.list(thread_id=thread.id).data return messages[0].content[0].text.value
6. API 路由設定
@app.route('/', methods=['POST']) def home(): data = request.get_json() msg = data['conversation'][-1]['content'] Davinci_API_KEY = data['Davinci_API_KEY'] Composio_API_KEY = data['Composio_API_KEY'] Entity_ID = data['Entity_ID'] App_list = data['App'] response = run_composio(msg, Davinci_API_KEY, Composio_API_KEY, Entity_ID, App_list) response_data = {"response": response} return response_data
7. 執行應用
最後,啟動Flask應用來監聽POST請求,並根據用戶需求返回結果。
python app.py
4.結論
透過達哥平台與Composio的串接,我們能夠有效地將生成式AI能力與多個外部應用進行整合,提供更加智能化和高效的解決方案。這種集成不僅讓AI代理能夠利用Composio的豐富工具庫與多種外部服務互動,也大大簡化了開發流程,提升了AI應用的擴展性與靈活性。
優勢:
快速集成多個應用:Composio提供超過150個外部工具和服務的連接支持,無論是GitHub、Gmail等常見應用,還是企業內部系統,都能輕鬆進行綁定。
簡化開發流程:透過Composio的託管身份驗證系統與達哥的強大AI能力,開發者可以專注於核心業務邏輯,無需處理複雜的身份驗證及API管理。
高效的工具調用:AI代理能夠根據用戶需求靈活調用所需工具,並在不同平台之間無縫執行任務,極大提升了操作的自動化和智能化程度。
靈活的應用擴展性:達哥與Composio的無框架和模型限制讓開發者可以自由選擇最合適的工具與框架,確保在不同情境下都能提供最佳性能。
提高業務效率:藉由AI代理自動化處理日常任務,企業能夠顯著降低手動操作的時間與成本,同時提升整體工作流程的效率。
使用此 Plugin Generator 即可馬上透過 No-Code 的方式產生 Plugin。