<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      PandasAI連接LLM進行智能數據分析

      1. 引言

      Pandas是一個數據分析開源組件庫,提供了高性能、易用的數據結構和數據分析工具。它的核心的功能是其DataFrame對象,這是一個帶有行和列標簽的二維表格數據結構,支持缺失數據處理、時間序列功能、靈活的數據輸入輸出方法、數據對齊和分組操作等特性。

      PandasAI則通過結合Pandas和生成式AI技術,使用戶能夠以自然語言與數據進行交互,從而簡化數據分析流程。它的核心目標是讓數據分析變得更直觀、高效,甚至無需編寫復雜代碼即可完成數據查詢、清洗、可視化等任務。

      2. 詳述

      Pandas進行數據分析的流程筆者不是很熟練,這里重點關注一個問題就是PandasAI如何連接現有的大模型比如DeepSeek來進行智能數據分析。

      由于經驗不足,筆者在測試PandasAI的時候,將相關的組件都安裝在默認全局的Python環境中了,導致版本有點低,使用的是v2版本。現在普通推薦使用Anaconda這樣的工具安裝虛擬環境來進行Python的依賴管理。不過根據PandasAI官網文檔[1]提示,PandasAI 3.0仍然是beta版本,并且推薦使用Poetry管理Python依賴。所以這里筆者也就沒有想升級到3.0,暫時先用穩定一定的2.X版本。

      解決掉PandasAI 2.X的版本依賴問題之后,通過PandasAI連接DeepSeek進行智能數據分析的案例代碼實現如下:

      import pandas as pd
      from pandasai import SmartDataframe
      from pandasai.llm.base import LLM
      import requests
      
      # 自定義DeepSeek大模型
      class DeepSeekLLM(LLM):
          def __init__(self, api_url:str, api_key: str, model: str):
              super().__init__()
              self.api_url = api_url
              self.api_key = api_key
              self.model = model        
      
      
          def call(self, instruction, context: dict = None, **kwargs) -> str:  
              """
              PandasAI 用來向 LLM 模型發起請求的接口入口。
      
              Args:
                  instruction (str): PandasAI 傳入的 prompt,可能是 string 或自定義對象,表示用戶的問題。
                  context (dict, optional): 包含上下文信息(例如 DataFrame 元數據等),在部分 LLM 中可用。
                  **kwargs: 保留接口向前兼容(比如未來增加其他參數時也能傳入)。
      
              Returns:
                  str: 執行指令后的結果輸出。
              """
      
              # 把復雜的 Prompt 對象變成字符串
              if not isinstance(instruction, str):
                  instruction = str(instruction)
      
              # 請求頭
              headers = {
                  "Authorization": f"Bearer {self.api_key}",   # DeepSeek身份驗證
                  "Content-Type": "application/json"
              }
      
              # 兼容 OpenAI 的 Chat Completion API的對話消息格式
              messages = [
                  {
                      "role": "system", # 設定 LLM 的行為
                      "content": "You are a helpful AI assistant for data analysis."
                  },
                  {
                      "role": "user",  # 是實際的問題
                      "content": instruction
                  }
              ]
      
              # 請求體
              payload = {
                  "model": self.model,
                  "messages": messages,
                  "temperature": 0.0 # 值越低,回答的效果越穩定
              }
      
              # 發送post請求
              response = requests.post(self.api_url, headers=headers, json=payload)
      
              # 檢查返回狀態碼,如果不是 200 則報錯。
              if response.status_code != 200:
                  raise Exception(f"DeepSeek API Error: {response.status_code}, {response.text}")
      
              # 解析返回結果
              result = response.json()
              return result["choices"][0]["message"]["content"]
      
          @property
          def type(self):
              return "deepseek-custom"
      
      # Sample DataFrame
      sales_by_country = pd.DataFrame({
          "country": ["United States", "United Kingdom", "France", "Germany", "Italy", "Spain", "Canada", "Australia", "Japan", "China"],
          "sales": [5000, 3200, 2900, 4100, 2300, 2100, 2500, 2600, 4500, 7000]
      })
      
      # 用自定義的 DeepSeek LLM
      llm = DeepSeekLLM(
          api_url = "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions",
          api_key="sk-xxx", 
          model="deepseek-r1")
      
      df = SmartDataframe(sales_by_country, config={"llm": llm})
      
      result = df.chat('列出銷售額最高的3個國家。')
      
      print(result)
      

      如代碼所示,關鍵的所在是需要自定義一個繼承自LLM的能夠連接DeepSeek的類DeepSeekLLM。其實PandasAI 2.X是可以使用提供了支持使用OpenAI的接口的,而連接DeepSeek的接口一般會兼容OpenAI。但是筆者嘗試了之后不行,不能傳入自定義的LLM地址。沒辦法只能自己自定義一個繼承自LLMDeepSeekLLM類。

      DeepSeekLLM類的關鍵就是call函數的實現,這是PandasAI用來向LLM模型發起請求的接口的入口。在這個函數實現中的關鍵就是通過兼容OpenAI的Chat API向自定義的DeepSeek服務發起post請求,具體的細節筆者已經在代碼中進行注釋,另外也可以查閱OpenAI API的相關文檔。這里的實現并沒有像《連接語言大模型(LLM)服務進行對話》一樣使用openai模塊或者LangChain框架,而是直接使用requests來發送HTTP請求,顯得更加底層一點,不過原理都差不多。

      最終運行的結果如下所示:

      country  sales
      0          China   7000
      0          China   7000
      1  United States   5000
      2          Japan   4500
      

      1. PandasAI官方文檔 ??

      posted @ 2025-07-27 22:35  charlee44  閱讀(344)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 嗯灬啊灬把腿张开灬动态图| 毛片久久网站小视频| 亚洲一区成人在线视频| 亚洲国产精品高清久久久| 女人的天堂A国产在线观看| 国产精品久久久久7777按摩| 老子午夜精品888无码不卡| 国语精品自产拍在线观看网站| 中文精品无码中文字幕无码专区| 亚洲一区二区偷拍精品| 偷窥少妇久久久久久久久| 成熟少妇XXXXX高清视频| 国产黄色一区二区三区四区| 可以在线观看的亚洲视频| 精品无码人妻| 国产精品亚洲av三区色| 国产熟女av一区二区三区| 国产成人精品三级在线影院| 国产午夜亚洲精品国产成人| 久久综合给合久久狠狠狠| 国产91精选在线观看| 国产v综合v亚洲欧美大天堂| 色伊人久久综合中文字幕| 中文字幕无码视频手机免费看| 青青草无码免费一二三区| 热久久这里只有精品99| 伊人精品成人久久综合97| 国产一区二区三区小说| 天天爽夜夜爱| 久九九精品免费视频| 久久亚洲国产品一区二区| 九九热在线免费播放视频| 无码午夜福利片| 国产美女在线精品免费观看| 一本一道av无码中文字幕麻豆| 国产偷国产偷亚洲清高动态图| 99精品视频在线观看免费蜜桃| 99久久婷婷国产综合精品青草漫画| 锡林郭勒盟| 亚洲一区二区三区在线| 日本高清日本在线免费|