功能介紹
本文主要介紹如何基於阿里雲百鍊的應用中心快速建立RAG應用,並通過API/SDK低代碼方式調用RAG應用進行文檔問答的最佳實務。
建立應用
Step 1:資料管理-匯入資料
在左側導覽列,選擇資料管理。在非結構化資料頁簽,選擇“預設類目”後,點擊“匯入資料”,然後通過“本地上傳”的方式匯入資料。匯入資料需要花費一定的時間,需要耐心等待資料轉為“匯入完成”的狀態(通過手動點擊重新整理按鈕)。
Step 2:建立知識索引
在左側導覽列,選擇點擊建立知識庫,輸入知識庫名稱,保持預設配置,點擊下一步。 。
選擇相關檔案,點擊下一步。
保持預設配置,點擊匯入完成,系統自動進行文檔解析。
文檔解析需要一定時間,請您耐心等待,直至狀態變更為“解析完成”狀態,才能在後續的文檔問答過程中被檢索到。
返回知識庫索引首頁, 擷取知識索引ID。知識索引支援與百鍊Assistant API結合使用,支援RAG和外掛程式的組合調用。
Step 3:建立應用
在左側導覽列中,選擇我的應用程式。單擊 ,進入建立應用頁面,配置以下參數:
單擊選擇模型。同時,還支援配置與模型產生內容相關的參數,例如,溫度係數等。
開啟知識庫檢索增強開關,單擊“配置知識庫”。
選擇知識庫,即在Step2中建立的知識索引。
單擊“發布”按鈕。
應用發布後,即可在右側的視窗進行效果測試。
在應用列表頁面,擷取應用ID。
調用應用
前提條件
您需要已擷取API Key並配置API Key到環境變數。
如果通過API/SDK調用應用,需要擷取到應用ID。
如果通過Assistant API調用,需要擷取到知識索引ID。
已安裝最新版SDK:安裝SDK。
通過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