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

多輪對(duì)話搜索

更新時(shí)間:

多輪對(duì)話搜索的服務(wù)創(chuàng)建操作指南和調(diào)優(yōu)建議。

服務(wù)創(chuàng)建

image.png

單擊快速創(chuàng)建,選擇多輪對(duì)話搜索,進(jìn)入服務(wù)創(chuàng)建界面,編輯服務(wù)名稱并選擇服務(wù)所使用的引擎,完成創(chuàng)建中進(jìn)入索引配置

引擎

提供檢索服務(wù)的基礎(chǔ)組建,可在資源中心進(jìn)行引擎管理也可在快速創(chuàng)建頁面直接選擇或添加。更多信息可查看引擎管理操作指南。

已適配引擎列表

版本

配置

插件

鏈接

阿里云Elasticsearch

V8.9 

V7.10 

V7.7 

V6.8 

V6.7

基礎(chǔ)建議2核8G,存在向量檢索需求8核32G

無要求

數(shù)據(jù)導(dǎo)入

image

image.png

數(shù)據(jù)源

企業(yè)知識(shí)庫存儲(chǔ),可在資源中心進(jìn)行數(shù)據(jù)源管理也可在快速創(chuàng)建頁面直接選擇或添加。更多信息可查看數(shù)據(jù)源管理操作指南。

已適配數(shù)據(jù)源列表

鏈接

阿里云 RDS MySQL

阿里云 MaxCompute

阿里云 OSS

子路徑/庫表

企業(yè)知識(shí)庫當(dāng)前所選數(shù)據(jù)源存儲(chǔ)地址,系統(tǒng)讀取所選數(shù)據(jù)源下的目錄文件/庫表,支持按子路徑選擇目錄文件及其子目錄/庫表。

解析字段

系統(tǒng)離線解析數(shù)據(jù)源字段,用于構(gòu)建索引。

勾選使用該字段,對(duì)勾選的字段將入庫構(gòu)建索引,不同的字段類型在搜索過程中參與到召回、排序的鏈路中,在查詢結(jié)果中可以展示。未勾選字段將不會(huì)構(gòu)建索引。

數(shù)據(jù)源類型

是否為faq

解析字段

RDS MySQL

/MaxCompute

要求數(shù)據(jù)庫庫表字段類型為:id、question、answer、sim_question、url、gmt_modified;

解析字段同所選數(shù)據(jù)庫庫表字段,非固定可選;

OSS

支持解析的文件格式為.csv/.xlsx;

要求數(shù)據(jù)源字段類型為id、question、answer、sim_question、url;

支持解析的文件格式.pdf/.docx/.txt/.md/.html;

解析字段為默認(rèn)字段,固定全選;

配置索引

源數(shù)據(jù)表索引配置

完成數(shù)據(jù)源配置后, 需配置索引結(jié)構(gòu)來完成索引構(gòu)建。基于不同的數(shù)據(jù)來源和使用場(chǎng)景, 數(shù)據(jù)字段內(nèi)容會(huì)有差異,但索引構(gòu)建的流程相似,下面以阿里云 OSS數(shù)據(jù)源為例介紹索引構(gòu)建流程。

image.png

  • 字段名

字段名稱, 對(duì)采用OSS文件格式作為數(shù)據(jù)源的實(shí)例,字段名稱跟離線數(shù)據(jù)解析結(jié)果字段對(duì)應(yīng),離線解析結(jié)果默認(rèn)的字段名稱包括:

字段名稱

字段描述

字段類型

docId

主鍵、唯一標(biāo)識(shí)id

varchar

name

文件名稱

varchar

title

解析片段標(biāo)題內(nèi)容

varchar

content

解析片段正文內(nèi)容

varchar

url

url

varchar

對(duì)采用數(shù)據(jù)表作為數(shù)據(jù)源的實(shí)例,字段名和表格字段名一一對(duì)應(yīng), 假設(shè)數(shù)據(jù)源表格中只包含"id", "content"字段, 數(shù)據(jù)表索引配置對(duì)應(yīng)顯示"id", "content"字段名, 字段類型跟源數(shù)據(jù)表中定義的字段類型保持一致。

  • 索引字段類型

索引字段類型定義了字段的數(shù)據(jù)類型,以便搜索引擎(例如ElasticSearch)能夠正確地處理和索引這些字段的值。以ElasticSearch為例,常見的索引字段類型:

索引字段類型

字段類型說明

text

用于索引長(zhǎng)文本,例如文章內(nèi)容、描述等。文本類型會(huì)進(jìn)行分詞處理,以便能夠根據(jù)單詞進(jìn)行搜索和匹配。

keyword

用于索引短文本,例如標(biāo)簽、關(guān)鍵字等。關(guān)鍵字類型不會(huì)進(jìn)行分詞處理,整個(gè)字段作為一個(gè)整體進(jìn)行索引和匹配。

integer

用于索引INT類型數(shù)字,數(shù)字類型可以用于排序、范圍查詢等操作

long

用于索引LONG類型數(shù)字,數(shù)字類型可以用于排序、范圍查詢等操作

double

用于索引DOUBLE類型數(shù)字,數(shù)字類型可以用于排序、范圍查詢等操作

float

用于索引FLOAT類型數(shù)字,數(shù)字類型可以用于排序、范圍查詢等操作

date

用于索引日期和時(shí)間。日期類型可以進(jìn)行日期范圍查詢、排序等操作。

boolean

