日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

API詳情

本文主要介紹如何使用API調(diào)用舊版的百煉RAG檢索增強應(yīng)用。

重要

2024年5月3日阿里云百煉產(chǎn)品全新升級迭代,具體升級內(nèi)容請參見官方預(yù)置應(yīng)用升級調(diào)整公告。此次升級后,舊版的RAG檢索增強應(yīng)用將不再支持新建。如果您的應(yīng)用創(chuàng)建日期在本次升級之前,您可以繼續(xù)參考本文來調(diào)用您的應(yīng)用。

  • 了解如何將您的企業(yè)知識庫遷移至新版知識庫并構(gòu)建RAG應(yīng)用(新),詳見下方遷移方案

  • 了解如何通過HTTP接口或SDK在您的業(yè)務(wù)代碼中調(diào)用RAG應(yīng)用(新),詳見應(yīng)用調(diào)用

遷移方案

企業(yè)知識庫目前已停止維護,我們建議您盡快將您的私有知識遷移至新版知識庫(阿里云暫無提供官方的遷移工具或服務(wù))。新版知識庫的功能更加豐富,并支持更多文檔格式。

企業(yè)知識類型

遷移方案

文檔

建議您創(chuàng)建非結(jié)構(gòu)化知識庫來管理文檔類知識。文檔導(dǎo)入方式可選擇本地上傳或從對象存儲OSS導(dǎo)入。

若選擇本地上傳,后續(xù)您需要手動更新知識庫;若選擇從對象存儲OSS導(dǎo)入,后續(xù)您可以通過整合對象存儲OSS、函數(shù)計算FC與百煉的知識庫API,實現(xiàn)知識庫的自動更新。

本地上傳支持通過控制臺和API操作;從對象存儲OSS導(dǎo)入目前僅支持通過控制臺操作。

更多說明,請參見知識庫:步驟一導(dǎo)入數(shù)據(jù)

FAQ

建議您創(chuàng)建結(jié)構(gòu)化知識庫來管理FAQ類知識。您可以通過本地上傳文檔或基于云數(shù)據(jù)庫RDS構(gòu)建結(jié)構(gòu)化知識庫。

若選擇本地上傳,后續(xù)您需要手動更新知識庫;若選擇基于云數(shù)據(jù)庫RDS構(gòu)建,RDS數(shù)據(jù)表中的數(shù)據(jù)更新將自動同步至知識庫。

目前這兩種方式都只能通過控制臺進行操作。

更多說明,請參見知識庫:步驟一導(dǎo)入數(shù)據(jù)

創(chuàng)建新版知識庫后,您便可以在我的應(yīng)用中將其與您的智能體應(yīng)用或者工作流應(yīng)用關(guān)聯(lián)。更多說明,請參見知識庫:步驟四引用知識庫

SDK使用

前提條件

調(diào)用示例

from http import HTTPStatus
from dashscope import Application


def rag_call():
    response = Application.call(app_id='YOUR_APP_ID',
                                prompt='API接口說明中, TopP參數(shù)改如何傳遞?',
                                )

    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__':
    rag_call()
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.List;


public class Main{
      public static void ragCall()
            throws ApiException, NoApiKeyException, InputRequiredException {
        RagApplicationParam param = RagApplicationParam.builder()
                .appId("YOUR_APP_ID")
                .prompt("API接口說明中, TopP參數(shù)改如何傳遞?")
                .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());

        if (result.getUsage() != null && result.getUsage().getModels() != null) {
            for (ApplicationUsage.ModelUsage usage : result.getUsage().getModels()) {
                System.out.printf("modelId: %s, inputTokens: %d, outputTokens: %d\n",
                        usage.getModelId(), usage.getInputTokens(), usage.getOutputTokens());
            }
        }
    }

    public static void main(String[] args) {
        try {
            ragCall();
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            throw new RuntimeException(e);
        }
        System.exit(0);
    }  
}

標簽檢索

如果您的企業(yè)知識數(shù)據(jù)量較大,可以采用標簽檢索的方式提高召回的準確率。

