成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Pandas-ai + Fastapi-mcp,自己動手搭建AI數據分析服務,效果不比大廠差 原創

發布于 2025-5-30 06:41
瀏覽
0收藏

大家好,我是九歌。今天我們聊一聊使用大模型進行數據分析。

AI數據分析作為大模型應用的剛需,在各大平臺上的表現卻大相徑庭。阿里百煉的析言、ChatGPT、商湯的小浣熊、豆包,用了一圈,發現能打的只有豆包。但是豆包只提供大模型接口,AI數據分析卻沒有對應的接口。

Pandas-ai + Fastapi-mcp,自己動手搭建AI數據分析服務,效果不比大廠差-AI.x社區


首先定義一下“AI數據分析”,本文所說的AI數據分析,專指大模型對數據表格的處理能力,默認數據超過2000行!

2000行的表格直接喂給大模型讓其分析,可想而知,這是多么不現實的一件事情,更不要說是讓大模型對表格中的某行或某列進行精準的函數計算了。

目前各大平臺使用的解決方案,基本一致,主要是下面幾個步驟:

1.命令大模型對上傳的Excel文件,生成Python代碼,讀取表頭和表格前幾行數據
2.將讀取后的數據與用戶的需求再重新提交給大模型
3.大模型根據需求生成Pandas或者SQL代碼,對數據進行操作
4.在沙箱中執行數據處理代碼,判斷是否處理成功
5.若處理成功,將處理后的表格路徑返回
6.若處理失敗,將錯誤信息一并交給大模型,重新生成

按理說上面的過程看起來好像一點不麻煩,于是我自信滿滿的想要智能體工作流實現一個,但是很快被打臉了。遇到稍微復雜點的數據分析需求,工作流陷入死循環,一直報錯!

Pandas-ai + Fastapi-mcp,自己動手搭建AI數據分析服務,效果不比大廠差-AI.x社區

本著不能重復造輪子的心態,我開始在Github上找AI數據分析相關的開源項目。功夫不負想偷懶的人,終于發現了一個將近2萬star的項目——Pandas-ai!

Pandas-ai + Fastapi-mcp,自己動手搭建AI數據分析服務,效果不比大廠差-AI.x社區

Pandas是Python中數據分析必用的庫!然后給ai賦能了!還這么多人星標了!

激動的心怦怦跳,顫抖的小手搓起來,讓我們一塊體驗一下吧!

安裝篇

Pandas-ai 已經做成了Python庫,所以我們直接安裝使用就行,簡直不要太方便。我們通過以下命令即可完成Python環境搭建和Pandas-ai庫的安裝。

#創建虛擬環境 
python -m venv .venv 
#激活環境
.\.venv\Scripts\activate
#安裝Pandas-ai
pip install pandasai -i https://pypi.tuna.tsinghua.edu.cn/simple

Pandas-ai + Fastapi-mcp,自己動手搭建AI數據分析服務,效果不比大廠差-AI.x社區

配置篇

將Pandas-ai的github庫,下載到本地,在項目文件夾中找到pandas-ai\examples\use_openai_llm.ipynb 這個文件,并打開。

https://github.com/sinaptik-ai/pandas-ai.git

Pandas-ai + Fastapi-mcp,自己動手搭建AI數據分析服務,效果不比大廠差-AI.x社區

這個文件中,告訴我們,如何配置OpenAI大模型的api_token,從而用Pandas-ai的 df.chat方法。我們只需要學會這一種使用方法就可以了。我們需要使用以下命令,額外安裝 pandasai-openai庫。

pip install pandasai-openai -i https://pypi.tuna.tsinghua.edu.cn/simple

然后再下方的命令中填入OpenAI的api_token。Pandas-ai目前支持的大模型有限,首選OpenAI

import pandasai as pai
from pandasai_openai import OpenAI
#我修改成了opentourer的token
llm = OpenAI(api_token="your_api_token")

問題來了,我沒有OpenAI的api_token,但是我有OpenRouter的token,可以調用GPT-4o等模型。于是我找到pandasai-openai庫的源文件base.py和openai.py,修改OpenAI的URL為OpenRouter的URL,并將默認模型設置為GPT-4o

# .venv\Lib\site-packages\pandasai_openai\base.py
api_base: str = "https://openrouter.ai/api/v1"

#.venv\Lib\site-packages\pandasai_openai\openai.py
model: str = "gpt-4o"

在use_openai_llm.ipynb中,將api_token設置為openrouter的token,然后執行每一個單元格,查看是否輸出為下方的正確信息。此處我直接使用Trae編輯器,配置了Jupyter的內核環境,按照提示安裝相應的包之后,就可以直接執行ipynb文件。

Pandas-ai + Fastapi-mcp,自己動手搭建AI數據分析服務,效果不比大廠差-AI.x社區

如果你最后能夠順利執行 df.chat()函數,能夠將response打印出值來,恭喜你配置成功了!

Pandas-ai + Fastapi-mcp,自己動手搭建AI數據分析服務,效果不比大廠差-AI.x社區

進階篇

我們來看一下Pandas-ai的工作原理,非常簡單!

第一步,引入Pandas-ai庫,更換別名為pai,并初始化大模型!

import pandasai as pai
from pandasai_openai import OpenAI
#填寫token
llm = OpenAI(api_token="your token")

第二步,指定需要處理的文件路徑,然后輸入數據分析需求就可以了!返回信息都存儲在response變量中,你只需要將其直接打印或者保存成其他文件就可以了!

