Skip to main content
應用調用

應用的自訂參數傳遞

本文介紹如何在阿里雲百鍊的 智能体应用 和 工作流应用 (智能體編排應用已被工作流程應用替代)調用中使用自訂參數傳遞功能,主要適用於自訂外掛程式與自訂節點的參數傳遞。

您需要已擷取API Key配置API Key到環境變數。如果通過SDK調用,還需要安裝DashScope SDK。請將範例程式碼中的 DASHSCOPE_API_HOST 替換為擷取的 API Host。

自訂外掛程式參數傳遞

本文以寢室公約內容查詢工具作為樣本,向您展示API如何調用應用的自訂外掛程式參數傳遞功能。
自訂外掛程式的參數通過關聯的智能体应用傳遞,或通過工作流应用中的外掛程式節點傳遞。
下方樣本展示在智能体应用中如何傳遞自訂外掛程式參數。

如何使用

步驟一:建立自訂外掛程式工具

如果已建立外掛程式工具或已匯入了外掛程式,請跳過此步驟。
  1. 建立自訂外掛程式:訪問百鍊控制台的外掛程式頁面,單擊新增自定义插件,填寫外掛程式資訊,如需要鑒權請開啟是否鉴权開關,填寫鑒權配置資訊。
    樣本外掛程式描述:寢室公約查詢工具,可以根據輸入的數字索引查詢特定條目。
    樣本外掛程式 URL:https://domitorgreement-plugin-example-icohrkdjxy.cn-beijing.fcapp.run
    樣本鑒權配置:鑒權類型選擇使用者級鑒權,位置選擇Header,Type 選擇 basic 請注意:插件描述是對外掛程式用途的簡要說明,能協助大模型判斷當前任務是否需要調用當前外掛程式,請使用自然語言進行描述。
  2. 建立工具:填寫工具資訊,配置輸入參數和輸出參數。請注意:
    1. 工具描述能協助大模型更好的理解工具功能和使用情境。請使用自然語言進行描述,盡量給出使用樣本。
    2. 参数名称儘可能帶有含義,可以協助大模型理解當前需要識別的參數資訊是什麼。
    3. 参数描述是對該入參的功能描述,要簡練且準確,協助大模型進一步理解取參的方式。
    4. 輸入參數的传参方式務必選擇业务透传
    此處樣本將寢室公約內容索引article_index設定為業務透傳參數。 填寫工具名稱為 寢室公約查詢工具,要求方法選擇 POST,提交方式選擇 application/json。輸入參數 article_index 的類型設為 Number,傳入方法選擇 Body,設定為必填。輸出參數名稱填寫 article,參數描述填寫"寢室公約內容",類型設為 String
  3. 單擊测试工具,運行通過後,发布外掛程式。

步驟二:智能體應用關聯指定外掛程式

外掛程式工具只能與位於相同業務空間裡的智能体应用關聯。
  1. 可在發行的外掛程式卡片上單擊添加到智能体,選擇需要關聯的智能體應用;
  2. 也可在應用內單擊+外掛程式,關聯指定的自訂外掛程式;
  3. 然後直接发布應用。