首先,需要參考知識標簽對文檔添加知識標簽。

其次,獲取到“標簽ID”,并通過doc_tag_codes參數(shù)傳入對應(yīng)的標簽ID,可以同時傳入多個標簽。

說明

當傳入標簽后,在知識檢索召回的過程中,將只在標簽對應(yīng)的文檔范圍中進行檢索召回,而不是整個知識庫。

from http import HTTPStatus
from dashscope import Application


def rag_call_with_tags():
    response = Application.call(app_id='YOUR_APP_ID',
                                prompt='API接口說明中, TopP參數(shù)改如何傳遞?',
                                doc_tag_codes=['471d*******3427', '471d*******3428'],  # 指定標簽范圍進行檢索
                                doc_reference_type=Application.DocReferenceType.simple,  # 返回結(jié)果中不包含角標
                                has_thoughts=True  # 開啟檢索過程信息返回結(jié)果
                                )

    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))

        thoughts = response.output.thoughts
        if thoughts is not None:
            for thought in thoughts:
                print('thought=%s' % thought)


if __name__ == '__main__':
    rag_call_with_tags()
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.List;
import java.util.Arrays;

public class Main {
      public static void ragCallWithTags()
            throws ApiException, NoApiKeyException, InputRequiredException {
        RagApplicationParam param = RagApplicationParam.builder()
                .appId("YOUR_APP_ID")
                .prompt("API接口說明中, TopP參數(shù)改如何傳遞?")
                // 指定標簽范圍進行檢索
                .docTagCodes(Arrays.asList("471d*******3427", "471d*******3428"))
                // 返回結(jié)果中不包含角標
                .docReferenceType(RagApplicationParam.DocReferenceType.SIMPLE)          
                // 開啟檢索過程信息返回結(jié)果
                .hasThoughts(true)
                .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());

        List<ApplicationOutput.Thought> thoughts = result.getOutput().getThoughts();
        if (thoughts != null && thoughts.size() > 0) {
            for (ApplicationOutput.Thought thought : thoughts) {
                System.out.printf("thought: %s\n", thought);
            }
        }
    }

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

多輪會話

云端托管多輪會話

阿里云百煉應(yīng)用提供云端托管多輪對話功能,通過session_id進行多輪會話,阿里云百煉云端將自動托管多輪會話,調(diào)用側(cè)無需自行維護多輪會話。

下面的例子中,第一次調(diào)用后返回session_id,在第二次調(diào)用時,可以傳入第一次返回的session_id,那么第二次調(diào)用模型服務(wù)時,將攜帶第一次調(diào)用的會話信息。

說明

目前session id會話有效期是1個小時,最大歷史會話輪數(shù)為50。

如果同時傳入session id和history時,優(yōu)先使用傳入的history,不再使用托管的多輪會話。

from http import HTTPStatus
from dashscope import Application


def call_with_session():
    response = Application.call(app_id='YOUR_APP_ID',
                                prompt='我想去新疆',
                                )

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

    response = Application.call(app_id='your app id',
                                prompt='那邊有什么旅游景點或者美食?',
                                session_id=response.output.session_id
                                )
    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, output=%s, usage=%s\n' % (response.request_id, response.output, response.usage))


if __name__ == '__main__':
    call_with_session()
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 {
      public static void callWithSession()
            throws ApiException, NoApiKeyException, InputRequiredException {
        ApplicationParam param = ApplicationParam.builder()
                .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("requestId: %s, text: %s, finishReason: %s\n",
                result.getRequestId(), result.getOutput().getText(), result.getOutput().getFinishReason());
    }
  
   public static void main(String[] args) {
        try {
						callWithSession();
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            System.out.printf("Exception: %s", e.getMessage());
        }
        System.exit(0);
    }  
}

調(diào)用側(cè)傳入多輪會話

調(diào)用側(cè)自行維護多輪會話時,可以通過history傳入多輪會話信息。

from http import HTTPStatus
from dashscope import Application


