全部產品
Search
文件中心

Alibaba Cloud Model Studio:低代碼快速構建RAG應用

更新時間:Dec 17, 2024

功能介紹

本文主要介紹如何基於阿里雲百鍊的應用中心快速建立RAG應用,並通過API/SDK低代碼方式調用RAG應用進行文檔問答的最佳實務。

建立應用

Step 1:資料管理-匯入資料

在左側導覽列,選擇資料管理非結構化資料頁簽,選擇“預設類目”後,點擊“匯入資料”,然後通過“本地上傳”的方式匯入資料。匯入資料需要花費一定的時間,需要耐心等待資料轉為“匯入完成”的狀態(通過手動點擊重新整理按鈕)。

image

Step 2:建立知識索引

  1. 在左側導覽列,選擇資料應用 > 知識索引點擊建立知識庫,輸入知識庫名稱,保持預設配置,點擊下一步

    image

  2. 選擇相關檔案,點擊下一步

    image

  3. 保持預設配置,點擊匯入完成,系統自動進行文檔解析。

    文檔解析需要一定時間,請您耐心等待,直至狀態變更為“解析完成”狀態,才能在後續的文檔問答過程中被檢索到。

    image

  4. 返回知識庫索引首頁, 擷取知識索引ID。知識索引支援與百鍊Assistant API結合使用,支援RAG和外掛程式的組合調用。

    image

Step 3:建立應用

在左側導覽列中,選擇我的應用程式單擊新增應用 > 智能體應用 > 直接建立,進入建立應用頁面,配置以下參數:

  1. 單擊image選擇模型。同時,還支援配置與模型產生內容相關的參數,例如,溫度係數等。

  2. 開啟知識庫檢索增強開關,單擊“配置知識庫”。

  3. 選擇知識庫,即在Step2中建立的知識索引。

  4. 單擊“發布”按鈕。

    應用發布後,即可在右側的視窗進行效果測試。

    image

  5. 應用列表頁面,擷取應用ID。

    image

調用應用

前提條件

通過API/SDK調用應用

您需要將YOUR_APP_ID替換為已擷取的應用ID,代碼才能正常運行。

Python

import os
from http import HTTPStatus
import dashscope
from dashscope import Application

dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'

def call_agent_app():
    response = Application.call(app_id='YOUR_APP_ID',
                                prompt='百鍊的業務空間是什嗎?如何使用業務空間?',
                                api_key=os.getenv("DASHSCOPE_API_KEY"),  # 若沒有配置環境變數,請用百鍊API Key將本行替換為:api_key="sk-xxx",
                                )

    if response.status_code != HTTPStatus.OK:
        print('request_id=%s, code=%s, message=%s\n' % (response.request_id, response.status_code, response.message))
    else:
        print('request_id=%s\n output=%s\n usage=%s\n' % (response.request_id, response.output, response.usage))


if __name__ == '__main__':
    call_agent_app()

Java

import com.alibaba.dashscope.app.*;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.Constants;

public class Main{
 static {
        Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
    }
      public static void callAgentApp() throws ApiException, NoApiKeyException, InputRequiredException {
        ApplicationParam param = ApplicationParam.builder()
            // 若沒有配置環境變數,請用百鍊API Key將下行替換為:.apiKey("sk-xxx")
            .apiKey(System.getenv("DASHSCOPE_API_KEY"))
            .appId("YOUR_APP_ID")
            .prompt("百鍊的業務空間是什嗎?如何使用業務空間?")
            .build();

        Application application = new Application();
        ApplicationResult result = application.call(param);

        System.out.printf("requestId: %s, text: %s, finishReason: %s\n",
                result.getRequestId(), result.getOutput().getText(), result.getOutput().getFinishReason());
    }

    public static void main(String[] args) {
        try {
            callAgentApp();
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            System.out.printf("Exception: %s", e.getMessage());
        }
        System.exit(0);
    }  
}

curl

curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/apps/YOUR_APP_ID/completion \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
    "input": {
        "prompt": "百鍊的業務空間是什嗎?如何使用業務空間?"
    },
    "parameters":  {},
    "debug": {}
}' --verbose