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