def call_with_history():
    prompt = '我想去新疆'
    response = Application.call(app_id="YOUR_APP_ID",
                                prompt=prompt,
                                )

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

    history = [{'user': prompt, 'bot': response.output.text}]
    response = Application.call(app_id="YOUR_APP_ID",
                                prompt='那邊有什么旅游景點或者美食?',
                                history=history
                                )
    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, output=%s, usage=%s\n' % (response.request_id, response.output, response.usage))


if __name__ == '__main__':
    call_with_history()
import com.alibaba.dashscope.app.*;
import com.alibaba.dashscope.common.History;
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 {
    public static void callWithHistory()
            throws ApiException, NoApiKeyException, InputRequiredException {
        String prompt = "我想去新疆";
        ApplicationParam param = ApplicationParam.builder()
                .appId(APP_ID)
                .prompt("我想去新疆")
                .build();

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

        param.setHistory(Arrays.asList(History.builder()
                .user(prompt)
                .bot(result.getOutput().getText())
                .build()));
        param.setPrompt("那邊有什么旅游景點或者美食?");
        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 {
						callWithHistory();
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            System.out.printf("Exception: %s", e.getMessage());
        }
        System.exit(0);
    }  
}

流式輸出

流式輸出需要添加對應(yīng)參數(shù)。其中,Python SDK中需要添加stream=True,Java SDK中需要使用streamCall接口調(diào)用。

from http import HTTPStatus
from dashscope import Application


def call_with_stream():
    responses = Application.call(app_id='YOUR_APP_ID',
                                 prompt='如何做炒西紅柿雞蛋?',
                                 stream=True
                                 )

    for response in responses:
        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('output=%s, usage=%s\n' % (response.output, response.usage))


if __name__ == '__main__':
    call_with_stream()
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;

import java.util.Arrays;
import java.util.List;

public class Main {
      public static void streamCall() throws NoApiKeyException, InputRequiredException {
        ApplicationParam param = ApplicationParam.builder()
                .appId("YOUR_APP_ID")
                .prompt("如何做土豆燉豬腳?")
                .build();

        Application application = new Application();
        Flowable<ApplicationResult> result = application.streamCall(param);
        result.blockingForEach(data -> {
            System.out.printf("requestId: %s, text: %s, finishReason: %s\n",
                    data.getRequestId(), data.getOutput().getText(), data.getOutput().getFinishReason());

        });
    }

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

業(yè)務(wù)空間

上述調(diào)用示例調(diào)用的是默認業(yè)務(wù)空間的應(yīng)用,如果需要調(diào)用其他業(yè)務(wù)空間,需要傳入指定的業(yè)務(wù)空間標識。

說明

請將WORKSPACE替換示例中的YOUR_WORKSPACE,代碼才能正常運行。請參考獲取業(yè)務(wù)空間 ID獲取WORKSPACE。

from http import HTTPStatus
from dashscope import Application


def call_with_workspace():
    response = Application.call(app_id='YOUR_APP_ID',
                                workspace='YOUR_WORKSPACE',
                                prompt='如何做炒西紅柿雞蛋?',
                                )

    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, text=%s, usage=%s\n' % (response.request_id, response.output.text, response.usage))


if __name__ == '__main__':
    call_with_workspace()
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 {
      public static void callWithWorkspace() throws NoApiKeyException, InputRequiredException {
        ApplicationParam param = ApplicationParam.builder()
                .workspace("YOUR_WORKSPACE")
                .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 {
		        callWithWorkspace();
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            System.out.printf("Exception: %s", e.getMessage());
        }
        System.exit(0);
    }
}

輸入?yún)?shù)

參數(shù)

類型

默認值

說明

app_id

string

-

應(yīng)用標識。

prompt

string

-

用戶當前輸入的期望模型執(zhí)行指令,用于指導(dǎo)模型生成回復(fù)。

session_id

string

-

對話歷史會話唯一標識,傳入session_id后,將在云端進行對話歷史記錄,調(diào)用大模型將自動攜帶存儲的對話歷史。請確保session_id不重復(fù),并且session_id和history二選一即可。