#文件路徑
df = pai.read_csv("./data/heart.csv")
#發送需求
response = df.chat("What is the correlation between age and cholesterol?")

你可以在Jupyter的變量面板查看當前所有變量屬性!偷偷告訴你,如果response 的Type屬性是DataFrameResponse,你直接可以使用pandas的函數操作,把response再保存成各種你想要的格式!

Pandas-ai + Fastapi-mcp,自己動手搭建AI數據分析服務,效果不比大廠差-AI.x社區

import pandas as pd 
df2 = pd.DataFrame(response.value)
df2.to_csv("./data/result3.csv",index=False)

如果你再細心點,你會發現當前文件夾根路徑下面多了個pandasai.log文件。恭喜你,發現了新大陸,pandas-ai在和大模型交流過程的請求和生成代碼執行情況以及錯誤情況,你都可以在這個文件看見了!

Pandas-ai + Fastapi-mcp,自己動手搭建AI數據分析服務,效果不比大廠差-AI.x社區

對了,為了降低bug次數,請將所有的數據文件,全部轉成UTF-8格式的CSV文件后,再使用pandas-ai進行處理!

接口篇

Pandas-ai 在我們自己的電腦上已經成功跑起來了!如果我們想把這個服務分享出去,就需要開發接口了。我們已經有了基礎功能,直接使用FastAPI編寫接口就可以了。因為文章篇幅有限,全部接口代碼請在文末說明中獲取。

接口我主要加了一個判斷處理,如果response數據長度超過1000,直接保存為csv文件,并返回在線下載地址;如果未超過1000,則將response內容直接通過接口返回。

我們來測試一下接口是否能正常工作!這里依然使用Pandas-ai提供的測試表格 ./data/heart.csv。

Pandas-ai + Fastapi-mcp,自己動手搭建AI數據分析服務,效果不比大廠差-AI.x社區

pandas-ai很快給出了正確結果,Age列的平均年齡為53.5108。我們用WPS打開heart.csv看一下結果,發現完全正確!

Pandas-ai + Fastapi-mcp,自己動手搭建AI數據分析服務,效果不比大廠差-AI.x社區

MCP篇

現在接口有了,當然接口也不是很完善,讀取的依然是本地文件路徑或者在線URL路徑。這段時間MCP非常火,我們再把上面的接口用MCP協議封裝一層,看看能不能放在MCP客戶端里面直接調用!

萬幸Github上有個項目FastAPI-MCP,可以很容易就能將fastapi接口轉成支持MCP協議的服務。我們安裝項目文檔,直接上手使用!只需要將fastapi對象,再用FastApiMCP封裝一下就可以了!接口中,一定帶上operation_id,不然客戶端找不到工具名。

#安裝
pip install fastapi-mcp -i https://pypi.tuna.tsinghua.edu.cn/simple
#使用
from fastapi import FastAPI
from fastapi_mcp import FastApiMCP

##原有接口
@app.post("/process-attendance/",operation_id="data_analysis")
#省略代碼
##

app = FastAPI()
mcp = FastApiMCP(app)

# Mount the MCP server directly to your FastAPI appmcp.mount()
mcp.mount()

我們重新啟動接口文件,訪問localhost:8989/mcp,發現如下信息,說明服務啟動成功!

Pandas-ai + Fastapi-mcp,自己動手搭建AI數據分析服務,效果不比大廠差-AI.x社區

打開AI編輯器 Trae,手動添加MCP Server ,配置文件如下(使用時請換成自己的路徑):

Pandas-ai + Fastapi-mcp,自己動手搭建AI數據分析服務,效果不比大廠差-AI.x社區

我們創建一個智能體:數據分析師,然后調用這個智能體,看一下數據分析MCP的效果吧。

#智能體輸入問題
D:\JiugeCode\Projects2025\pandasai\pandas-ai-2\pandas-ai\examples\data\heart.csv  
表格Age列的平均值是多少

Pandas-ai + Fastapi-mcp,自己動手搭建AI數據分析服務,效果不比大廠差-AI.x社區

大功告成了!


本文轉載自??九歌AI大模型??  作者:九歌AI


?著作權歸作者所有,如需轉載,請注明出處,否則將追究法律責任
已于2025-5-30 06:41:32修改
收藏
回復
舉報
回復
相關推薦
主站蜘蛛池模板: 国产美女特级嫩嫩嫩bbb片 | 亚洲一区欧美一区 | 久久精品天堂 | 精品一区二区三区在线观看国产 | 免费在线观看一级毛片 | 久久久久久久久99精品 | 久久一区二区视频 | 激情六月丁香婷婷 | 日本偷偷操 | 亚洲精品视频免费 | 国产精品久久久久久久 | 日韩一级二级片 | 精品久久久久久久 | 中文字幕丁香5月 | 91免费看片神器 | 亚洲视频在线一区 | 中文字幕一区二区三区四区 | 精精国产xxxx视频在线播放 | 国产亚洲精品久久久久动 | 日本一区二区三区视频在线 | av久久 | 中文字幕av一区 | 精品一区二区电影 | 91黄色免费看 | 情侣黄网站免费看 | 久久中文高清 | 欧美精品一区在线 | 日韩精品一区二区三区第95 | 国产一二三区电影 | 女同久久另类99精品国产 | 97免费视频在线观看 | 久久九 | 91玖玖| 国产欧美一区二区在线观看 | 国产精品视频一二三区 | 免费看黄视频网站 | 欧美操操操 | 免费观看黄a一级视频 | 国产日韩免费观看 | 欧美性久久 | 国产精品18hdxxxⅹ在线 |