Trae + Dify 10分鐘構(gòu)建 Data McpServer 與 Agent ,和 Excel 說再見! 原創(chuàng)
今天手把手教大家使用AI編程工具 Trae + Dify構(gòu)建一個能根據(jù)大模型對話處理Excel的智能體。
當(dāng)然,全程下來10分鐘是不可能的,代碼確實是Trae 幾分鐘就生成的,但是我調(diào)Bug就花了2個小時??!
本來還想加上Pyecharts數(shù)據(jù)可視化部分,但是一口氣吃成胖子也不好,先做個簡單的吧。
話不多說,我們擼起袖子開干。
打開國內(nèi)最新版的AI編程工具Trae(字節(jié)能不能給我點廣告費(fèi),這個編程工具其實也讓人頭疼),在新建Builder地方,輸入下面的提示詞,大模型選擇DeepSeek R1。提示詞為什么這么寫,當(dāng)然是給大家避坑了!
DeepSeek R1 提示詞
我要使用 MCP server 搭建1個服務(wù),接受 Excel 路徑和大模型對話中的數(shù)據(jù)處理要求,這個server服務(wù)里的 llm(使用deepseek) 將數(shù)據(jù)處理要求轉(zhuǎn)變成 真實的 pandas 代碼,然后服務(wù)執(zhí)行這個代碼,將代碼運(yùn)行結(jié)果返回。 請根據(jù)我的要求,一步步給出完整的解決辦法和創(chuàng)建完整代碼。
代碼結(jié)構(gòu)可以參考下面這樣:
excel_mcp/ ├── config.py ├── llm_integration.py ├── main.py ├── safe_exec.py └── requirements.txt
數(shù)據(jù)處理庫使用Pandas
LLM使用DeepSeek,DeepSeek的請求使用參考下方代碼
from openai import OpenAI
client = OpenAI(api_key="<DeepSeek API Key>", base_url="https://api.deepseek.com")
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "system", "content": "You are a helpful assistant"},
{"role": "user", "content": "Hello"},
],
stream=False
)
print(response.choices[0].message.content)
使用Trae的Builder模式,將上面的提示詞輸入
在代碼生成的過程中,一直點擊全部接受,直到代碼執(zhí)行階段。這時候終端會報錯,你根據(jù)報錯信息就會陷入修Bug的無底洞,所以要自己把代碼都讀一遍,不然哪里錯的都不知道。
比如下面這個報錯,原因很簡單,包的大小寫弄錯了!
代碼全部生成后,你需要在config.py中 添加DeepSeep API的密鑰,然后按下面步驟運(yùn)行代碼。
- 替換config.py中的API密鑰
- 通過?
?uvicorn main:app --host 0.0.0.0 --port 8000?
? 啟動服務(wù)- 訪問?
?http://localhost:8000/docs?
? 測試接口- 如果使用venv管理環(huán)境,請先激活環(huán)境,再執(zhí)行第2步。
- vevn環(huán)境激活命令:.\venv\Scripts\activate
這時候,訪問FastAPI的docs路徑(可能需要科學(xué)上網(wǎng),因為fastapi的一個js庫被擋了),就可以看到Data McpServer的接口了。
緊接著,我們需要準(zhǔn)備一個excel文件,我們可以直接在excel模板中找一個,下載下來。我找的是客戶反饋跟蹤表。
將這個表格放在Trae項目根文件夾,直接點擊Trae右下角的Go Live,會將項目文檔以端口5000的web服務(wù)暴露出來。
我們訪問這個地址,復(fù)制表格的URL鏈接。
接下來再回到FastAPI Docs界面,找到接口,點擊Try It!填寫參數(shù)值,然后點擊Execute按鈕 執(zhí)行!
查看結(jié)果,成功了?。ㄖ型拘蘖税胄rBUG!)
下面我們就要把McpServer 作為工具放到Dify上了。
第一步 先確定你Dify能訪問到本地運(yùn)行的Fastapi接口服務(wù),所以我將地址換成了電腦的IP。
第二步 獲取Fastapi openAPI-Swagger數(shù)據(jù),點下面這里。
第三步 把json數(shù)據(jù)復(fù)制到dify 自定義工具界面。這里面需要手動添加servers信息,fastapi上沒有帶這個參數(shù)。
點擊接口旁邊的測試,測試一下工具是否可用。
回到Dify,創(chuàng)建一個工作流應(yīng)用,取名為Excel智能助手。
編排這個簡單的工作流如下,開始按鈕設(shè)置變量類型,一個是Excel文件URL上傳,一個是用戶提示詞。
在下一個節(jié)點,選擇我們剛剛內(nèi)置的工具,講文件URL和用戶提示詞對接好。
點擊運(yùn)行按鈕,查看執(zhí)行效果。
發(fā)布運(yùn)行這個智能體,再查看效果!
好了,今天就先到這,我們還可以把這個工作流發(fā)布為工具,在新的智能體對話時作為Function Call調(diào)用,我們下期再詳細(xì)講。
所有的代碼和Dify工作流文件,可以訪問下方鏈接獲取。
https://mbd.pub/o/bread/aJWXm5dv
本文轉(zhuǎn)載自公眾號九歌AI大模型 作者:九歌AI