用于索引布爾值,即true或false

binary

用于索引二進(jìn)制數(shù)據(jù),例如圖片、文件等

  • 文本塊切分/Chunk

當(dāng)該字段文本長(zhǎng)度比較長(zhǎng)且需要作為大模型回答的參考內(nèi)容時(shí),建議勾選該字段。勾選后該字段的長(zhǎng)文本會(huì)被切分為短的文本塊;若不勾選,部分較長(zhǎng)的文本后半段會(huì)被直接截?cái)唷SS數(shù)據(jù)源的content字段默認(rèn)勾選。

  • 向量化

文本向量化是將文本數(shù)據(jù)轉(zhuǎn)換為數(shù)值向量的過程。它將文本中的詞語、句子表示為向量形式,以便能夠信息檢索等任務(wù)中進(jìn)行相關(guān)性計(jì)算。勾選向量化后,搜索的準(zhǔn)確性能夠得到提升,對(duì)于用戶輸入的問題與相關(guān)知識(shí)庫內(nèi)容字面不一致的情況也能搜到正確的知識(shí)。

文本向量化實(shí)例

輸入文本:"一條黃色的裙子"

向量化后結(jié)果:[0.2694664001464844,-0.3998311161994934,-0.14598636329174042,-0.4976918697357178,-0.13986249268054962,0.6272065043449402,-0.1434994637966156,-0.33319777250289917]
重要
  • 向量化后為一個(gè)浮點(diǎn)數(shù)列表,列表長(zhǎng)度取決于向量化模型的輸出維度

  • 在索引構(gòu)建階段, 向量化只對(duì)TEXT類型字段生效

  • 如果選擇多個(gè)TEXT字段向量化,算法模型將自動(dòng)將多個(gè)字段拼接計(jì)算向量結(jié)果

  • 分析器

在索引構(gòu)建過程中,分析器(OR 分詞器)是用于將文本數(shù)據(jù)分割成詞的工具。它是文本分析過程中的一個(gè)重要組件,用于構(gòu)建倒排索引,以便能夠?qū)ξ谋具M(jìn)行搜索和匹配。

分析器將輸入的文本按照一定的規(guī)則進(jìn)行分割,分析器可以將一個(gè)長(zhǎng)文本分割成多個(gè)詞,以便能夠?qū)@些詞進(jìn)行索引和搜索。

企業(yè)搜索提供多種內(nèi)置的分析器,包括:

  1. 阿里分析器

介紹:阿里巴巴開發(fā)的中英文分詞工具,適配多種業(yè)務(wù)場(chǎng)景,多輪對(duì)話搜索默認(rèn)選項(xiàng)。

分詞樣例

輸入文本:"阿里巴巴是一家全球的互聯(lián)網(wǎng)科技公司。"

分詞結(jié)果:"阿里巴巴 / 是 / 一家 / 全球 /  的 / 互聯(lián)網(wǎng) / 科技 / 公司 / 。"

  1. Ik分析器

介紹:開源Ik分詞器, 分詞效果跟阿里分析器類似

  1. 單字分析器

介紹:按照單個(gè)字符(UTF8編碼)進(jìn)行分割,適用于語義檢索要求不高、要求高召回的檢索場(chǎng)景

分詞樣例

輸入文本:"單字分詞器是一種最基礎(chǔ)的分詞方式。"

分詞結(jié)果:"單 / 字 / 分 / 詞 / 器 / 是 / 一 / 種 / 最 / 基 / 礎(chǔ) / 的 / 分 / 詞 / 方 / 式 / 。"

  1. 拼音分析器

介紹:針對(duì)中文字段進(jìn)行拼音解析、使用于拼音檢索場(chǎng)景

分詞樣例:

輸入文本:"我愛中文分詞器"

分詞結(jié)果: "wo ai zhong wen fen ci qi"

  1. Ngram分析器:

介紹: 按照N-gram字符(UTF8編碼)進(jìn)行分割, N默認(rèn)值為3

分詞樣例:

輸入文本:"中文分詞器"

ngram分詞結(jié)果(N=3):"中 / 文 / 分 / 詞 / 器/ 中文 / 文分 / 分詞 / 詞器/ 中文分 / 文分詞 / 分詞器"

通過選擇合適的分析器,可以使得搜索引擎在索引和搜索文本數(shù)據(jù)時(shí)更準(zhǔn)確和靈活。

image

是否關(guān)聯(lián)文件數(shù)據(jù)

當(dāng)接入數(shù)據(jù)源同時(shí)存在文件類型及數(shù)據(jù)庫類型數(shù)據(jù)時(shí),且“文件路徑字段”和“文件類型字段”都是數(shù)據(jù)庫中的字段,需要開啟“關(guān)聯(lián)文件數(shù)據(jù)”功能,可以參考最佳實(shí)踐說明。開啟后,系統(tǒng)會(huì)自動(dòng)校驗(yàn),若源數(shù)據(jù)表中字段和系統(tǒng)自動(dòng)擴(kuò)展字段中的“title、content、parent、hier_title、nid”有重復(fù),則需退出流程,更改字段名稱。

文件存儲(chǔ)類型

現(xiàn)支持OSS和HTTP兩類數(shù)據(jù)。

文件路徑字段

此字段用于獲取存在oss中文件路徑數(shù)據(jù),字段需為keyword/text字段。

文件類型字段