步驟三:API調用

  • 無需鑒權時:通過API調用自訂外掛程式,使用biz_paramsuser_defined_params傳遞自訂外掛程式資訊,your_plugin_code替換為實際的外掛程式ID,並傳遞外掛程式中配置的輸入參數索引值對。
    外掛程式ID可在外掛程式卡片上擷取。
    本樣本中傳入寢室公約索引article_index參數值為2,查詢第二條寢室公約內容,並返回正確結果。
    • Python
    • Java
    • HTTP
    請求樣本
    import os
    from http import HTTPStatus
    # 建議dashscope SDK 的版本 >= 1.14.0
    import dashscope
    from dashscope import Application
    
    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))
    
    響應樣本
    寢室公約的第二條規定如下:
    
    "寢室成員應當互幫互助、互相關心、互相學習、共同提高;寬容謙讓、相互尊重、以誠相待。"
    
    這表明在寢室內,成員之間應該培養一種積極正面的生活和學習氛圍,彼此協助和支援,同時也要學會理解和尊重他人。如果您需要瞭解公約的其他條款,請告訴我!
    
  • 需要鑒權時:通過API調用自訂外掛程式,外掛程式中開啟了鉴权開關,配置了用户级鉴权
    外掛程式ID在外掛程式卡片上擷取。
    • 使用biz_paramsuser_defined_params傳遞自訂外掛程式資訊,your_plugin_code替換為實際的外掛程式ID,並傳入外掛程式中配置的輸入參數索引值對。
    • 使用 biz_paramsuser_defined_tokens傳遞相關資訊,your_plugin_code替換為實際的外掛程式ID,user_token的參數值填入鑒權資訊,如實際DASHSCOPE_API_KEY的值。
    • 鑒權通過後根據傳遞的索引參數查詢特定條目並正確返回結果。
    本樣本中傳入寢室公約索引article_index參數值為2,user_token的值YOUR_TOKEN替換為實際DASHSCOPE_API_KEY的值。鑒權通過後,查詢第二條寢室公約內容,並返回正確結果。
    • Python
    • Java
    • HTTP
    請求樣本
    from http import HTTPStatus
    import os
    # 建議dashscope SDK 的版本 >= 1.14.0
    import dashscope
    from dashscope import Application
    
    dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
    biz_params = {
        # 智能體應用的自訂外掛程式鑒權傳遞,自訂的外掛程式ID替換your_plugin_code,鑒權資訊替換YOUR_TOKEN,如API key
        "user_defined_params": {
            "your_plugin_code": {
                "article_index": 2}},
        "user_defined_tokens": {
            "your_plugin_code": {
                "user_token": "YOUR_TOKEN"}}}
    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))
    
    響應樣本
    寢室公約的第二條規定如下:
    
    寢室成員應當互幫互助、互相關心、互相學習、共同提高;寬容謙讓、相互尊重、以誠相待。
    
    如果您需要瞭解更多的規定內容,請告訴我。
    

自訂節點參數傳遞

本文以根據城市名查詢城市行政地區劃分作為樣本,向您展示API如何調用應用的自訂節點參數傳遞功能。
應用的自訂節點參數通過工作流应用的開始節點傳遞。
下方樣本展示在工作流应用中,傳遞開始節點的自訂參數。

如何使用

步驟一:自訂節點參數

訪問百鍊控制台的應用管理頁面,選擇工作流应用並自訂開始節點的參數(樣本設定String類型變數city),同時在Prompt中插入變數city和變數query,並发布應用。

步驟二:API調用

調用時通過biz_params欄位傳遞city,通過prompt欄位傳遞query。
  • Python
  • Java
  • HTTP
請求樣本
import os
from http import HTTPStatus
import dashscope
from dashscope import Application
# 工作流程應用自訂參數傳遞

dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
biz_params = {"city": "杭州"}
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='查詢這個城市的行政地區劃分',
    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(f'{response.output.text}')  # 處理只輸出文本text
響應樣本
杭州市,作為浙江省的省會城市,其行政地區劃分包括10個市轄區:上城區、拱墅區、西湖區、濱江區、蕭山區、餘杭區、臨平區、錢塘區、富陽區、臨安區。每個區都有其獨特的特色和發展重點。

- 上城區:位於杭州市中心地帶,是杭州的政治、經濟、文化中心之一。
- 拱墅區:以運河文化為特色,擁有眾多歷史文化遺產。
- 西湖區:著名的西湖風景區就位於此區,是旅遊觀光的重要目的地。
- 濱江區:高新技術產業聚集地,阿里巴巴等知名企業坐落於此。
- 蕭山區:東南部的一個行政區,經濟發展迅速,特別是製造業方面。
- 餘杭區:近年來發展快速,尤其是互連網經濟領域,阿里巴巴總部也設在這裡(註:阿里巴巴總部實際位於濱江區)。
- 臨平區:新成立的行政區,旨在促進該地區經濟社會全面發展。
- 錢塘區:同樣是一個較新的行政區劃調整結果,強調創新發展和生態保護相結合。
- 富陽區:位於杭州西南方向,以其豐富的自然景觀和悠久的歷史文化著稱。
- 臨安區:地處杭州西部,以生態優美聞名,並且有著深厚的文化底蘊。

請注意,隨著時間推移,具體的城市規劃可能會有所變化,請參考最新的官方資訊。

相關文檔

自訂外掛程式:自訂外掛程式的建立步驟。 應用調用:應用的調用方式及更多用法。 應用調用API:完整的參數列表和調用樣本。