history(可選)

list[dict]

[]

用戶與模型的對話歷史,list中的每個元素是形式為{"user":"用戶輸入","bot":"模型輸出"}的一輪對話,多輪對話按時間順序排列。

workspace(可選)

string

-

業(yè)務(wù)空間標識。

seed(可選)

int

1234

生成時使用的隨機數(shù)種子,用戶控制模型生成內(nèi)容的隨機性。seed支持無符號64位整數(shù),默認值為1234。在使用seed時,模型將盡可能生成相同或相似的結(jié)果,但目前不保證每次生成的結(jié)果完全相同。

top_p(可選)

float

0.2

生成過程中核采樣方法的概率閾值,例如,取值為0.2時,僅保留概率加起來大于等于0.2的最可能token的最小集合作為候選集。取值范圍為(0,1.0),取值越大,生成的隨機性越高;取值越低,生成的確定性越高。

top_k(可選)

int

None

生成時,采樣候選集的大小。例如,取值為50時,僅將單次生成中得分最高的50個token組成隨機采樣的候選集。取值越大,生成的隨機性越高;取值越小,生成的確定性越高。默認不傳遞該參數(shù),取值為None或當top_k大于100時,表示不啟用top_k策略,此時,僅有top_p策略生效。

temperature(可選)

float

1.0

用于控制隨機性和多樣性的程度。具體來說,temperature值控制了生成文本時對每個候選詞的概率分布進行平滑的程度。較高的temperature值會降低概率分布的峰值,使得更多的低概率詞被選擇,生成結(jié)果更加多樣化;而較低的temperature值則會增強概率分布的峰值,使得高概率詞更容易被選擇,生成結(jié)果更加確定。

取值范圍: [0, 2),不建議取值為0,無意義。

python version >=1.10.1

java version >= 2.5.1

stream(可選)

bool

False

是否使用流式輸出。當以stream模式輸出結(jié)果時,接口返回結(jié)果為generator,需要通過迭代獲取結(jié)果,默認每次輸出為當前生成的整個序列,最后一次輸出為最終全部生成結(jié)果,可以通過參數(shù)incremental_output為False改變輸出模式為非增量輸出。

doc_tag_codes(可選)

list[str]

-

文檔標簽code列表。傳入文檔標簽code列表后,在檢索召回過程中,會從指定的標簽code關(guān)聯(lián)的文檔中進行檢索召回。

doc_reference_type

str

-

返回文檔檢索后的引用類型,取值為:simple。

傳simple則返回的結(jié)果中不包含角標信息。

has_thoughts

bool

False

是否輸出檢索召回處理過程信息。開啟后,將返回文檔檢索召回和模型推理的過程信息。

輸出參數(shù)

返回參數(shù)

類型

說明

備注

status_code

int

200(HTTPStatus.OK)表示請求成功,否則表示請求失敗,可以通過code獲取錯誤碼,通過message字段獲取錯誤詳細信息。

說明

Python才有這個字段,Java失敗會拋出異常,異常信息為code,message內(nèi)容。

request_Id

string

系統(tǒng)生成的標志本次調(diào)用的id。

code

string

表示請求失敗,表示錯誤碼,成功忽略。

python only

message

string

失敗,表示失敗詳細信息,成功忽略。

python only

output

dict

調(diào)用結(jié)果信息,對于千問模型,包含輸出text。

usage

dict

計量信息,表示本次請求的計量數(shù)據(jù)。

output.text

string

模型生成回復(fù)。

output.finish_reason

string

正在生成時為null,生成結(jié)束時如果由于停止token導(dǎo)致則為stop。

output.session_id

string

對話歷史會話的唯一標識.

在多輪會話時,可以使用此標識進行多輪會話保持。

usage.models[].model_id

string

本次應(yīng)用調(diào)用到的模型。

usage.models[].input_tokens

int

用戶輸入文本轉(zhuǎn)換成Token后的長度。

usage.models[].output_tokens

int

模型生成回復(fù)轉(zhuǎn)換為Token后的長度。