此字段用于獲取存在oss中文件類型數(shù)據(jù),字段需為keyword/text字段,文件類型當(dāng)前支持 .pdf/.docx/.txt/.md/.html。

系統(tǒng)自動(dòng)擴(kuò)展字段

系統(tǒng)自動(dòng)擴(kuò)展字段固定為“title、content、parent、hier_title、nid”。

支持配置chunk參數(shù),“chunk size指定”范圍值在50以上,“chunk overlap指定”范圍值需小于chunk size指定數(shù)值,可以等于0。

image.png

搜索字段

全文檢索字段,需要為keywords或text類型,用來執(zhí)行搜索操作,匹配查詢條件,限制搜索范圍。

接口返回字段

接口返回字段是指搜索請(qǐng)求后的返回結(jié)果字段,可在索引配置字段中選擇業(yè)務(wù)所需字段,此字段會(huì)在開放接口openapi中的fields字段返回。后續(xù)可應(yīng)用于大模型多輪對(duì)話中的參考內(nèi)容。

大模型引用字段

大模型引用字段是指搜索請(qǐng)求后接口返回字段需要被大模型作為參考內(nèi)容引用的字段。此字段需要是接口返回字段中的子集。

為大模型可以更精準(zhǔn)的獲取有效信息,以給出更準(zhǔn)確的答復(fù)。例如接口返回字段為"id", "content",由于"id"字段并未攜帶有效信息輔助大模型理解,因此只選擇"content"作為大模型引用字段。

是否自動(dòng)更新

若數(shù)據(jù)源索引配置需要定期更新,則需要打開此開關(guān)。支持每小時(shí)/每天/每月三種周期自動(dòng)更新,支持配置對(duì)應(yīng)更新的時(shí)間點(diǎn)以及時(shí)區(qū)。

服務(wù)測(cè)試

image.png

LLM參數(shù)配置

重要

配置修改完成后均需要單擊保存配置才能生效!

  • 生成內(nèi)容最大長(zhǎng)度(max_tokens)

控制每次生成的對(duì)話內(nèi)容長(zhǎng)度。注意輸入生成內(nèi)容的最大長(zhǎng)度不應(yīng)超過2048,超過會(huì)對(duì)輸入內(nèi)容進(jìn)行截?cái)唷?/p>

  • 采樣選擇

較低的top_p代表更加謹(jǐn)慎的輸出;較高的top_p對(duì)應(yīng)更加具有創(chuàng)造力的輸出。一般推薦設(shè)置為0.7-0.8,可根據(jù)實(shí)際情況進(jìn)行調(diào)整。

  • 流式輸出模式(stream)

    • 是:最終輸出結(jié)果將在生成結(jié)果的過程中逐字輸出。

    • 否:最終輸出結(jié)果將在全部生成完畢后整段輸出。

  • 大模型兜底回復(fù)

    • 要:如果搜索請(qǐng)求后并未返回有效信息,則采用大模型做兜底回復(fù)

    • 不要:如果搜索請(qǐng)求后并未返回有效信息,不采用大模型做兜底回復(fù),支持配置相應(yīng)回復(fù)話術(shù)。

Tips

調(diào)試方法:初次配置完后,請(qǐng)選擇索引文檔中的一篇作為目標(biāo),并針對(duì)這篇文章撰寫一個(gè)問題。將問題輸入測(cè)試頁面查看模型返回,如符合預(yù)期可以多測(cè)幾個(gè);如不符合預(yù)期,可以開啟Debug開關(guān)

然后可以看到多輪對(duì)話鏈路具體日志,如果覺得展示框太小可以復(fù)制出來到其他文本編輯器或者JSON編輯器查看。我們主要關(guān)注”child_execs“里面的內(nèi)容

