請求體 | 單輪對話Python請求樣本 import os
from http import HTTPStatus
from dashscope import Application
import dashscope
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
response = Application.call(
# 若沒有配置環境變數,可用百鍊API Key將下行替換為:api_key="sk-xxx"。但不建議在生產環境中直接將API Key寫入程式碼到代碼中,以減少API Key泄露風險。
api_key=os.getenv("DASHSCOPE_API_KEY"),
app_id='YOUR_APP_ID',
prompt='你是誰?')
if response.status_code != HTTPStatus.OK:
print(f'request_id={response.request_id}')
print(f'code={response.status_code}')
print(f'message={response.message}')
print(f'請參考文檔:https://www.alibabacloud.com/help/zh/model-studio/developer-reference/error-code')
else:
print(response.output.text)
Java請求樣本 // 建議dashscope SDK的版本 >= 2.12.0
import com.alibaba.dashscope.app.*;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
public class Main {
static {
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
public static void appCall()
throws ApiException, NoApiKeyException, InputRequiredException {
ApplicationParam param = ApplicationParam.builder()
// 若沒有配置環境變數,可用百鍊API Key將下行替換為:.apiKey("sk-xxx")。但不建議在生產環境中直接將API Key寫入程式碼到代碼中,以減少API Key泄露風險。
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.appId("YOUR_APP_ID")
.prompt("你是誰?")
.build();
Application application = new Application();
ApplicationResult result = application.call(param);
System.out.printf("text: %s\n",
result.getOutput().getText());
}
public static void main(String[] args) {
try {
appCall();
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
System.err.println("message:"+e.getMessage());
System.out.println("請參考文檔:https://www.alibabacloud.com/help/zh/model-studio/developer-reference/error-code");
}
System.exit(0);
}
}
HTTP請求樣本 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": {}
}'
YOUR_APP_ID替換為實際的應用 ID。 多輪對話Python請求樣本 import os
from http import HTTPStatus
from dashscope import Application
import dashscope
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
def call_with_session():
response = Application.call(
# 若沒有配置環境變數,可用百鍊API Key將下行替換為:api_key="sk-xxx"。但不建議在生產環境中直接將API Key寫入程式碼到代碼中,以減少API Key泄露風險。
api_key=os.getenv("DASHSCOPE_API_KEY"),
app_id='YOUR_APP_ID', # 替換為實際的應用 ID
prompt='你是誰?')
if response.status_code != HTTPStatus.OK:
print(f'request_id={response.request_id}')
print(f'code={response.status_code}')
print(f'message={response.message}')
print(f'請參考文檔:https://www.alibabacloud.com/help/zh/model-studio/developer-reference/error-code')
return response
responseNext = Application.call(
# 若沒有配置環境變數,可用百鍊API Key將下行替換為:api_key="sk-xxx"。但不建議在生產環境中直接將API Key寫入程式碼到代碼中,以減少API Key泄露風險。
api_key=os.getenv("DASHSCOPE_API_KEY"),
app_id='YOUR_APP_ID', # 替換為實際的應用 ID
prompt='你有什麼技能?',
session_id=response.output.session_id) # 上一輪response的session_id
if responseNext.status_code != HTTPStatus.OK:
print(f'request_id={responseNext.request_id}')
print(f'code={responseNext.status_code}')
print(f'message={responseNext.message}')
print(f'請參考文檔:https://www.alibabacloud.com/help/zh/model-studio/developer-reference/error-code')
else:
print('%s\n session_id=%s\n' % (responseNext.output.text, responseNext.output.session_id))
# print('%s\n' % (response.usage))
if __name__ == '__main__':
call_with_session()
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 java.util.Arrays;
import java.util.List;
public class Main {
static {
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
public static void callWithSession()
throws ApiException, NoApiKeyException, InputRequiredException {
ApplicationParam param = ApplicationParam.builder()
// 若沒有配置環境變數,可用百鍊API Key將下行替換為:.apiKey("sk-xxx")。但不建議在生產環境中直接將API Key寫入程式碼到代碼中,以減少API Key泄露風險。
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
// 替換為實際的應用 ID
.appId("YOUR_APP_ID")
.prompt("你是誰?")
.build();
Application application = new Application();
ApplicationResult result = application.call(param);
param.setSessionId(result.getOutput().getSessionId());
param.setPrompt("你有什麼技能?");
result = application.call(param);
System.out.printf("%s\n, session_id: %s\n",
result.getOutput().getText(), result.getOutput().getSessionId());
}
public static void main(String[] args) {
try {
callWithSession();
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
System.out.printf("Exception: %s", e.getMessage());
System.out.println("請參考文檔:https://www.alibabacloud.com/help/zh/model-studio/developer-reference/error-code");
}
System.exit(0);
}
}
HTTPcurl請求樣本(上一輪對話) 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": {}
}'
請求樣本(下一輪對話) 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": "你有什麼技能?",
"session_id":"4f8ef7233dc641aba496cb201fa59f8c"
},
"parameters": {},
"debug": {}
}'
YOUR_APP_ID替換為實際的應用 ID。下一輪對話的輸入參數session_id 欄位值替換為實際上一輪對話返回的session_id值。 目前僅智能體應用和對話型工作流程應用支援多輪對話功能。 自訂參數透傳Python請求樣本 import os
from http import HTTPStatus
# 建議dashscope SDK 的版本 >= 1.14.0
from dashscope import Application
import dashscope
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
biz_params = {
# 智能體應用的自訂外掛程式輸入參數透傳,自訂的外掛程式ID替換{your_plugin_code}
"user_defined_params": {
"{your_plugin_code}": {
"article_index": 2}}}
response = Application.call(
# 若沒有配置環境變數,可用百鍊API Key將下行替換為:api_key="sk-xxx"。但不建議在生產環境中直接將API Key寫入程式碼到代碼中,以減少API Key泄露風險。
api_key=os.getenv("DASHSCOPE_API_KEY"),
app_id='YOUR_APP_ID',
prompt='寢室公約內容',
biz_params=biz_params)
if response.status_code != HTTPStatus.OK:
print(f'request_id={response.request_id}')
print(f'code={response.status_code}')
print(f'message={response.message}')
print(f'請參考文檔:https://www.alibabacloud.com/help/zh/model-studio/developer-reference/error-code')
else:
print('%s\n' % (response.output.text)) # 處理只輸出文本text
# print('%s\n' % (response.usage))
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.JsonUtils;
public class Main {
static {
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
public static void appCall() throws NoApiKeyException, InputRequiredException {
String bizParams =
// 智能體應用的自訂外掛程式輸入參數透傳,自訂的外掛程式ID替換{your_plugin_code}
"{\"user_defined_params\":{\"{your_plugin_code}\":{\"article_index\":2}}}";
ApplicationParam param = ApplicationParam.builder()
// 若沒有配置環境變數,可用百鍊API Key將下行替換為:.apiKey("sk-xxx")。但不建議在生產環境中直接將API Key寫入程式碼到代碼中,以減少API Key泄露風險。
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.appId("YOUR_APP_ID")
.prompt("寢室公約內容")
.bizParams(JsonUtils.parse(bizParams))
.build();
Application application = new Application();
ApplicationResult result = application.call(param);
System.out.printf("%s\n",
result.getOutput().getText());
}
public static void main(String[] args) {
try {
appCall();
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
System.out.printf("Exception: %s", e.getMessage());
System.out.println("請參考文檔:https://www.alibabacloud.com/help/zh/model-studio/developer-reference/error-code");
}
System.exit(0);
}
}
HTTPcurl請求樣本 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": "寢室公約內容",
"biz_params":
{
"user_defined_params":
{
"{your_plugin_code}":
{
"article_index": 2
}
}
}
},
"parameters": {},
"debug":{}
}'
YOUR_APP_ID替換為實際的應用 ID。 流式輸出Python請求樣本 import os
from http import HTTPStatus
from dashscope import Application
import dashscope
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
responses = Application.call(
# 若沒有配置環境變數,可用百鍊API Key將下行替換為:api_key="sk-xxx"。但不建議在生產環境中直接將API Key寫入程式碼到代碼中,以減少API Key泄露風險。
api_key=os.getenv("DASHSCOPE_API_KEY"),
app_id='YOUR_APP_ID',
prompt='你是誰?',
stream=True, # 流式輸出
incremental_output=True) # 增量輸出
for response in responses:
if response.status_code != HTTPStatus.OK:
print(f'request_id={response.request_id}')
print(f'code={response.status_code}')
print(f'message={response.message}')
print(f'請參考文檔:https://www.alibabacloud.com/help/zh/model-studio/developer-reference/error-code')
else:
print(f'{response.output.text}\n') # 處理只輸出文本text
Java請求樣本 // 建議dashscope SDK的版本 >= 2.15.0
import com.alibaba.dashscope.app.*;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import io.reactivex.Flowable;// 流式輸出
// 智能體應用調用實現流式輸出結果
public class Main {
static {
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
public static void streamCall() throws NoApiKeyException, InputRequiredException {
ApplicationParam param = ApplicationParam.builder()
// 若沒有配置環境變數,可用百鍊API Key將下行替換為:.apiKey("sk-xxx")。但不建議在生產環境中直接將API Key寫入程式碼到代碼中,以減少API Key泄露風險。
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
// 替換為實際的應用 ID
.appId("YOUR_APP_ID")
.prompt("你是誰?")
// 增量輸出
.incrementalOutput(true)
.build();
Application application = new Application();
// .streamCall():流式輸出內容
Flowable<ApplicationResult> result = application.streamCall(param);
result.blockingForEach(data -> {
System.out.printf("%s\n",
data.getOutput().getText());
});
}
public static void main(String[] args) {
try {
streamCall();
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
System.out.printf("Exception: %s", e.getMessage());
System.out.println("請參考文檔:https://www.alibabacloud.com/help/zh/model-studio/developer-reference/error-code");
}
System.exit(0);
}
}
HTTPcurl請求樣本 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' \
--header 'X-DashScope-SSE: enable' \
--data '{
"input": {
"prompt": "你是誰?"
},
"parameters": {
"incremental_output":true
},
"debug": {}
}'
YOUR_APP_ID替換為實際的應用 ID。 知識庫過濾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": "請幫我推薦一款3000元以下的手機"
},
"parameters": {
"rag_options" : {
"pipeline_ids":["YOUR_PIPELINE_ID1"]}
},
"debug": {}
}'
YOUR_APP_ID替換為實際的應用 ID,YOUR_PIPELINE_ID1替換為指定的知識庫ID。 |
app_id string 必選 應用的標識。在我的應用程式頁面的應用卡片上可以擷取應用ID。 Java SDK中為appId,通過HTTP調用時,請將 app_id 放入 URL 中。 |
|
prompt string 必選 輸入當前期望應用執行的指令prompt ,用來指導應用產生回複。 暫不支援傳入檔案。如果應用使用的是Qwen-Long模型,應用調用方法與其他模型一致。 通過HTTP調用時,請將 prompt 放入 input 對象中。 |
session_id string 可選 歷史對話的唯一標識。如果您需要進行多輪對話,請將上一輪對話返回的session_id 作為下一輪對話的參數。當傳入session_id 後,將在雲端儲存對話歷史,調用應用會自動攜帶儲存的對話歷史。 目前僅智能體應用和對話型工作流程應用支援多輪對話功能。 Java SDK中為setSessionId。通過HTTP調用時,請將 session_id 放入 input 對象中。 |
workspace string 可選 業務空間標識。調用子業務空間的應用時需傳遞workspace 標識,調用預設業務空間的應用時無需傳遞workspace 。 在子業務空間裡,點擊我的應用程式頁面的應用卡片上的調用,即可在應用API代碼中擷取子業務空間的workspace 標識,具體請參考擷取Workspace ID。 通過HTTP調用時,請指定Header中的 X-DashScope-WorkSpace。 |
stream boolean 可選 是否流式輸出回複。參數值: Java SDK中為streamCall。通過HTTP調用時,請指定Header中的 X-DashScope-SSE 為 enable。 |
incremental_output boolean 可選 在流式輸出模式下是否開啟增量輸出。參數值: false(預設值):每次輸出當前已經產生的整個序列,最終輸出為完整結果。 I
I like
I like apple
I like apple.
true:增量輸出,即後續輸出內容不包含已輸出的內容。您需要即時地逐個讀取這些片段以獲得完整的結果。 I
like
apple
.
Java SDK中為incrementalOutput。通過HTTP調用時,請將incremental_output放入parameters對象中。
|
|
biz_params object 可選 Java SDK中為bizParams,通過HTTP調用時,請將 biz_params 放入 input 對象中。 |
has_thoughts boolean 可選 是否輸出外掛程式調用或知識檢索的過程資訊,預設值False。調用時設定此參數為True |
image_list Array 可選 輸入的圖片連結清單。 當智能體應用關連接構化知識庫時,支援通過image_list 參數傳遞圖片連結。此時,如果知識庫包含圖片索引,系統會先將輸入圖片轉為向量並檢索到相關記錄,然後將這些記錄與提問一起提供給大模型。 "image_list" : ["https://example.com/images/example.jpg"]
#這是一個虛構的URL,請替換為實際存在的圖片URL
可以是多個,每個圖片連結之間通過英文逗號分隔。 Java SDK中為images。通過HTTP調用時,請將 image_list 放入 input 對象中。 |
rag_options Array 可選 用於設定知識庫檢索的範圍,例如對指定的知識庫或文檔進行檢索。詳細用法和規則請參見應用調用文檔。 Java SDK中為ragOptions。通過HTTP調用時,請將 rag_options 放入 parameters 對象中。 屬性 pipeline_ids Array 必選 知識庫ID,傳入該參數將對指定知識庫內所有文檔進行檢索。 此參數為調用時必要欄位,如果在控制台應用中配置了知識庫則調用時可以不傳。 在知識索引頁面可以擷取知識庫ID,也可以使用CreateIndex介面返回的Data.Id 。 知識庫ID上限5個,每個ID之間用英文逗號分隔,例如["知識庫ID1", "知識庫ID2"]。如果知識庫ID傳入多於5個,只生效前5個。 Java SDK中為pipelineIds。 file_ids Array 可選 非結構文檔ID,傳入該參數將對指定非結構化文檔進行檢索。 在資料管理頁面的文檔列表中可以擷取文檔ID,也可以使用AddFile介面返回的文檔ID。 傳入文檔ID時,還需要傳入文檔所屬的知識庫ID才會生效。文檔ID上限100個,每個ID之間用英文逗號分隔,例如["文檔ID1", "文檔ID2"]。 Java SDK中為fileIds。 metadata_filter Object 可選 非結構化文檔的中繼資料,傳入該參數將對具備該中繼資料的非結構化文檔進行檢索。 在知識索引頁面,進入某個知識庫後可以查看非結構化文檔的中繼資料(Meta資訊)。在建立非結構化知識庫時可以設定中繼資料。調用ListChunks介面可擷取指定文檔的所有文本切片的詳細資料。 傳入中繼資料時,還需要傳入所屬的知識庫ID才會生效。 Java SDK中為metadataFilter。 tags Array 可選 非結構化文檔的標籤,傳入該參數將對具備該標籤的非結構化文檔進行檢索。 在資料管理頁面,可以查看非結構化文檔的標籤。也可以通過DescribeFile介面擷取文檔標籤。 可以是多個tag,每個tag之間用英文逗號分隔,例如["標籤1", "標籤2"]。 |
|
|
|