output.thoughts[].throught

string

模型的思考結(jié)果。

output.thoughts[].action_type

string

大模型返回的執(zhí)行步驟類型

api:執(zhí)行API插件,response:返回最終結(jié)果。

output.thoughts[].action_name

string

執(zhí)行的action名稱,如文檔檢索、API插件。

output.thoughts[].action

string

執(zhí)行的步驟。

output.thoughts[].action_input_stream

string

入?yún)⒌牧魇浇Y(jié)果。

output.thoughts[].action_input

string

插件的輸入?yún)?shù)。

output.thoughts[].response

string

模型調(diào)用返回的結(jié)果。

output.thoughts[].observation

string

檢索或插件的返回結(jié)果。

HTTP調(diào)用接口

功能描述

應(yīng)用調(diào)用同時支持 HTTP 調(diào)用來完成客戶的響應(yīng),目前提供普通 HTTP 和 HTTP SSE 兩種協(xié)議,您可根據(jù)自己的需求自行選擇。

前提條件

提交接口調(diào)用

POST https://dashscope.aliyuncs.com/api/v1/apps/{YOUR_APP_ID}/completion

入?yún)⒚枋?/h3>

傳參方式

字段

類型

必選

描述

示例值

Header

Content-Type

String

請求類型:application/json

application/json

Accept

String

