全部產品
Search
文件中心

DataWorks:使用大模型

更新時間:Nov 04, 2025

在網路連通的前提下,部署後的模型可在DataWorks同一地區的任意工作空間中使用。以下將為您介紹如何在DataWorks中調用和使用已部署的大模型。

前提條件

準備工作

在調用模型前,您需要確保調用模型的應用可正常訪問您的大模型服務。在實際調用模型時,您需要先擷取模型服務調用地址及API Key資訊用於模型身份認證,以便後續調用模型。

1. 配置網路連通

請確保用於模型調用的DataWorks資源群組綁定的VPC,已經在模型可連通的VPC列表中。

  1. 查看資源群組綁定的第一個VPC

    1. 前往DataWorks資源群組列表頁,在頂部切換至目標資源群組所在地區,然後在資源群組列表中找到目標資源群組。

    2. 單擊目標資源群組右側操作列的網路設定,進入資源群組專用網路綁定頁。

    3. 資料調度 & Data Integration下查看對應的交換器網段

      重要

      調用大模型時,必須使用資源群組網路設定中的第一個VPC作為通訊基礎。

  2. 查看模型可連通的VPC列表或為模型添加網路綁定,可參見管理模型網路

2. 擷取調用資訊

模型部署完成後,會自動產生內網網域名稱,請前往需要調用的模型服務詳情頁擷取該模型服務的內網網域名稱。網域名稱格式為:http://<model-service-id>.<region>.dataworks-model.aliyuncs.com。擷取方式可參見查看模型服務

3. 擷取API Key

許可權驗證資訊,可通過管理API Key擷取API Key資訊。

調用大語言模型服務

目前支援在Data Integration、資料開發中調用大模型,實現對資料的智能處理。

Data Integration中調用

在單表離線同步任務中,可使用大模型服務對同步中的資料進行AI輔助處理

image

資料開發中調用

1、大模型節點調用大語言模型

DataWorks新版資料開發支援使用大模型節點對資料進行處理,在大模型節點中可配置大模型服務並調用大語言模型。

2、Shell節點調用大語言模型

本樣本展示如何在Shell節點調用大語言模型回答特定問題。

  1. 建立Shell節點,在Shell節點添加以下樣本命令:

    說明

    請將代碼中以http開頭的大模型服務調用地址和以DW開頭的Token資訊替換為您在準備工作中擷取的實際值。

    curl -X POST http://ms-xxx.cn-beijing.dataworks-model.aliyuncs.com/v1/completions -H "Authorization: DW-ms-xxx" -H "Content-Type: application/json" -d '{"prompt":"AI和機器學習,深度學習的區別和聯絡", "stream":"false", "max_tokens": 1024}' -v    
  2. 編輯節點內容後,請在節點編輯頁面右側的調試配置中,選擇已與服務模型完成網路連通配置的資源群組。

  3. 單擊運行節點,即可調用已部署的服務模型執行相關命令。

    說明
    • 節點調度:若調用服務模型的節點需要周期性調度執行,您需要在節點右側的調度配置中選擇已與服務模型完成網路連通配置的資源群組,並在調度策略配置相關的調度屬性。

    • 節點發布:若任務需要發布至生產環境執行,請單擊介面image表徵圖喚起發布流程,通過該流程將任務發布至生產環境。節點只有在發布至生產環境後,才會進行周期性調度。

3、Python節點調用大語言模型

本樣本展示如何在Python節點通過調用大語言模型完成寫詩指令。

  1. 當前樣本依賴Python的requests庫,請參考以下主要參數,基於DataWorks官方鏡像建立自訂鏡像安裝該依賴環境。

    自訂鏡像參數

    配置說明

    鏡像名稱/ID

    您可基於DataWorks鏡像列表選擇適用於Python節點的鏡像。

    支援任務類型

    選擇Python。

    安裝包

    • Python3:requests

    • Script:/home/tops/bin/pip3 install 'urllib3<2.0'

    image

  2. 建立Python節點,在Python節點添加如下範例程式碼:

    說明

    請將代碼中以http開頭的大模型服務調用地址和以DW開頭的Token資訊替換為您在準備工作中擷取的實際值。

    import requests
    import json
    import time
    import sys
    
    def stream_print_response():
        httpUrl = "http://ms-xxxx.cn-beijing.dataworks-model.aliyuncs.com"
        apikey = "DW-ms-xxxx"
        url = httpUrl + "/v1/completions"
        headers = {
            "Authorization": apikey,
            "Content-Type": "application/json"
        }
        data = {
            "prompt": "請寫一篇關於春天的詩",
            "stream": True,
            "max_tokens": 512
        }
    
        try:
            response = requests.post(url, headers=headers, json=data, stream=True)
            response.raise_for_status()
    
            full_text = ""  # 累積完整回複,防止丟失
            buffer = ""     # 用於處理不完整的 JSON 行(可選)
    
            for line in response.iter_lines():
                if not line:
                    continue  # 跳過空行
    
                line_str = line.decode('utf-8').strip()
                # print(f"[DEBUG] 收到行: {line_str}")  # 調試用
    
                if line_str.startswith("data:"):
                    data_str = line_str[5:].strip()  # 去掉 "data: "
    
                    if data_str == "[DONE]":
                        print("\n[流式響應結束]")
                        break
    
                    # 嘗試解析 JSON
                    try:
                        parsed = json.loads(data_str)
                        choices = parsed.get("choices", [])
                        if choices:
                            delta_text = choices[0].get("text", "")
                            if delta_text:
                                # 累積到完整文本
                                full_text += delta_text
    
                                # 逐字列印新增的字元
                                for char in delta_text:
                                    print(char, end='', flush=True)
                                    sys.stdout.flush()
                                    time.sleep(0.03)  # 打字機效果
    
                    except json.JSONDecodeError as e:
                        # print(f"[警告] JSON 解析失敗: {e}, 原文: {data_str}")
                        continue
    
            print(f"\n\n[完整回複長度: {len(full_text)} 字]")
            print(f"[ 完整內容]:\n{full_text}")
    
        except requests.exceptions.RequestException as e:
            print(f" 請求失敗: {e}")
        except Exception as e:
            print(f" 其他錯誤: {e}")
    
    if __name__ == "__main__":
        stream_print_response()
    
  3. 編輯節點內容後,在節點編輯頁面右側的調試配置中,選擇已完成網路連通配置的資源群組和步驟1中安裝了requests庫的自訂鏡像

  4. 單擊運行節點,即可調用已部署的服務模型執行相關命令。

    說明
    • 節點調度:若調用服務模型的節點需要周期性調度執行,您需要在節點右側的調度配置中選擇已完成網路連通配置的資源群組和步驟1中安裝了requests庫的自訂鏡像,並在調度策略配置相關的調度屬性。

    • 節點發布:若任務需要發布至生產環境執行,請單擊介面image表徵圖喚起發布流程,通過該流程將任務發布至生產環境。節點只有在發布至生產環境後,才會進行周期性調度。