{
    "start_time":1692850565627,
    "trace_id":"f-s-5NRRqmDDUgkNGFLXw88888",
    "exec_params":{
        "streaming":true,
        "debug":true,
        "async_run":false,
        "session_id":"f-s-5NRRqmDDUgkNGFLXw88888",
        "flow_params":{
            "top_p":"0.7",
            "search_size":3,
            "api_key":"**************",
            "content_fields":"title,content",
            "max_new_tokens":512,
            "temperature":1,
            "rank_model_info":"{"rankModelInfo": {"default": {"features": [{"name": "vector_index", "weights": 0.5, "threshold": 0, "norm": true}, {"name": "static_value", "field": "_rc_t_score", "weights": 0.5, "threshold": 0, "norm": true}], "aggregate_algo": "weight_avg"}}}",
            "human_input":"牧云",
            "custom_config_info":"{"rerankSize": 200, "uqVectorRecallRatio": 0.5}",
            "type":"title,content",
            "fields":"title,content",
            "scene":"dolphin_search_ms_index_es_113_prod"
        },
        "flow_json":null,
        "flow_json_url":"https://******/corp_search.json"
    },
    "exec_result":{
        "result":[
            "對(duì)",
            "不",
            "起",
            ",",
            "現(xiàn)",
            "有",
            "搜",
            "索",
            "結(jié)",
            "果",
            "中",
            "不",
            "包",
            "含",
            "該",
            "問",
            "題",
            "相",
            "關(guān)",
            "內(nèi)",
            "容",
            ",",
            "暫",
            "時(shí)",
            "無",
            "法",
            "提",
            "供",
            "答",
            "案",
            "。"
        ],
        "ext":{

        },
        "output_tokens":null,
        "request_id":null,
        "input_tokens":null,
        "prompt":"{"query": "牧云", "model_id": "daily-top_qad-392", "api_key": "**************", "stream": true, "search_results": [{"id": 1, "content": "\\n產(chǎn)品團(tuán)隊(duì)核心成員曾負(fù)責(zé)阿里云整體內(nèi)部保障,總結(jié)了過去10多年時(shí)間阿里巴巴在企業(yè)安全運(yùn)營(yíng)上的最佳做法,安全運(yùn)營(yíng)團(tuán)隊(duì)?wèi)?yīng)先清晰的知道企業(yè)當(dāng)前面臨的關(guān)鍵挑戰(zhàn)是什么?以及企業(yè)對(duì)風(fēng)險(xiǎn)的容忍度區(qū)間是怎樣的?我們能夠接受什么風(fēng)險(xiǎn)?不能夠接受什么風(fēng)險(xiǎn)?一旦發(fā)生的安全事件超過這個(gè)風(fēng)險(xiǎn)容忍度,將直接導(dǎo)致企業(yè)陷入無法經(jīng)營(yíng)的狀態(tài),業(yè)務(wù)連續(xù)性受到影響。因此只要能夠證明可真正影響到業(yè)務(wù)的風(fēng)險(xiǎn)才是真實(shí)的安全風(fēng)險(xiǎn),應(yīng)被列為最高優(yōu)先級(jí)修復(fù),而所有安全控制措施的唯一目的就是減緩業(yè)務(wù)風(fēng)險(xiǎn)。", "raw_search_result": {"_rc_score": 18.187634, "_q_score": 1.0, "_id": "7606980412276885772_129", "title": "", "_score": 18.187634, "content": "產(chǎn)品團(tuán)隊(duì)核心成員曾負(fù)責(zé)阿里云整體內(nèi)部保障,總結(jié)了過去10多年時(shí)間阿里巴巴在企業(yè)安全運(yùn)營(yíng)上的最佳做法,安全運(yùn)營(yíng)團(tuán)隊(duì)?wèi)?yīng)先清晰的知道企業(yè)當(dāng)前面臨的關(guān)鍵挑戰(zhàn)是什么?以及企業(yè)對(duì)風(fēng)險(xiǎn)的容忍度區(qū)間是怎樣的?我們能夠接受什么風(fēng)險(xiǎn)?不能夠接受什么風(fēng)險(xiǎn)?一旦發(fā)生的安全事件超過這個(gè)風(fēng)險(xiǎn)容忍度,將直接導(dǎo)致企業(yè)陷入無法經(jīng)營(yíng)的狀態(tài),業(yè)務(wù)連續(xù)性受到影響。因此只要能夠證明可真正影響到業(yè)務(wù)的風(fēng)險(xiǎn)才是真實(shí)的安全風(fēng)險(xiǎn),應(yīng)被列為最高優(yōu)先級(jí)修復(fù),而所有安全控制措施的唯一目的就是減緩業(yè)務(wù)風(fēng)險(xiǎn)。"}}, {"id": 2, "content": "\\nWebShell是什么", "raw_search_result": {"_rc_score": 9.906794, "_q_score": 0.5446994369910897, "_id": "5751733942449846217_6", "title": "", "_score": 9.906794, "content": "WebShell是什么"}}, {"id": 3, "content": "\\n1.牧云管理平臺(tái)", "raw_search_result": {"_rc_score": 9.759266, "_q_score": 0.5365879915991272, "_id": "18103204782719913721_10", "title": "", "_score": 9.759266, "content": "1.牧云管理平臺(tái)"}}], "history_messages": [], "temperature": 1.0, "top_p": 0.7, "top_k": 50, "length_penalty": 1.0, "num_doc": 3, "answer_doc": false, "max_new_tokens": 512, "tp_answer": "", "allow_direct_answer": true}"
    },
    "child_execs":[
        {
            "start_time":1692850565683,
            "trace_id":"f-s-5NRRqmDDUgkNGFLXw88888",
            "exec_params":{
                "top_p":0.7,
                "api_key":"**************",
                "stream":false,
                "max_new_tokens":512,
                "query":"牧云",
                "history_messages":[

                ],
                "model_id":"daily-top_qad-392",
                "tp_search":""
            },
            "exec_result":{
                "do_search":true
            },
            "child_execs":null,
            "end_time":1692850566121,
            "exec_name":"search_toggle",
            "exec_status":true,
            "exec_kind":"AI_FLOW_STEP",
            "exec_message":null
        },
        {
            "start_time":1692850566122,
            "trace_id":"f-s-5NRRqmDDUgkNGFLXw88888",
            "exec_params":{
                "top_p":0.7,
                "api_key":"**************",
                "stream":false,
                "max_new_tokens":512,
                "tp_query_rewrite":"",
                "query":"牧云",
                "history_messages":[

                ],
                "model_id":"daily-top_qad-392"
            },
            "exec_result":{
                "queries_r":[
                    "牧云是什么"
                ]
            },
            "child_execs":null,
            "end_time":1692850566617,
            "exec_name":"search_rewrite",
            "exec_status":true,
            "exec_kind":"AI_FLOW_STEP",
            "exec_message":null
        },
        {
            "start_time":1692850566618,
            "trace_id":"f-s-5NRRqmDDUgkNGFLXw88888",
            "exec_params":{
                "customConfigInfo":{
                    "rerankSize":200,
                    "uqVectorRecallRatio":0.5
                },
                "page":1,
                "uq":"牧云是什么",
                "fields":[
                    "content",
                    "title"
                ],
                "rows":3,
                "type":"title,content",
                "scene":"dolphin_search_ms_index_es_113_prod",
                "rankModelInfo":{
                    "rankModelInfo":{
                        "default":{
                            "features":[
                                {
                                    "name":"vector_index",
                                    "threshold":0,
                                    "weights":0.5,
                                    "norm":true
                                },
                                {
                                    "field":"_rc_t_score",
                                    "name":"static_value",
                                    "threshold":0,
                                    "weights":0.5,
                                    "norm":true
                                }
                            ],
                            "aggregate_algo":"weight_avg"
                        }
                    }
                }
            },
            "exec_result":{
                "msg":null,
                "code":200,
                "data":{
                    "headers":{
                        "__d_head_rtm":"1692850566901",
                        "__d_head_sip":"192.168.43.28",
                        "__d_head_es_rt":"t:32",
                        "__d_head_engine_rt":"q:104-s:92-r:7-i:65",
                        "__d_head_ver":"0.0.1-SNAPSHOT"
                    },
                    "debug":null,
                    "data":{
                        "qpInfos":[
                            {
                                "tokenized":[
                                    "牧",
                                    "云",
                                    "是",
                                    "什么"
                                ],
                                "stopWords":[

                                ],
                                "spellcheck":false,
                                "cleanQuery":"牧云是什么",
                                "query":"牧云是什么",
                                "sensitive":false,
                                "synonymWords":[

                                ],
                                "recognitions":[
                                    {
                                        "name":"O",
                                        "text":"牧"
                                    },
                                    {
                                        "name":"O",
                                        "text":"云"
                                    },
                                    {
                                        "name":"O",
                                        "text":"是"
                                    },
                                    {
                                        "name":"O",
                                        "text":"什么"
                                    }
                                ],
                                "spellchecked":"牧云是什么",
                                "rewrite":"牧云是什么",
                                "operator":"AND"
                            }
                        ],
                        "total":89,
                        "docs":[
                            {
                                "_rc_score":18.187634,
                                "_q_score":1,
                                "_id":"7606980412276885772_129",
                                "title":"",
                                "_score":18.187634,
                                "content":"產(chǎn)品團(tuán)隊(duì)核心成員曾負(fù)責(zé)阿里云整體內(nèi)部保障,總結(jié)了過去10多年時(shí)間阿里巴巴在企業(yè)安全運(yùn)營(yíng)上的最佳做法,安全運(yùn)營(yíng)團(tuán)隊(duì)?wèi)?yīng)先清晰的知道企業(yè)當(dāng)前面臨的關(guān)鍵挑戰(zhàn)是什么?以及企業(yè)對(duì)風(fēng)險(xiǎn)的容忍度區(qū)間是怎樣的?我們能夠接受什么風(fēng)險(xiǎn)?不能夠接受什么風(fēng)險(xiǎn)?一旦發(fā)生的安全事件超過這個(gè)風(fēng)險(xiǎn)容忍度,將直接導(dǎo)致企業(yè)陷入無法經(jīng)營(yíng)的狀態(tài),業(yè)務(wù)連續(xù)性受到影響。因此只要能夠證明可真正影響到業(yè)務(wù)的風(fēng)險(xiǎn)才是真實(shí)的安全風(fēng)險(xiǎn),應(yīng)被列為最高優(yōu)先級(jí)修復(fù),而所有安全控制措施的唯一目的就是減緩業(yè)務(wù)風(fēng)險(xiǎn)。"
                            },
                            {
                                "_rc_score":9.906794,
                                "_q_score":0.5446994369910897,
                                "_id":"5751733942449846217_6",
                                "title":"",
                                "_score":9.906794,
                                "content":"WebShell是什么"
                            },
                            {
                                "_rc_score":9.759266,
                                "_q_score":0.5365879915991272,
                                "_id":"18103204782719913721_10",
                                "title":"",
                                "_score":9.759266,
                                "content":"1.牧云管理平臺(tái)"
                            }
                        ],
                        "keywords":[
                            {
                                "schema":"title,content",
                                "name":"全文",
                                "value":"牧云是什么",
                                "fuzzy":true
                            }
                        ],
                        "totalDistinct":89,
                        "extras":null,
                        "aggs":null
                    },
                    "success":true,
                    "rid":null,
                    "message":null,
                    "status":0
                },
                "success":true,
                "requestId":"3C90873D-CAAB-437D-925A-5E8D90E2E746",
                "httpStatusCode":200
            },
            "child_execs":null,
            "end_time":1692850566905,
            "exec_name":"search",
            "exec_status":true,
            "exec_kind":"AI_FLOW_STEP",
            "exec_message":null
        },
        {
            "start_time":1692850570204,
            "trace_id":"f-s-5NRRqmDDUgkNGFLXw88888",
            "exec_params":{
                "top_p":0.7,
                "api_key":"**************",
                "stream":false,
                "max_new_tokens":512,
                "query":null,
                "history_messages":[
                    {
                        "role":"user",
                        "content":"牧云"
                    },
                    {
                        "role":"assistant",
                        "content":"對(duì)不起,現(xiàn)有搜索結(jié)果中不包含該問題相關(guān)內(nèi)容,暫時(shí)無法提供答案。"
                    }
                ],
                "model_id":"daily-top_qad-392"
            },
            "exec_result":{
                "queries_s":[
                    "牧云是什么?",
                    "牧云有哪些特點(diǎn)?",
                    "牧云的優(yōu)勢(shì)是什么?"
                ]
            },
            "child_execs":null,
            "end_time":1692850571168,
            "exec_name":"search_recommend",
            "exec_status":true,
            "exec_kind":"AI_FLOW_STEP",
            "exec_message":null
        }
    ],
    "end_time":null,
    "exec_name":"corp_search.json",
    "exec_status":true,
    "exec_kind":"AI_FLOW",
    "exec_message":null
}

