應(yīng)用場景:通用搜索領(lǐng)域
百度搜索RAG_PRO組件的綜合優(yōu)勢在于通過結(jié)合百度搜索的搜索引擎技術(shù)和ERNIE模型的語義理解能力在讶,可以更準確地理解用戶的搜索意圖,并提供與搜索查詢相關(guān)性更高的搜索結(jié)果。
百度搜索RAG_PRO組件支持配置用戶指令温数,temperature序愚,top_p,以及溯源開關(guān)等矩动,為用戶提供了更靈活的控制選項有巧。 對比舊版百度搜索RAG,新版百度搜索RAG_PRO在支持配置檢索個數(shù)和檢索類型(網(wǎng)頁悲没、視頻等)方面進行了升級篮迎。
一、 看效果
如下示例代碼可以直接運行看效果:
import os
# 設(shè)置環(huán)境變量
os.environ["APPBUILDER_TOKEN"] = "bce-v3/ALTAK-n5AYUIUJMarF7F7iFXVeK/1bf65eed7c8c7efef9b11388524fa1087f90ea58"
print("init done")
import appbuilder
# 創(chuàng)建rag_with_baidusearch對象, 并初始化人設(shè)指令
rag_with_baidusearch_pro = appbuilder.RagWithBaiduSearchPro(
model="ERNIE Speed-AppBuilder",
instruction=appbuilder.Message("你是問答助手示姿,在回答問題前需要加上: 很高興為您解答"))
# 運行rag_with_baidusearch組件甜橱,開啟拒答、澄清追問栈戳、重點強調(diào)岂傲、友好性提升、溯源能力功能
msg = appbuilder.Message("黑龍江大學開學時間")
result = rag_with_baidusearch_pro.run(
msg, temperature=0.5, stream=True)
# 流式輸出運行結(jié)果子檀,如果非流式輸出直接print(result)
#print(result.content)
for item in result.content:
print(item)
#非流式可以輸出搜索的網(wǎng)頁鏈接
for search_baidu in result.extra['search_baidu']:
print(search_baidu['url'])
#生成web頁面進行調(diào)試
agent = appbuilder.AgentRuntime(component=rag_with_baidusearch_pro)
# 啟動 chainlit 服務(wù)
agent.chainlit_demo(port=8091)
二镊掖、代碼說明
初始化參數(shù)
-
model
: 模型名稱,用于指定要使用的千帆模型褂痰。 -
instruction (obj:Message, 可選)
: 可設(shè)定人設(shè)亩进,如:你是問答助手,在回答問題前需要加上“很高興為您解答:”
調(diào)用參數(shù)
調(diào)用參數(shù)中的 instruction 會覆蓋初始化時的參數(shù)缩歪。
-
msg (obj:Message)
: 輸入消息归薛,包含用戶提出的問題。這是一個必需的參數(shù)匪蝙。 -
instruction (obj:Message, 可選)
: 可設(shè)定人設(shè)主籍,如:你是問答助手,在回答問題前需要加上“很高興為您解答:” -
stream (bool, 可選)
: 指定是否以流式形式返回響應(yīng)骗污。默認為 False崇猫。 -
temperature (float, 可選)
: 模型配置的溫度參數(shù),用于調(diào)整模型的生成概率需忿。取值范圍為 0.0 到 1.0诅炉,其中較低的值使生成更確定性蜡歹,較高的值使生成更多樣性。默認值為 1e-10涕烧。 -
top_p (float, 可選)
: 模型配置的top_p參數(shù)月而,top_p值越高輸出文本越多樣,top_p值越低輸出文本越穩(wěn)定议纯。取值范圍為 0.0 到 1.0父款,默認值為 1e-10。 -
search_top_k (int, 可選)
: 指定百度搜索返回的檢索個數(shù)瞻凤,最多10憨攒,默認為4。 -
hide_corner_markers (bool, 可選)
: 溯源開關(guān)阀参,默認開肝集。
返回值
- 返回一個
Message
對象,包含模型運行后的輸出消息蛛壳。
三杏瞻、采用流式輸出的效果
四、web頁面
最后自動打開了chainlit的web操作頁面衙荐,可以通過UI進行交互