調用向量模型服務

目前支援在Data Integration、資料開發中調用大模型,實現對資料的向量化處理。可參考以下樣本調用部署在DataWorks資源群組的向量(BGE-M3)模型服務。

Data Integration中調用

在單表離線同步任務中,可使用大模型服務對同步中的資料進行向量化處理

資料開發中調用

1、大模型節點調用向量模型服務

DataWorks新版資料開發支援使用大模型節點對資料進行處理,在大模型節點中可配置大模型服務並調用向量模型。

2、Shell節點調用向量模型

本樣本展示如何在Shell節點通過調用向量模型將文字轉化為向量。

  1. 建立Shell節點,在Shell節點添加以下樣本命令:

    說明

    請將代碼中以http開頭的大模型服務調用地址和以DW開頭的Token資訊替換為您在準備工作中擷取的實際值。

    curl -X POST "http://ms-xxx.cn-beijing.dataworks-model.aliyuncs.com/v1/embeddings" \
      -H "Authorization: DW-ms-xxx" \
      -H "Content-Type: application/json" \
      -d '{
        "input": "這是一段需要產生向量的文本",
        "model": "bge-m3"
          }'
  2. 編輯節點內容後,請在節點編輯頁面右側的調試配置中,選擇已與服務模型完成網路連通配置的資源群組。

  3. 單擊運行節點,即可調用已部署的服務模型執行相關命令。

    說明
    • 節點調度:若調用服務模型的節點需要周期性調度執行,您需要在節點右側的調度配置中選擇已與服務模型完成網路連通配置的資源群組,並在調度策略配置相關的調度屬性。

    • 節點發布:若任務需要發布至生產環境執行,請單擊介面image表徵圖喚起發布流程,通過該流程將任務發布至生產環境。節點只有在發布至生產環境後,才會進行周期性調度。

3、Python節點調用向量模型

本樣本展示如何在Python節點通過調用向量模型將文字轉化為向量。

  1. 當前樣本依賴Python的requests庫,請參考以下主要參數,基於DataWorks官方鏡像建立自訂鏡像安裝該依賴環境。

    自訂鏡像參數

    配置說明

    鏡像名稱/ID

    您可基於DataWorks鏡像列表選擇適用於Python節點的鏡像。

    支援任務類型

    選擇Python。

    安裝包

    • Python3:requests

    • Script:/home/tops/bin/pip3 install 'urllib3<2.0'

    image

  2. 建立Python節點,在Python節點添加如下範例程式碼:

    說明

    請將代碼中以http開頭的大模型服務調用地址和以DW開頭的Token資訊替換為您在準備工作中擷取的實際值。

    import requests
    import json
    import sys
    
    # 替換為你的API地址和Token
    api_url = "http://ms-xxx.cn-beijing.dataworks-model.aliyuncs.com" + "/v1/embeddings"
    token = "DW-ms-xxx"
    
    print("api_url:"+api_url)
    print("token:"+token)
    
    headers = {
        "Authorization": f"{token}",
        "Content-Type": "application/json"
    }
    
    payload = {
        "input": "測試文本",
        "model": "bge-m3"
    }
    
    try:
        response = requests.post(api_url, headers=headers, data=json.dumps(payload))
        print("響應狀態代碼:", response.status_code)
        print("響應內容:", response.text)  # 查看詳細錯誤資訊
    except Exception as e:
        print("請求異常:", e)
  3. 編輯節點內容後,在節點編輯頁面右側的調試配置中,選擇已完成網路連通配置的資源群組和步驟1中安裝了requests庫的自訂鏡像

  4. 單擊運行節點,即可調用已部署的服務模型執行相關命令。

    說明
    • 節點調度:若調用服務模型的節點需要周期性調度執行,您需要在節點右側的調度配置中選擇已與服務模型完成網路連通配置的資源群組,並在調度策略配置相關的調度屬性。

    • 節點發布:若任務需要發布至生產環境執行,請單擊介面image表徵圖喚起發布流程,通過該流程將任務發布至生產環境。節點只有在發布至生產環境後,才會進行周期性調度。

相關閱讀

調用大模型,更多命令細節可參見OpenAI-Compatible Server