按照以下步驟進(jìn)行排查

  1. 首先看第一個(gè){}框起來的dict里面,do_search是否為false。假如do_search為false,需要檢查您撰寫的query不是一個(gè)需要搜索就能得到答案的,例如”你好“之類。如您默認(rèn)所有query都需要搜索,可以聯(lián)系我們幫您開啟強(qiáng)制搜索開關(guān)。

  2. 看第二個(gè){}框起來的dict里面,queries_r是否滿足預(yù)期。queries_r是模型對(duì)于您輸入query的一個(gè)重寫(重新表達(dá)),通常用于多輪對(duì)話時(shí)發(fā)生上下文指代的情況。如您默認(rèn)所有query都不需要此類重寫,可以聯(lián)系我們幫您關(guān)閉重寫。

  3. 看第三個(gè){}框起來的dict里面,exec_result->data->docs中前num_docs個(gè)文檔中是否包含了目標(biāo)文檔,如果不包含說明沒搜到。這時(shí)需要您在搜索增強(qiáng)模塊調(diào)試出合適的排序公式,確保對(duì)應(yīng)query能夠搜到目標(biāo)文檔。將調(diào)試好的排序公式填寫進(jìn)來,并單擊保存配置。

  4. 在確保目標(biāo)文檔出現(xiàn)在前num_docs個(gè)文檔中之后,如仍然返回不符合預(yù)期的結(jié)果,請(qǐng)調(diào)整LLM參數(shù)配置中相關(guān)生成參數(shù)大小以達(dá)到預(yù)期。

