小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

【阿里AgentScope框架】5. Pipeline模塊的組合使用及Pipeline模塊總結(jié)

 小張學(xué)AI 2024-05-15 發(fā)布于山東

大家好,我是 同學(xué)小張,持續(xù)學(xué)習(xí)C++進(jìn)階知識(shí)AI大模型應(yīng)用實(shí)戰(zhàn)案例,持續(xù)分享,歡迎大家點(diǎn)贊+關(guān)注,共同學(xué)習(xí)和進(jìn)步。


前面咱們已經(jīng)深入學(xué)習(xí)了AgentScope框架中Pipeline模塊的使用和實(shí)現(xiàn)原理,本文來(lái)總結(jié)一下這些Pipeline,以及探索一下各種Pipeline的組合用法。

0. 前置推薦閱讀

本文參考:https://modelscope./agentscope/zh_CN/tutorial/202-pipeline.html

1. Pipeline的使用方式總結(jié)

1.1 兩種Pipeline分裝

從前面的文章可以看出,AgentScope提供了兩種Pipeline的使用方式,分別為類類型的Pipeline和函數(shù)式的Pipeline

以順序式Pipeline為例,你既可以使用 SequentialPipeline 這種類類型的Pipeline

# 實(shí)例化并調(diào)用
pipeline = SequentialPipeline([agent1, agent2, agent3])
x = pipeline(x)

又可以使用 sequentialpipeline 這種函數(shù)式的Pipeline

# 直接調(diào)用
x = sequentialpipeline([agent1, agent2, agent3], x)

1.2 內(nèi)置Pipeline類型一覽

類類型Pipeline函數(shù)式Pipeline描述
SequentialPipelinesequentialpipeline按順序執(zhí)行一系列運(yùn)算符,將一個(gè)運(yùn)算符的輸出作為下一個(gè)運(yùn)算符的輸入。
IfElsePipelineifelsepipeline實(shí)現(xiàn)條件邏輯,如果條件為真,則執(zhí)行一個(gè)運(yùn)算符;如果條件為假,則執(zhí)行另一個(gè)運(yùn)算符。
SwitchPipelineswitchpipeline實(shí)現(xiàn)分支選擇,根據(jù)條件的結(jié)果從映射集中執(zhí)行一個(gè)運(yùn)算符。
ForLoopPipelineforlooppipeline重復(fù)執(zhí)行一個(gè)運(yùn)算符,要么達(dá)到設(shè)定的迭代次數(shù),要么直到滿足指定的中止條件。
WhileLoopPipelinewhilelooppipeline只要給定條件保持為真,就持續(xù)執(zhí)行一個(gè)運(yùn)算符。
-placeholder在流控制中不需要任何操作的分支,如 if-else/switch 中充當(dāng)占位符。

1.3 Pipeline模塊存在的意義

提供了一種多智能體間交互流程的控制邏輯封裝,簡(jiǎn)化了代碼。

下面是官方文檔中展示的使用Pipeline和不使用Pipeline的代碼對(duì)比:

可以看到,它簡(jiǎn)化了代碼,其實(shí)也就是將原本需要用戶寫的控制語(yǔ)句,封裝到了Pipeline中,省掉的這部分代碼,與Pipeline中的實(shí)現(xiàn)源碼基本一致。

以上示例省掉的那簡(jiǎn)單的幾行控制邏輯可能看不出多大的作用,但是當(dāng)邏輯復(fù)雜之后,這個(gè)Pipeline的作用就會(huì)顯現(xiàn)出來(lái)。

2. Pipeline的組合使用示例

from agentscope.pipelines import SequentialPipeline, IfElsePipeline
# 創(chuàng)建一個(gè)按順序執(zhí)行智能體的 Pipeline
pipe1 = SequentialPipeline([agent1, agent2, agent3])
# 創(chuàng)建一個(gè)條件執(zhí)行智能體的 Pipeline
pipe2 = IfElsePipeline(condition, agent4, agent5)
# 創(chuàng)建一個(gè)按順序執(zhí)行 pipe1 和 pipe2 的 Pipeline
pipe3 = SequentialPipeline([pipe1, pipe2])
# 調(diào)用 Pipeline
x = pipe3(x)

以上示例代碼中,首先創(chuàng)建了一個(gè)順序執(zhí)行的Pipeline,然后創(chuàng)建了一個(gè)條件Pipeline,最后通過(guò)順序Pipeline來(lái)執(zhí)行前面的兩個(gè)Pipeline。這樣就實(shí)現(xiàn)了agent、Pipeline以及各類Pipeline的組合使用。

所以,你也看到了,Pipeline不光能傳遞進(jìn)去一堆 agent,還能傳遞進(jìn)去一堆 pipeline。為什么?因?yàn)?code style="white-space:pre-wrap;line-height: 1.75;font-size: 12.6px;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;">Pipeline接收的實(shí)際是一堆Operator類型,只要繼承了這個(gè)類型,都可以使用Pipeline。

如果覺(jué)得本文對(duì)你有幫助,麻煩點(diǎn)個(gè)贊和關(guān)注唄 ~~~點(diǎn)擊上方公眾號(hào),關(guān)注↑↑↑


  • · 大家好,我是 同學(xué)小張,日常分享AI知識(shí)和實(shí)戰(zhàn)案例

  • · 歡迎 點(diǎn)贊 + 關(guān)注 ??,持續(xù)學(xué)習(xí),持續(xù)干貨輸出

公眾號(hào)內(nèi)文章一覽

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多