1. Composio 介紹
Composio 是一個專為 AI 代理和大語言模型(LLMs)設計的創新集成平台,提供超過150個外部工具和服務的連接支持,無框架和模型限制,旨在簡化 AI 代理和 LLMs 在各種應用程式中的構建、連接與部署。它通過工具庫和身份驗證管理,支持與如 GitHub、Salesforce 等外部服務的集成,並支援10個以上流行的代理框架及所有功能調用的 LLM 供應商。Composio 還提供代碼解釋器、文件管理器、數據庫等系統工具,以幫助 AI 代理執行多樣化的任務。其優點包括減少開發時間和資源、提高可靠性以及強大的數據保護和企業級安全標準。此外,Composio 具有可擴展性,便於企業在整個組織中擴展 AI 集成,並為開發者提供了無框架和模型限制的靈活性,使其能夠使用自己偏好的工具和模型。
2. 使用者操作步驟與流程
創建 Composio 帳號:進入 Composio ,進行註冊及登入。
APP 驗證:打開命令提示字元(cmd) *若未執行此綁定步驟,後續達哥將無法協助執行 action
輸入
pip install composio_core composio_openai
輸入
composio add [APP] -e entity [ID]
進行綁定APP:請到 Composio All Tools 網頁查看
ID:任意取一個代表該 APP 的某一個 Account,如:AIDE
取得 Composio API Key:進入 Composio Settings 的 API Keys 即可取得 API Key。
下載
此 zip 檔,解壓縮過後利用瀏覽器開啟 index.html 。填入 Plugin Configuration:根據各項目填寫相關資訊,使用此 Plugin Generator 即可馬上透過 No-Code 的方式產生 Plugin。(圖待補)
選擇 APP:選取所需串接的 APP。(圖待補)
獲取 Plugin:提交後,會自動生成一個 JSON 檔,將該檔案上傳至達哥平台。
執行
後即可與達哥進行對話。
3. 開發文件
開發步驟
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.
3.1 初始化 Composio 工具集
通過 Composio API Key 和 Entity ID 來初始化 Composio 工具集。這使我們能夠連接指定的外部應用程序,如 Gmail、Youtube、GitHub 等 。
from composio_openai import ComposioToolSet composio_toolset = ComposioToolSet(api_key=Composio_API_KEY, entity_id=Entity_ID)
3.2 綁定應用
將需要綁定的應用(如Gmail、YouTube、GitHub 等)映射到工具集。
def run_composio(Composio_API_KEY, Entity_ID, App_list): # Initialize ComposioToolSet composio_toolset = ComposioToolSet(api_key=Composio_API_KEY, entity_id=Entity_ID) # Check if the app is valid App_list_attr = [] for app in App_list: # print(app) app_enum = getattr(App, app.upper(), None) if app_enum is None: raise ValueError(f'Invalid name') else: App_list_attr.append(app_enum) tool = composio_toolset.get_tools(apps=App_list_attr) # tool = composio_toolset.get_tools(apps=[App.GMAIL]) # return app all action to DaVinci return tool[0]
4. 執行對話和工具調用
文字逮捕
def run_action(response, Composio_API_KEY, Entity_ID): # Initialize ComposioToolSet composio_toolset = ComposioToolSet(api_key=Composio_API_KEY, entity_id=Entity_ID) # convert string to python object if response['arguments'].find('true') != -1: res_pre = response['arguments'].replace('true', 'True') res = eval(res_pre) elif response['arguments'].find('false') != -1: res_pre = response['arguments'].replace('false', 'False') res = eval(res_pre) else: res = eval(response['arguments']) # get app action app_enum = getattr(Action, response['name'].upper(), None) print(app_enum) # execute app action result = composio_toolset.execute_action(action = app_enum, params = res, entity_id= Entity_ID) return result
6. API 路由設定
# get app action @app.route('/', methods=['POST']) def home(): data = request.get_json() Composio_API_KEY = data['Composio_API_KEY'] Entity_ID = data['Entity_ID'] App_list = data['App'] response = run_composio(Composio_API_KEY, Entity_ID, App_list) response_data = {"response": response} return response_data @app.route('/run', methods=['POST']) def run_app(): data = request.get_json() Composio_API_KEY = data['Composio_API_KEY'] Entity_ID = data['Entity_ID'] response = data['response']['function_call'] # print(data) res = run_action(response, Composio_API_KEY, Entity_ID) response_data = {"response": res} 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 代理自動化處理日常任務,企業能夠顯著降低手動操作的時間與成本,同時提升整體工作流程的效率。