搜索增強(qiáng)參數(shù)配置

條數(shù)配置

  • 名詞解釋:知識(shí)條為搜索召回的相關(guān)索引條目,以搜索接口返回字段為結(jié)構(gòu)構(gòu)成,通過排序計(jì)算,相關(guān)度高的知識(shí)條優(yōu)先排序。若“候選知識(shí)條數(shù)”選擇3條,則選擇排序分?jǐn)?shù)最高的三條知識(shí)條作為參考內(nèi)容傳給下游大模型。

  • 數(shù)值限制:當(dāng)前模型上限閾值為6000,閾值=候選知識(shí)條數(shù)*單條知識(shí)長(zhǎng)度。

  • 推薦值:候選知識(shí)條數(shù)為3,單條知識(shí)長(zhǎng)度上限為1000。

  • 功能描述:控制輸入給大模型的知識(shí)條范圍。

Tips

若候選知識(shí)條數(shù)越多,則大模型的回復(fù)泛化性越高,但由于存在模型上限閾值,其單條知識(shí)長(zhǎng)度有限,若知識(shí)長(zhǎng)度過短,則可能導(dǎo)致信息不完整,影響大模型回復(fù)的精準(zhǔn)度。

多路召回-向量召回比例

  • 名詞解釋:召回模型主要包括文本相關(guān)性召回語義向量召回。其中文本相關(guān)性召回是從文本分詞后的詞粒度的一致性上做文檔召回,語義向量召回是指將文本轉(zhuǎn)為語義向量后在向量空間里的尋找空間距離最靠近的文檔作為召回。

  • 推薦值:目前建議50%,表示文本召回和語義向量召回的文檔數(shù)各占總召回?cái)?shù)量的一半。

  • 功能描述:控制query召回時(shí)向量召回部分占所有召回?cái)?shù)量的比例。

Tips

若希望不使用向量召回(僅用文本相關(guān)性召回)設(shè)置為0%,當(dāng)前版本不支持僅向量召回(不建議設(shè)置成100%)。

精排DOC數(shù)量

  • 名詞解釋:進(jìn)入精排計(jì)算的最大文檔數(shù)量。

  • 推薦值:200-500。

  • 功能描述:query在召回所有相關(guān)文本后,會(huì)基于召回的結(jié)果做一個(gè)基礎(chǔ)的相關(guān)性打分并排序,當(dāng)召回的文檔數(shù)目總數(shù)大于當(dāng)前設(shè)置的精排DOC數(shù)量N時(shí),會(huì)取基礎(chǔ)相關(guān)性打分最高的TOP N進(jìn)入精排計(jì)算。

Tips

該數(shù)字越大表示用于精排的文檔數(shù)越多,對(duì)于最終效果會(huì)更好,但精排計(jì)算所消耗時(shí)間會(huì)更長(zhǎng)。

自定義排序公式
  • 名詞解釋:產(chǎn)品提供了豐富的排序特征供用戶根據(jù)實(shí)際情況實(shí)現(xiàn)自定義排序。排序公式為JSON格式,配置在rankModelInfo中。內(nèi)置的排序模型將會(huì)根據(jù)rankModelInfo指定的排序公式對(duì)召回結(jié)果根據(jù)排序特征進(jìn)行打分,并計(jì)算最終的排序分?jǐn)?shù)以及排序結(jié)果。內(nèi)置的排序模塊提供了多種排序特征,并且支持對(duì)每個(gè)特征配置對(duì)應(yīng)索引字段,權(quán)重,閾值,以及是否歸一化等。

  • rankModelInfo