*/*,選擇text/event-stream則會開啟 SSE 響應(yīng),默認無設(shè)置

text/event-stream

Authorization

String

API-Key,例如:Bearer d1**2a

Bearer d1**2a

X-DashScope-SSE

String

跟Accept: text/event-stream 二選一即可啟用SSE響應(yīng)

enable

X-DashScope-WorkSpace

String

業(yè)務(wù)空間標識。

ws_ik******RVYCKzt

Body

input.prompt

String

用戶當前輸入的期望模型執(zhí)行指令,支持中英文。

哪個公園距離我更近

input.history

List

用戶與模型的對話歷史,list中的每個元素是形式為{"user":"用戶輸入","bot":"模型輸出"}的一輪對話,多輪對話按時間正序排列。

"history": [

{

"user":"今天天氣好嗎?",

"bot":"今天天氣不錯,要出去玩玩嘛?"

},

{

"user":"那你有什么地方推薦?",

"bot":"我建議你去公園,春天來了,花朵開了,很美麗。"

}

]

input.session_id

String

對話歷史會話唯一標識, 傳入session_id后,將在云端進行對話歷史進行記錄,調(diào)用大模型將自動攜帶存儲的對話歷史。請確保session_id不重復(fù),并且session_id和history二選一即可。

input.doc_tag_codes

String

文檔標簽code列表。傳入文檔標簽code列表后,在檢索召回過程中,會從指定的標簽code關(guān)聯(lián)的文檔中進行檢索召回。

["471d*******3427", "881f*****0c232"]

parameters.seed

Integer

生成時使用的隨機數(shù)種子,用戶控制模型生成內(nèi)容的隨機性。seed支持無符號64位整數(shù),默認值為1234。在使用seed時,模型將盡可能生成相同或相似的結(jié)果,但目前不保證每次生成的結(jié)果完全相同。

65535

parameters.top_p

Float

生成時,核采樣方法的概率閾值。例如,取值為0.2時,僅保留累計概率之和大于等于0.2的概率分布中的token,作為隨機采樣的候選集。取值范圍為(0,1.0),取值越大,生成的隨機性越高;取值越低,生成的隨機性越低。默認值為0.2。注意,取值不要大于等于1。

0.2

parameters.top_k

Integer

生成時,采樣候選集的大小。例如,取值為50時,僅將單次生成中得分最高的50個token組成隨機采樣的候選集。取值越大,生成的隨機性越高;取值越小,生成的確定性越高。注意:如果top_k參數(shù)為空或者top_k的值大于100,表示不啟用top_k策略,此時僅有top_p策略生效,默認是空。

50

parameters.temperature

Float

用于控制隨機性和多樣性的程度。具體來說,temperature值控制了生成文本時對每個候選詞的概率分布進行平滑的程度。較高的temperature值會降低概率分布的峰值,使得更多的低概率詞被選擇,生成結(jié)果更加多樣化;而較低的temperature值則會增強概率分布的峰值,使得高概率詞更容易被選擇,生成結(jié)果更加確定。

取值范圍:[0, 2),系統(tǒng)默認值為1.0。不建議將值為0,因為這沒有意義。

1.0

parameters.has_thoughts

Bool

是否輸出檢索召回處理過程信息。開啟后,將返回文檔檢索召回和模型推理的過程信息。

出參描述

字段

類型

描述

示例值

status_code

int

200(HTTPStatus.OK)表示請求成功,否則表示請求失敗,可以通過code獲取錯誤碼,通過message字段獲取錯誤詳細信息。

說明

Python才有這個字段,Java失敗會拋出異常,異常信息為code,message內(nèi)容。

200

request_Id

string

系統(tǒng)生成的標識本次調(diào)用的id。

33dcf25a-******-8b711f15614e

code

string

表示請求失敗,表示錯誤碼,成功忽略。

message

string

失敗,表示失敗詳細信息,成功忽略。

output.text

string

模型生成回復(fù)。

output.finish_reason

string

正在生成時為null,生成結(jié)束時如果由于停止token導(dǎo)致則為stop。

output.session_id

string

對話歷史會話的唯一標識。

在多輪會話時,可以使用此標識進行多輪會話保持。

usage.models[].model_id

string

本次應(yīng)用調(diào)用到的模型。

usage.models[].input_tokens

int

用戶輸入文本轉(zhuǎn)換成Token后的長度。

usage.models[].output_tokens

int

模型生成回復(fù)轉(zhuǎn)換為Token后的長度。

output.thoughts[].throught

string

模型的思考結(jié)果。

output.thoughts[].action_type

string

大模型返回的執(zhí)行步驟類型

api:執(zhí)行API插件,response:返回最終結(jié)果。

output.thoughts[].action_name

string

執(zhí)行的action名稱,如文檔檢索、API插件。

output.thoughts[].action

string

執(zhí)行的步驟。

output.thoughts[].action_input_stream

string

入?yún)⒌牧魇浇Y(jié)果。

output.thoughts[].action_input

string

插件的輸入?yún)?shù)。

output.thoughts[].response

string

模型調(diào)用返回的結(jié)果。

output.thoughts[].observation

string

檢索或插件的返回結(jié)果。

請求示例(SSE 關(guān)閉)

以下示例展示通過CURL命令來調(diào)用RAG檢索增強應(yīng)用的腳本(SSE 關(guān)閉)。

說明

需要使用您的API-KEY替換示例中的YOUR_API_KEY,并將APP-ID替換示例中的YOUR_APP_ID,代碼才能正常運行。

curl --location 'https://dashscope.aliyuncs.com/api/v1/apps/{YOUR_APP_ID}/completion' \
--header 'Authorization: Bearer {YOUR_API_KEY}' \
--header 'Content-Type: application/json' \
--data '{
    "input": {
        "prompt": "如何做土豆燉豬腳?"
    },
    "parameters":  {},
    "debug": {}
}' --verbose

響應(yīng)示例(SSE關(guān)閉)

{
  "output": {
    "finish_reason": "stop",
    "session_id": "a08c1b4e******0c4513db9eea4",
    "text": "土豆燉豬腳是一道美味可口、營養(yǎng)豐富的家常菜,下面是一種簡單的制作方法:\n\n**材料準備:**\n1. 豬腳(豬蹄)500克\n2. 土豆2-3個\n3. 生姜3-4片\n4. 大蔥1根\n5. 八角2顆\n6. 桂皮一小塊\n7. 香葉2片\n8. 料酒適量\n9. 生抽、老抽各適量\n10. 冰糖適量\n11. 清水適量\n12. 鹽適量\n\n**步驟:**\n1. **豬腳處理**:豬腳剁成小塊,放入開水中焯水,去除血水和雜質(zhì),撈出后用清水沖洗干凈備用。\n   \n2. **炒糖色**:鍋中加入少量油,放入冰糖小火慢慢熬化至紅色且有泡沫時,將焯過水的豬腳塊倒入鍋中翻煎,使豬腳表面均勻地裹上糖色。\n\n3. **燉煮**:加入切好的姜片、蔥段以及八角、桂皮、香葉等香料一同翻炒出香味。然后烹入料酒,加入生抽、老抽調(diào)色,再加入足夠的熱水沒過豬腳。\n\n4. **燉煮豬腳**:大火燒沸后撇去浮沫,轉(zhuǎn)中小火慢燉約40分鐘至豬腳軟爛。\n\n5. **加入土豆**:在豬腳燉至七八成熟時,將土豆削皮切塊,加入鍋中,繼續(xù)燉煮約20分鐘,直到土豆熟透且能輕易插入筷子。\n\n6. **調(diào)味**:最后根據(jù)個人口味加鹽調(diào)味,燉煮幾分鐘讓味道充分融合即可。\n\n7. **出鍋**:燉至湯汁濃稠,土豆和豬腳都完全熟透后,撒上蔥花或者香菜點綴,即可關(guān)火出鍋。\n\n以上就是土豆燉豬腳的基本做法,具體燉煮時間可能因豬腳的老嫩程度和個人口感喜好有所不同,可以根據(jù)實際情況調(diào)整。"
  },
  "usage": {
    "models": [
      {
        "output_tokens": 456,
        "model_id": "qwen-max",
        "input_tokens": 64
      }
    ]
  },
  "request_id": "99432adc-8b15-953f-afba-fd0895a68773"
}

請求示例(SSE開啟)

以下示例展示通過CURL命令來調(diào)用RAG檢索增強應(yīng)用的腳本(SSE 開啟)。

說明

需要使用您的API-KEY替換示例中的YOUR_API_KEY,并將APP-ID替換示例中的YOUR_APP_ID,代碼才能正常運行。

curl --location 'https://dashscope.aliyuncs.com/api/v1/apps/{YOUR_APP_ID}/completion' \
--header 'Authorization: Bearer {YOUR_API_KEY}' \
--header 'Content-Type: application/json' \
--header 'X-DashScope-SSE: enable' \
--data '{
    "input": {
        "prompt": "如何做土豆燉豬腳?"
    },
    "parameters":  {},
    "debug": {}
}' --verbose

響應(yīng)示例(SSE開啟)

id:1
event:result
:HTTP_STATUS/200
data:{"output":{"session_id":"2c502d4df28******f00488c10da4","finish_reason":"null","text":"土豆"},"usage":{"models":[{"input_tokens":64,"output_tokens":1,"model_id":"qwen-max"}]},"request_id":"d9abe8f8-5be6-9118-9232-8c27b9ff536c"}

id:2
event:result
:HTTP_STATUS/200
data:{"output":{"session_id":"2c502d4df28******f00488c10da4","finish_reason":"null","text":"土豆燉"},"usage":{"models":[{"input_tokens":64,"output_tokens":2,"model_id":"qwen-max"}]},"request_id":"d9abe8f8-5be6-9118-9232-8c27b9ff536c"}

id:3
event:result
:HTTP_STATUS/200
data:{"output":{"session_id":"2c502d4df28******f00488c10da4","finish_reason":"null","text":"土豆燉豬"},"usage":{"models":[{"input_tokens":64,"output_tokens":3,"model_id":"qwen-max"}]},"request_id":"d9abe8f8-5be6-9118-9232-8c27b9ff536c"}

... ... ... ...
... ... ... ...

id:7
event:result
:HTTP_STATUS/200
data:{"output":{"session_id":"2c502d4df28******f00488c10da4","finish_reason":"null","text":"土豆燉豬腳是一道美味可口、營養(yǎng)豐富的家常菜,下面是一種簡單的制作方法:\n\n**材料準備:**\n1. 豬"},"usage":{"models":[{"input_tokens":64,"output_tokens":32,"model_id":"qwen-max"}]},"request_id":"d9abe8f8-5be6-9118-9232-8c27b9ff536c"}

請求示例(業(yè)務(wù)空間)

以下示例展示通過CURL命令來調(diào)用指定業(yè)務(wù)空間的RAG檢索增強應(yīng)用的腳本。

說明

需要使用您的API-KEY替換示例中的YOUR_API_KEY,并將APP-ID替換示例中的YOUR_APP_ID,然后將WORKSPACE替換示例中的YOUR_WORKSPACE,代碼才能正常運行。

curl --location 'https://dashscope.aliyuncs.com/api/v1/apps/{YOUR_APP_ID}/completion' \
--header 'Authorization: Bearer {YOUR_API_KEY}' \
--header 'Content-Type: application/json' \
--header 'X-DashScope-WorkSpace: {YOUR_WORKSPACE}' \
--data '{
    "input": {
        "prompt": "如何做土豆燉豬腳?"
    },
    "parameters":  {},
    "debug": {}
}' --verbose

響應(yīng)示例(業(yè)務(wù)空間)

{
  "output": {
    "finish_reason": "stop",
    "session_id": "a08c1b4e******0c4513db9eea4",
    "text": "土豆燉豬腳是一道美味可口、營養(yǎng)豐富的家常菜,下面是一種簡單的制作方法:\n\n**材料準備:**\n1. 豬腳(豬蹄)500克\n2. 土豆2-3個\n3. 生姜3-4片\n4. 大蔥1根\n5. 八角2顆\n6. 桂皮一小塊\n7. 香葉2片\n8. 料酒適量\n9. 生抽、老抽各適量\n10. 冰糖適量\n11. 清水適量\n12. 鹽適量\n\n**步驟:**\n1. **豬腳處理**:豬腳剁成小塊,放入開水中焯水,去除血水和雜質(zhì),撈出后用清水沖洗干凈備用。\n   \n2. **炒糖色**:鍋中加入少量油,放入冰糖小火慢慢熬化至紅色且有泡沫時,將焯過水的豬腳塊倒入鍋中翻煎,使豬腳表面均勻地裹上糖色。\n\n3. **燉煮**:加入切好的姜片、蔥段以及八角、桂皮、香葉等香料一同翻炒出香味。然后烹入料酒,加入生抽、老抽調(diào)色,再加入足夠的熱水沒過豬腳。\n\n4. **燉煮豬腳**:大火燒沸后撇去浮沫,轉(zhuǎn)中小火慢燉約40分鐘至豬腳軟爛。\n\n5. **加入土豆**:在豬腳燉至七八成熟時,將土豆削皮切塊,加入鍋中,繼續(xù)燉煮約20分鐘,直到土豆熟透且能輕易插入筷子。\n\n6. **調(diào)味**:最后根據(jù)個人口味加鹽調(diào)味,燉煮幾分鐘讓味道充分融合即可。\n\n7. **出鍋**:燉至湯汁濃稠,土豆和豬腳都完全熟透后,撒上蔥花或者香菜點綴,即可關(guān)火出鍋。\n\n以上就是土豆燉豬腳的基本做法,具體燉煮時間可能因豬腳的老嫩程度和個人口感喜好有所不同,可以根據(jù)實際情況調(diào)整。"
  },
  "usage": {
    "models": [
      {
        "output_tokens": 456,
        "model_id": "qwen-max",
        "input_tokens": 64
      }
    ]
  },
  "request_id": "99432adc-8b15-953f-afba-fd0895a68773"
}

異常響應(yīng)示例

在訪問請求出錯的情況下,輸出的結(jié)果中會通過 code 和 message 指明錯誤原因。

{"code":"InvalidApiKey","message":"Invalid API-key provided.","request_id":"2637fcf9-32b1-9f4e-b0e9-1724d4aea00e"}

狀態(tài)碼說明

服務(wù)調(diào)用返回的狀態(tài)碼詳情,請參見錯誤碼