自定義排序公式配置字段,包含對(duì)原始query以及extra query的排序公式,每類排序公式為dict類型,dict名稱為對(duì)應(yīng)的查詢字段名稱。(默認(rèn)query(uq)的排序公式類型名為“default",額外的查詢排序公式類型名為其對(duì)應(yīng)的在"extras"字段對(duì)應(yīng)的查詢名稱)。

  • 排序公式

每類排序公式的具體內(nèi)容包含 "features" 以及 "aggregate_algo"兩部分。“features” 為具體排序特征及其參數(shù)的列表。 "aggregate_algo"目前僅支持“weight_avg",即對(duì)所有特征加權(quán)求和。

  • 特征

每一項(xiàng)特征為dict格式,包含特征名稱以及特征參數(shù)。特征通用參數(shù)如下:

  • 特征通用參數(shù)

    • name: 特征名

    • field: 計(jì)算相關(guān)性特征的索引字段

    • weights: 特征權(quán)重,為float類型

    • threshold: 特征分?jǐn)?shù)閾值,float類型。低于閾值的特征分?jǐn)?shù)將被置為0(注意:threshold 過濾值為normalize前分?jǐn)?shù))

    • norm: 是否將特征進(jìn)行歸一化bool類型

    • norm_factor:float類型, 歸一化系數(shù),用于調(diào)節(jié)歸一化后的分?jǐn)?shù)分布。

具體每項(xiàng)特征具體說明如下:

特征說明:

特征名

說明

特征特殊參數(shù)

vector_index

向量匹配分?jǐn)?shù)(需配置向量召回)

score_type: 向量檢索分?jǐn)?shù)計(jì)算類型,可選擇L2(越相關(guān)分?jǐn)?shù)越大)與IP(越相關(guān)分?jǐn)?shù)越小),默認(rèn)為IP。需要根據(jù)向量引擎配置選擇合適的score_type。

text_index

搜索引擎召回得分

Tips:該特征只支持僅文本召回時(shí)使用。使用多路召回(向量+搜索引擎)時(shí),可以使用static_value獲得ES召回得分(field 配置為“_rc_t_score")

{
"field":"_rc_t_score",
"weights":0.25,
"threshold":0
},

timeliness

時(shí)效性得分,正比于給定時(shí)間字段與基礎(chǔ)時(shí)間相差的毫秒數(shù),取值范圍為[0,1]

time_field(str):時(shí)間字段名,格式為:"%Y-%m-%d %H:%M:%S.%f"

field(str): 字段名,與時(shí)間字段名保持一致

base_time(str): 基礎(chǔ)時(shí)間字段,格式為: "%Y-%m-%d %H:%M:%S",應(yīng)設(shè)置為最初始文檔的時(shí)間

normalized_number(float): 控制時(shí)效性得分的顆粒度,通常應(yīng)設(shè)置為1e6

doc_match_ratio

字段與查詢匹配詞個(gè)數(shù)與該字段總詞數(shù)的比值

query_match_ratio

查詢與字段匹配詞個(gè)數(shù)與查詢總詞數(shù)的比值

doc_match_count

字段與查詢匹配詞個(gè)數(shù)

query_match_count

查詢與字段匹配詞個(gè)數(shù)

query_min_slide_window

衡量查詢與字段詞匹配緊密度,即查詢?cè)谧侄紊掀ヅ涞脑~個(gè)數(shù)與字段上包含對(duì)應(yīng)詞最小窗口的比值(不考慮查詢匹配順序)。

ordered_query_min_slide_window

衡量查詢與對(duì)應(yīng)字段匹配緊密度,查詢?cè)~在某個(gè)字段上命中的分詞詞組個(gè)數(shù)與該詞組在字段上最小窗口的比值(有順序匹配)。

doc_unique_ratio

字段非重復(fù)詞個(gè)數(shù)與總詞數(shù)的比值,用于篩選重復(fù)關(guān)鍵詞的文檔。

overlap_coefficient

查詢與字段匹配詞個(gè)數(shù)與查詢與字段總詞數(shù)比值,衡量文本匹配度。

char_overlap_coefficient

查詢與字段匹配字符數(shù)與查詢與字段總字符數(shù)比值,衡量字符級(jí)別相似度。

lcs_match_ratio

查詢與字段詞級(jí)別長(zhǎng)度與查詢?cè)~數(shù)的比值。

char_lcs_match_ratio

查詢與字段字級(jí)別長(zhǎng)度與查詢字符個(gè)數(shù)的比值,適用于email, mobile 等字符串匹配場(chǎng)景。

edit_similarity

根據(jù)字段與查詢的編輯距離計(jì)算的文本相似度,取值為0-1,越高代表兩者越相似。用于衡量查詢與對(duì)應(yīng)字段完全匹配的程度。適用于問題與問題進(jìn)行匹配的場(chǎng)景,建議配合較高閾值使用。

char_edit_similarity

字符級(jí)別的編輯相似度。

char_sequential_match_priority

適用于人名匹配專用特征(考慮匹配順序)。按順序計(jì)算字符級(jí)別的順序匹配度,第i個(gè)字的匹配相似度為 1/ |i-j|, j代表對(duì)應(yīng)字段中與之最近的相同字符。第i個(gè)字權(quán)重為1.0 / i。最終得分為所有字相似度的加權(quán)平均。 該特征用于計(jì)算與順序相關(guān)的文本相似度。

pinyin_lc_substr

查詢與字段拼音最長(zhǎng)公共子串長(zhǎng)度與對(duì)應(yīng)字段拼音長(zhǎng)度的比值,衡量拼音相似度

doc_pinyin_lc_substr

查詢與字段拼音最長(zhǎng)公共子串長(zhǎng)度與查詢拼音長(zhǎng)度的比值,衡量拼音相似度

static_value

將數(shù)字字段本身作為特征分?jǐn)?shù)。

name_pinyin_match

人名拼音匹配專用特征,判斷查詢與對(duì)應(yīng)字段的拼音全拼,拼音首字母縮寫,首字母與全拼的混合進(jìn)行匹配。如某人名字段值為“張三”,該特征將檢查查詢的拼音是否為["zhangsan","zs","zhangs","zsan"] 中的任意一種,如果匹配成功,返回1分,否則返回0分。人名拼音匹配專用特征

prefix_match_ratio

詞級(jí)別前綴匹配特征,匹配得分為查詢與字段最長(zhǎng)公共前綴長(zhǎng)度/查詢長(zhǎng)度。(前綴匹配指查詢和文檔從第一個(gè)位置開始每個(gè)詞按順序匹配,能完全匹配的最長(zhǎng)字符子串)。適用于對(duì)匹配位置有要求的場(chǎng)景(如郵箱匹配,首位匹配相關(guān)性更高),建議與其他特征共同使用(如lcs_match_ratio)

char_prefix_match_ratio

字符級(jí)別前綴匹配特征,匹配得分為查詢與字段最長(zhǎng)公共前綴長(zhǎng)度/查詢長(zhǎng)度。適用于對(duì)匹配位置有要求的場(chǎng)景(如郵箱匹配,首位匹配相關(guān)性更高),建議與其他特征共同使用(如lcs_match_ratio)

pinyin_prefix_match_ratio

拼音前綴匹配特征,匹配得分為查詢與對(duì)應(yīng)字段最長(zhǎng)公共前綴長(zhǎng)度/查詢長(zhǎng)度。適用于對(duì)匹配位置有要求的場(chǎng)景(如郵箱匹配,首位匹配相關(guān)性更高),建議與其他特征共同使用(如lcs_match_ratio)

is_contained

查詢是否包含在給定字段里(list類型)某一項(xiàng)完全匹配,用于匹配標(biāo)簽。對(duì)應(yīng)索引字段必須為list[string]類型。

contained_boost

完整的查詢?cè)诮o定字段中出現(xiàn)的次數(shù),用于提高完全匹配查詢的匹配度。

part_of_doc

完整的查詢?cè)诮o定字段中是否出現(xiàn)(出現(xiàn)為1,不出現(xiàn)為0),用于提高完全匹配查詢的匹配度。

最佳實(shí)踐

Tips:以下例子均假設(shè)在索引中存在名為“content"的字段。

{
    "rankModelInfo":{
        "default":{
            "features":[
                {
                    "name":"text_index",
                    "weights":1,
                    "threshold":10,
                    "norm":true
                },
                {
                    "name":"query_match_ratio",
                    "weights":1,
                    "threshold":0,
                    "field":"content"
                }
            ],
            "aggregate_algo":"weight_avg"
        }
    }
}
{
    "rankModelInfo":{
        "default":{
            "features":[
                {
                    "name":"static_value",
                    "field":"_rc_t_score",
                    "weights":1,
                    "threshold":10,
                    "norm":true
                },
                {
                    "name":"vector_index",
                    "weights":1,
                    "threshold":0,
                    "norm":true,
                    "norm_factor":0.001,
                    "score_type": "L2"
                },
                {
                    "name":"query_match_ratio",
                    "weights":1,
                    "threshold":0,
                    "field":"content"
                }
            ],
            "aggregate_algo":"weight_avg"
        }
    }
}
{
    "rankModelInfo": {
        "default": {
            "features": [
                {
                    "name": "static_value",
                    "field": "_rc_t_score",
                    "weights": 1,
                    "threshold": 10,
                    "norm": true
                },
                {
                    "name": "vector_index",
                    "weights": 1,
                    "threshold": 0,
                    "norm": true,
                    "norm_factor": 0.001,
                    "score_type": "L2"
                },
                {
                    "name": "query_match_ratio",
                    "weights": 1,
                    "threshold": 0,
                    "field": "title"
                }
            ],
            "aggregate_algo": "weight_avg"
        }
    },
    "keyword": {
        "features": [
            {
                "name": "query_match_ratio",
                "weights": 1,
                "threshold": 0,
                "field": "content"
            }
        ],
        "aggregate_algo": "weight_avg"
    }
}

本例子展示了一個(gè)帶額外查詢“keyword”的排序公式,用戶需要在"extras"字段內(nèi)配置與特征字段名相同的查詢字段(本例中為“keyword")

對(duì)話測(cè)試

完成所有參數(shù)配置并保存后,即可進(jìn)行對(duì)話測(cè)試。您可在界面上通過輸入框或多輪對(duì)話搜索API,輸入您的問題,即可得到所對(duì)應(yīng)的回答。LLM大模型將把搜索得到的知識(shí)片段與上下文信息進(jìn)行總結(jié)和生成,從而進(jìn)行問題的回答。