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

阿里云Elasticsearch Inference API介紹

阿里云Elasticsearch(簡(jiǎn)稱ES)提供了Inference API,可使用外部各個(gè)公司提供的推理模型服務(wù),同時(shí)阿里云ES擴(kuò)展了Inference API的服務(wù),使之可以使用阿里云的推理模型服務(wù)(AI搜索開(kāi)放平臺(tái))。本文介紹Inference API擴(kuò)展的AI搜索開(kāi)放平臺(tái)支持的推理模型服務(wù)API。

背景信息

AI搜索開(kāi)放平臺(tái)圍繞智能搜索及RAG場(chǎng)景,提供優(yōu)質(zhì)的組件化服務(wù)以及靈活的調(diào)用機(jī)制,內(nèi)置文檔解析、文檔切片、文本向量、召回、排序和大模型等服務(wù),可實(shí)現(xiàn)一站式靈活的AI搜索業(yè)務(wù)開(kāi)發(fā)。

說(shuō)明

文檔參數(shù)說(shuō)明表中的符號(hào)表示子參數(shù)。

Inference APIs介紹

阿里云ES支持的Inference APIs如下表所示。

接口

描述

適用版本

相關(guān)文檔

DOCUMENT ANALYZE(文檔內(nèi)容解析)

支持從非結(jié)構(gòu)化文檔中提取出標(biāo)題、分段等邏輯層級(jí)結(jié)構(gòu),以及文本、表格、圖片等信息,并以結(jié)構(gòu)化的格式輸出。

ES 8.15及以上版本

DOCUMENT ANALYZE(文檔內(nèi)容解析)

IMAGE ANALYZE(圖片內(nèi)容提取)

提供圖片內(nèi)容解析服務(wù),基于多模態(tài)大模型對(duì)圖片內(nèi)容進(jìn)行解析理解以及文字識(shí)別。

提供圖片內(nèi)容OCR識(shí)別服務(wù),基于OCR能力對(duì)圖片文字進(jìn)行識(shí)別,將文字信息提取出來(lái)。

ES 8.15及以上版本

IMAGE ANALYZE(圖片內(nèi)容提取)

SPLIT_DOC(文檔切片)

提供通用的文本切片策略,可基于文檔段落格式、文本語(yǔ)義、指定規(guī)則,對(duì)html、markdown、txt格式的結(jié)構(gòu)化數(shù)據(jù)進(jìn)行拆分,同時(shí)支持富文本形式提取code、 image、table。

ES 8.13及以上版本

SPLIT_DOC(文檔切片)

TEXT_EMBEDDING(文本向量)

文本向量服務(wù)將文本數(shù)據(jù)轉(zhuǎn)化為稠密向量形式表達(dá),可用于信息檢索、文本分類、相似性比較等場(chǎng)景。

ES 8.13及以上版本

TEXT_EMBEDDING(文本向量)

SPARSE_EMBEDDING(文本稀疏向量)

文本稀疏向量服務(wù)將文本數(shù)據(jù)轉(zhuǎn)化為稀疏向量形式表達(dá),稀疏向量存儲(chǔ)空間更小,常用于表達(dá)關(guān)鍵詞和詞頻信息,可與稠密向量搭配進(jìn)行混合檢索,提升檢索效果。

ES 8.13及以上版本

SPARSE_EMBEDDING(文本稀疏向量)

QUERY ANALYZE(查詢分析)

提供Query內(nèi)容分析服務(wù),基于大語(yǔ)言模型及NLP能力,可對(duì)您輸入的查詢內(nèi)容進(jìn)行意圖識(shí)別、相似問(wèn)題擴(kuò)展、NL2SQL處理等,有效提升RAG場(chǎng)景中檢索問(wèn)答效果。

ES 8.15及以上版本

QUERY ANALYZE(查詢分析)

RERANK(排序服務(wù))

文檔相關(guān)性打分服務(wù),提供通用的文檔打分能力,可根據(jù)query與文檔內(nèi)容的相關(guān)性,按分?jǐn)?shù)由高到低對(duì)doc進(jìn)行排序,并輸出對(duì)應(yīng)的打分結(jié)果。

ES 8.13及以上版本

RERANK(排序服務(wù))

COMPLETION(內(nèi)容生成服務(wù))

調(diào)用包含基于阿里巴巴自研模型底座微調(diào)的RAG專屬大模型服務(wù)。可結(jié)合文檔處理、檢索服務(wù)等,在RAG場(chǎng)景中廣泛應(yīng)用,提升答案的準(zhǔn)確率,降低幻覺(jué)率。

ES 8.15及以上版本

COMPLETION(內(nèi)容生成服務(wù))

創(chuàng)建和調(diào)用Inference APIs

DOCUMENT ANALYZE(文檔內(nèi)容解析)

創(chuàng)建和調(diào)用文檔解析服務(wù),將非結(jié)構(gòu)化數(shù)據(jù)解析為結(jié)構(gòu)化數(shù)據(jù)。更多信息,請(qǐng)參見(jiàn)文檔內(nèi)容解析

創(chuàng)建doc_analyze推理模型

創(chuàng)建模板:

PUT _inference/doc_analyze/<inference_id>
{
  "service": "alibabacloud-ai-search",
  "service_settings": {
    "api_key": "<API-KEY>",
    "service_id": "<service_id>",
    "host": "<host>",
    "workspace": "<workspace_name>",
    "http_schema":"<http_schema>"
  }
}

參數(shù)說(shuō)明:

參數(shù)

說(shuō)明

<inference_id>

自定義的inference endpoint標(biāo)識(shí)符。

service

指定使用的服務(wù)。調(diào)用阿里云AI搜索開(kāi)放平臺(tái)為alibabacloud-ai-search

service_settings

服務(wù)設(shè)置,必填。

└api_key

鑒權(quán)使用的API-KEY。獲取方式,請(qǐng)參見(jiàn)管理API Key

└service_id

使用的模型服務(wù)名稱,支持的值:

  • ops-document-analyze-001:文檔解析服務(wù)-001

模型服務(wù)介紹,請(qǐng)參見(jiàn)文檔內(nèi)容解析

└host

調(diào)用服務(wù)的地址,支持通過(guò)公網(wǎng)、內(nèi)網(wǎng)兩種方式調(diào)用API服務(wù)。

獲取服務(wù)地址,請(qǐng)參見(jiàn)API-KEY管理頁(yè)面的API域名。例如http://default****.platform-cn-shanghai.opensearch.aliyuncs.com

workspace

工作空間名稱,例如default

http_schema

http類型(可選),默認(rèn)值是https,可選參數(shù)包括https和http。

創(chuàng)建示例:

PUT _inference/doc_analyze/doc_analyze_test
{
  "service": "alibabacloud-ai-search",
  "service_settings": {
    "api_key": "OS-XXX",
    "service_id": "ops-document-analyze-001",
    "host" : "default-j01.platform-cnshanghai.opensearch.aliyuncs.com",
    "workspace" : "default"
  }
}

調(diào)用doc_analyze推理模型

調(diào)用模板:

POST _inference/doc_analyze/<inference_id>
{
  "input": ["http://opensearch-shanghai.oss-cn-shanghai.aliyuncs.com/chatos/rag/file-parser/samples/GB10767.pdf"], # 可以是url, content or task_id
  "task_settings": {
    "document": {
      "input_type": "url", # optional, url, content or task_id, default url. 為task_id時(shí)查詢異步task結(jié)果
      "file_name": "<file_name>", # optional, url無(wú)法推斷時(shí)上傳
      "file_type": "<file_type>", # optional, file_name無(wú)法推斷時(shí)上傳
    },
    "output": {
      "image_storage" : "<image_storage>" # optional, default base64
    },
    "is_async" : "<true or false>", # 默認(rèn)false
  }
}

參數(shù)說(shuō)明:

參數(shù)

說(shuō)明

<inference_id>

需要調(diào)用的inference endpoint標(biāo)識(shí)符。

input

需要進(jìn)行文檔解析服務(wù)的文檔。

task_settings

任務(wù)設(shè)置,可選。

└document.input_type

文檔的類型:

  • url :默認(rèn)值

  • content

  • task_id:查詢異步task結(jié)果

└document.file_name

文件名。如果該參數(shù)為空,根據(jù)url推斷,如果url也為空,則需要指定該參數(shù)。

└document.file_type

文件類型。如果該參數(shù)為空,根據(jù)file_name的后綴推斷,如果無(wú)法推斷則需要指定該參數(shù),例如pdf、doc、docx。

└output.image_storage

圖片存儲(chǔ)方式:

  • base64:默認(rèn)方式

  • url:url有效期為3天

└is_async

是否異步調(diào)用:

  • true

  • false

調(diào)用示例:

# 同步
POST _inference/doc_analyze/doc_analyze_test
{
  "input": ["http://opensearch-shanghai.oss-cn-shanghai.aliyuncs.com/chatos/rag/file-parser/samples/GB10767.pdf"]
}

# 異步
POST _inference/doc_analyze/doc_analyze_test
{
  "input": ["http://opensearch-shanghai.oss-cn-shanghai.aliyuncs.com/chatos/rag/file-parser/samples/GB10767.pdf"],
    "task_settings": {
    "document":{
      "input_type": "url"
    },
    "is_async" : true
  }
}

# 獲取異步結(jié)果
POST _inference/doc_analyze/os-doc-a
{
  "input": ["8e8f1137-ffd6-4670-b63e-86906882793d"],
    "task_settings": {
    "document":{
      "input_type": "task_id"
    },
    "is_async" : true
  }
}

IMAGE ANALYZE(圖片內(nèi)容提取

創(chuàng)建和調(diào)用圖片內(nèi)容提取服務(wù),解析后的文本可用于圖片檢索問(wèn)答場(chǎng)景。更多信息,請(qǐng)參見(jiàn)圖片內(nèi)容提取

創(chuàng)建img_analyze推理模型

創(chuàng)建模板:

PUT _inference/img_analyze/<inference_id>
{
  "service": "alibabacloud-ai-search",
  "service_settings": {
    "api_key": "<API-KEY>",
    "service_id": "<service_id>",
    "host": "<host>",
    "workspace": "<workspace_name>",
    "http_schema":"<http_schema>"
  }
}

參數(shù)說(shuō)明:

參數(shù)

說(shuō)明

<inference_id>

自定義的inference endpoint標(biāo)識(shí)符。

service

指定使用的服務(wù)。調(diào)用阿里云AI搜索開(kāi)放平臺(tái)為alibabacloud-ai-search

service_settings

服務(wù)設(shè)置,必填。

└api_key

鑒權(quán)使用的API-KEY。獲取方式,請(qǐng)參見(jiàn)管理API Key

└service_id

使用的模型服務(wù)名稱,支持的值:

  • ops-image-analyze-vlm-001:圖片內(nèi)容理解服務(wù)001

  • ops-image-analyze-ocr-001:圖片文本識(shí)別服務(wù)001

模型服務(wù)介紹,請(qǐng)參見(jiàn)圖片內(nèi)容提取

└host

調(diào)用服務(wù)的地址,支持通過(guò)公網(wǎng)、內(nèi)網(wǎng)兩種方式調(diào)用API服務(wù)。

獲取服務(wù)地址,請(qǐng)參見(jiàn)API-KEY管理頁(yè)面的API域名。例如http://default****.platform-cn-shanghai.opensearch.aliyuncs.com

workspace

工作空間名稱,例如default

http_schema

http類型(可選),默認(rèn)值是https,可選參數(shù)包括https和http。

創(chuàng)建示例:

PUT _inference/img_analyze/img_analyze_test
{
  "service": "alibabacloud-ai-search",
  "service_settings": {
    "api_key": "OS-XXX",
    "service_id": "ops-image-analyze-ocr-001",
    "host" : "default-j01.platform-cn-shanghai.opensearch.aliyuncs.com",
    "workspace" : "default"
  }
}

調(diào)用img_analyze推理模型

調(diào)用模板:

POST _inference/img_analyze/<inference_id>
{
  "input": ["https://img.alicdn.com/imgextra/i1/O1CN01WksnF41hlhBFsXDNB_!!6000000004318-0-tps-1000-1400.jpg"], # 可以是url, content or task_id
  "task_settings": {
    "document": {
      "input_type": "url", # optional, url, content or task_id, default url
      "file_name": "<file_name>", # optional, url無(wú)法推斷時(shí)上傳
      "file_type": "<file_type>", # optional, file_name無(wú)法推斷時(shí)上傳
    },
    "is_async" : "<true or false>" # 默認(rèn)false
  }
}

參數(shù)說(shuō)明:

參數(shù)

說(shuō)明

<inference_id>

需要調(diào)用的inference endpoint標(biāo)識(shí)符。

input

需要進(jìn)行圖片解析服務(wù)的圖片。

task_settings

任務(wù)設(shè)置,可選。

└document.input_type

文檔的類型:

  • url :默認(rèn)值

  • content

  • task_id:查詢異步task結(jié)果

└document.file_name

文件名。如果該參數(shù)為空,根據(jù)url推斷,如果url也為空,則需要指定該參數(shù)。

└document.file_type

文件類型。如果該參數(shù)為空,根據(jù)file_name的后綴推斷,如果無(wú)法推斷則需要指定該參數(shù),例如,jpg, jpeg, png, bmp,tiff。

└is_async

是否異步調(diào)用:

  • true

  • false:默認(rèn)

調(diào)用示例:

# 同步
POST _inference/img_analyze/os-img-a
{
  "input": ["https://img.alicdn.com/imgextra/i1/O1CN01WksnF41hlhBFsXDNB_!!6000000004318-0-tps-1000-1400.jpg"]
}

# 異步
POST _inference/img_analyze/os-img-a
{
  "input": ["https://img.alicdn.com/imgextra/i1/O1CN01WksnF41hlhBFsXDNB_!!6000000004318-0-tps-1000-1400.jpg"],
      "task_settings": {
    "document":{
      "input_type": "url"
    },
    "is_async" : true
  }
}

# 獲取異步結(jié)果
POST _inference/img_analyze/os-img-a
{
  "input": ["0239f61f-dd46-45ef-8cf1-affdd205a8c9"],
      "task_settings": {
    "document":{
      "input_type": "task_id"
    }
    "is_async" : true
  }
}

SPLIT_DOC(文檔切片

創(chuàng)建和調(diào)用文檔切片服務(wù),將復(fù)雜的文檔內(nèi)容按照指定token數(shù)量切分成一個(gè)chunk列表。更多信息,請(qǐng)參見(jiàn)文檔切片

創(chuàng)建splic_doc推理模型

創(chuàng)建模板:

PUT _inference/doc_split/<inference_id>
{
  "service": "alibabacloud-ai-search",
  "service_settings": {
    "host" : "<host>",
    "api_key":"<api_key>",
    "service_id": "<service_id>",
    "workspace" : "<work_space>",
    "http_schema":"<http_schema>"
  },
  "task_settings": {
    "document":{
      "content_encoding":"<document.content_encoding>",
      "content_type":"<document.content_type>"
    },
    "strategy":{
      "type":"<strategy.type>",
      "max_chunk_size":<strategy.max_chunk_size>,
      "compute_type":"<strategy.compute_type>",
      "need_sentence":"<strategy.need_sentence>"
    }
  }
}

參數(shù)說(shuō)明:

參數(shù)

說(shuō)明

<inference_id>

自定義的inference endpoint標(biāo)識(shí)符。

service

指定使用的服務(wù)。調(diào)用阿里云AI搜索開(kāi)放平臺(tái)為alibabacloud-ai-search

service_settings

服務(wù)設(shè)置,必填。

└api_key

鑒權(quán)使用的API-KEY。獲取方式,請(qǐng)參見(jiàn)管理API Key

└service_id

使用的模型服務(wù)名稱,支持的值:

  • ops-document-split-001:文檔切片服務(wù)-001

模型服務(wù)介紹,請(qǐng)參見(jiàn)文檔切片

└host

調(diào)用服務(wù)的地址,支持通過(guò)公網(wǎng)、內(nèi)網(wǎng)兩種方式調(diào)用API服務(wù)。

獲取服務(wù)地址,請(qǐng)參見(jiàn)API-KEY管理頁(yè)面的API域名。例如http://default****.platform-cn-shanghai.opensearch.aliyuncs.com

workspace

工作空間名稱,例如default

http_schema

http類型(可選),默認(rèn)值是https,可選參數(shù)包括https和http。

task_settings

任務(wù)設(shè)置,可選。

└document

文檔配置。

└└content_encoding

content編碼類型,目前僅支持utf8。

└└content_type

content格式,支持的值:

  • html

  • markdown

  • text(默認(rèn)值)

└strategy

切片策略。

└└type

段落切片策略,目前僅支持default,根據(jù)文檔段落格式進(jìn)行切分。

└└max_chunk_size

切片的最大長(zhǎng)度,默認(rèn)300。

└└compute_type

長(zhǎng)度計(jì)算方式,目前僅支持token,按照ops-text-embedding-001向量模型的tokenizer計(jì)算。

└└need_sentence

是否同時(shí)返回sentence級(jí)別切片,用于優(yōu)化短query查詢。

  • false(默認(rèn)值)

  • true:如有需要可選true,token使用量翻倍。

創(chuàng)建示例:

PUT _inference/doc_split/os-doc-split
{
  "service": "alibabacloud-ai-search",
  "service_settings": {
    "api_key": "OS-xxx",
    "service_id": "ops-document-split-001",
    "host" : "default-j01.platform-cn-shanghai.opensearch.aliyuncs.com",
    "workspace" : "default"
  }
}

調(diào)用doc_split推理模型

調(diào)用模板:

POST _inference/doc_split/<inference_id>
{
  "input":"<input>"
}

參數(shù)說(shuō)明:

  • <inference_id>:需要調(diào)用的inference endpoint標(biāo)識(shí)符。

  • input:需要切片的純文本內(nèi)容。根據(jù)JSON標(biāo)準(zhǔn),string字段如果包含字符\\\"\/\b\f\n\r\t,需要轉(zhuǎn)義,常用json庫(kù)生成的json串無(wú)需手動(dòng)轉(zhuǎn)義。

調(diào)用示例:

# query
POST _inference/doc_split/os-doc-split
{
  "input":"Elasticsearch 是一個(gè)開(kāi)源的搜索引擎,建立在一個(gè)全文搜索引擎庫(kù) Apache Lucene? 基礎(chǔ)之上。 Lucene 可以說(shuō)是當(dāng)下最先進(jìn)、高性能、全功能的搜索引擎庫(kù)—?無(wú)論是開(kāi)源還是私有。但是 Lucene 僅僅只是一個(gè)庫(kù)。為了充分發(fā)揮其功能,你需要使用 Java 并將 Lucene 直接集成到應(yīng)用程序中。 更糟糕的是,您可能需要獲得信息檢索學(xué)位才能了解其工作原理。Lucene 非常 復(fù)雜。Elasticsearch 也是使用 Java 編寫(xiě)的,它的內(nèi)部使用 Lucene 做索引與搜索,但是它的目的是使全文檢索變得簡(jiǎn)單, 通過(guò)隱藏 Lucene 的復(fù)雜性,取而代之的提供一套簡(jiǎn)單一致的 RESTful API。然而,Elasticsearch 不僅僅是 Lucene,并且也不僅僅只是一個(gè)全文搜索引擎。 它可以被下面這樣準(zhǔn)確的形容:一個(gè)分布式的實(shí)時(shí)文檔存儲(chǔ),每個(gè)字段可以被索引與搜索.一個(gè)分布式實(shí)時(shí)分析搜索引擎.能勝任上百個(gè)服務(wù)節(jié)點(diǎn)的擴(kuò)展,并支持 PB 級(jí)別的結(jié)構(gòu)化或者非結(jié)構(gòu)化數(shù)據(jù).Elasticsearch 將所有的功能打包成一個(gè)單獨(dú)的服務(wù),這樣你可以通過(guò)程序與它提供的簡(jiǎn)單的 RESTful API 進(jìn)行通信, 可以使用自己喜歡的編程語(yǔ)言充當(dāng) web 客戶端,甚至可以使用命令行(去充當(dāng)這個(gè)客戶端)。就 Elasticsearch 而言,起步很簡(jiǎn)單。對(duì)于初學(xué)者來(lái)說(shuō),它預(yù)設(shè)了一些適當(dāng)?shù)哪J(rèn)值,并隱藏了復(fù)雜的搜索理論知識(shí)。 它 開(kāi)箱即用。只需最少的理解,你很快就能具有生產(chǎn)力。隨著你知識(shí)的積累,你可以利用 Elasticsearch 更多的高級(jí)特性,它的整個(gè)引擎是可配置并且靈活的。 從眾多高級(jí)特性中,挑選恰當(dāng)去修飾的 Elasticsearch,使它能解決你本地遇到的問(wèn)題。你可以免費(fèi)下載,使用,修改 Elasticsearch。它在 Apache 2 license 協(xié)議下發(fā)布的, 這是眾多靈活的開(kāi)源協(xié)議之一。Elasticsearch 的源碼被托管在 Github 上 github.com/elastic/elasticsearch。 如果你想加入我們這個(gè)令人驚奇的 contributors 社區(qū),看這里 Contributing to Elasticsearch。如果你對(duì) Elasticsearch 有任何相關(guān)的問(wèn)題,包括特定的特性(specific features)、語(yǔ)言客戶端(language clients)、插件(plugins),可以在這里 discuss.elastic.co 加入討論。"
}

# response
{
  "doc_split": {
    "rich_texts": [],
    "nodes": [
      {
        "parent_id": "af0d0ddc07844835883c76c046cb97fd",
        "id": "af0d0ddc07844835883c76c046cb97fd",
        "type": "root"
      },
      {
        "parent_id": "af0d0ddc07844835883c76c046cb97fd",
        "id": "d77e2ff8d7724ae797f991580299b680",
        "type": "sentence_node"
      },
      {
        "parent_id": "af0d0ddc07844835883c76c046cb97fd",
        "id": "aef1bc5fe2354f7a8b76ce07249a1836",
        "type": "sentence_node"
      }
    ],
    "chunks": [
      {
        "meta": {
          "parent_id": "af0d0ddc07844835883c76c046cb97fd",
          "id": "d77e2ff8d7724ae797f991580299b680",
          "type": "text",
          "token": 298
        },
        "content": "Elasticsearch 是一個(gè)開(kāi)源的搜索引擎,建立在一個(gè)全文搜索引擎庫(kù) Apache Lucene? 基礎(chǔ)之上。 Lucene 可以說(shuō)是當(dāng)下最先進(jìn)、高性能、全功能的搜索引擎庫(kù)—?無(wú)論是開(kāi)源還是私有。但是 Lucene 僅僅只是一個(gè)庫(kù)。為了充分發(fā)揮其功能,你需要使用 Java 并將 Lucene 直接集成到應(yīng)用程序中。 更糟糕的是,您可能需要獲得信息檢索學(xué)位才能了解其工作原理。Lucene 非常 復(fù)雜。Elasticsearch 也是使用 Java 編寫(xiě)的,它的內(nèi)部使用 Lucene 做索引與搜索,但是它的目的是使全文檢索變得簡(jiǎn)單, 通過(guò)隱藏 Lucene 的復(fù)雜性,取而代之的提供一套簡(jiǎn)單一致的 RESTful API。然而,Elasticsearch 不僅僅是 Lucene,并且也不僅僅只是一個(gè)全文搜索引擎。 它可以被下面這樣準(zhǔn)確的形容:一個(gè)分布式的實(shí)時(shí)文檔存儲(chǔ),每個(gè)字段可以被索引與搜索.一個(gè)分布式實(shí)時(shí)分析搜索引擎.能勝任上百個(gè)服務(wù)節(jié)點(diǎn)的擴(kuò)展,并支持 PB 級(jí)別的結(jié)構(gòu)化或者非結(jié)構(gòu)化數(shù)據(jù).Elasticsearch 將所有的功能打包成一個(gè)單獨(dú)的服務(wù),這樣你可以通過(guò)程序與它提供的簡(jiǎn)單的 RESTful API 進(jìn)行通信, 可以使用自己喜歡的編程語(yǔ)言充當(dāng) web 客戶端,甚至可以使用命令行(去充當(dāng)這個(gè)客戶端)。就 Elasticsearch 而言,起步很簡(jiǎn)單。對(duì)于初學(xué)者來(lái)說(shuō),它預(yù)設(shè)了一些適當(dāng)?shù)哪J(rèn)值,并隱藏了復(fù)雜的搜索理論知識(shí)。 它 開(kāi)箱即用"
      },
      {
        "meta": {
          "parent_id": "af0d0ddc07844835883c76c046cb97fd",
          "id": "aef1bc5fe2354f7a8b76ce07249a1836",
          "type": "text",
          "token": 160
        },
        "content": "只需最少的理解,你很快就能具有生產(chǎn)力。隨著你知識(shí)的積累,你可以利用 Elasticsearch 更多的高級(jí)特性,它的整個(gè)引擎是可配置并且靈活的。 從眾多高級(jí)特性中,挑選恰當(dāng)去修飾的 Elasticsearch,使它能解決你本地遇到的問(wèn)題。你可以免費(fèi)下載,使用,修改 Elasticsearch。它在 Apache 2 license 協(xié)議下發(fā)布的, 這是眾多靈活的開(kāi)源協(xié)議之一。Elasticsearch 的源碼被托管在 Github 上 github.com/elastic/elasticsearch。 如果你想加入我們這個(gè)令人驚奇的 contributors 社區(qū),看這里 Contributing to Elasticsearch。如果你對(duì) Elasticsearch 有任何相關(guān)的問(wèn)題,包括特定的特性(specific features)、語(yǔ)言客戶端(language clients)、插件(plugins),可以在這里 discuss.elastic.co 加入討論。"
      }
    ]
  }
}

TEXT_EMBEDDING(文本向量

創(chuàng)建和調(diào)用文本向量服務(wù),將文本數(shù)據(jù)轉(zhuǎn)化為稠密向量形式表達(dá),可用于信息檢索、文本分類、相似性比較等場(chǎng)景。更多信息,請(qǐng)參見(jiàn)文本向量

創(chuàng)建text_embedding推理模型

創(chuàng)建模板:

PUT _inference/text_embedding/<inference_id>
{
  "service": "alibabacloud-ai-search",
  "service_settings": {
    "api_key": "<API-KEY>",
    "service_id": "<service_id>",
    "host": "<host>",
    "workspace": "<workspace_name>",
    "http_schema":"<http_schema>"
  },
  "task_settings": {
    "input_type": "<input_type>"
  }
}

參數(shù)說(shuō)明:

參數(shù)

說(shuō)明

<inference_id>

自定義的inference endpoint標(biāo)識(shí)符。

service

指定使用的服務(wù)。調(diào)用阿里云AI搜索開(kāi)放平臺(tái)為alibabacloud-ai-search

service_settings

服務(wù)設(shè)置,必填。

└api_key

鑒權(quán)使用的API-KEY。獲取方式,請(qǐng)參見(jiàn)管理API Key

└service_id

使用的模型服務(wù)名稱,支持的值:

  • ops-text-embedding-001:OpenSearch通用文本向量服務(wù)-001

  • ops-text-embedding-zh-001:OpenSearch文本向量服務(wù)-中文-001

  • ops-text-embedding-en-001:OpenSearch文本向量服務(wù)-英文-001

  • ops-text-embedding-002:OpenSearch通用文本向量服務(wù)-002

模型服務(wù)介紹,請(qǐng)參見(jiàn)文本向量

└host

調(diào)用服務(wù)的地址,支持通過(guò)公網(wǎng)、內(nèi)網(wǎng)兩種方式調(diào)用API服務(wù)。

獲取服務(wù)地址,請(qǐng)參見(jiàn)API-KEY管理頁(yè)面的API域名。例如default****.platform-cn-shanghai.opensearch.aliyuncs.com

說(shuō)明

調(diào)用服務(wù)的地址host無(wú)需添加http://

workspace

工作空間名稱,例如default

http_schema

http類型(可選),默認(rèn)值是https,可選參數(shù)包括https和http。

task_settings

任務(wù)設(shè)置,可選。

└input_type

input的數(shù)據(jù)類型,支持的值:

  • search:查詢時(shí)使用

  • ingest(默認(rèn)):寫(xiě)入時(shí)使用

創(chuàng)建示例:

PUT _inference/text_embedding/os-embeddings
{
  "service": "alibabacloud-ai-search",
  "service_settings": {
    "api_key": "OS-xxx",
    "service_id": "ops-text-embedding-001",
    "host" : "default-j01.platform-cn-shanghai.opensearch.aliyuncs.com",
    "workspace" : "default"
  }
}

調(diào)用text_embedding推理模型

調(diào)用模板:

POST _inference/text_embedding/<inference_id>
{
  "input":[<input>]
}

參數(shù)說(shuō)明:

  • <inference_id>:需要調(diào)用的inference endpoint標(biāo)識(shí)符。

  • input:輸入內(nèi)容。每次請(qǐng)求最多支持32條文本輸入,每一條文本的長(zhǎng)度大小取決于選擇的模型。不支持空的字符串。

調(diào)用示例:

# query
POST _inference/text_embedding/os-embeddings
{
  "input":["科學(xué)技術(shù)是第一生產(chǎn)力",
        "elasticsearch產(chǎn)品文檔"]
}

# response
{
  "text_embedding": [
    {
      "embedding": [
        -0.029408421,
        0.061318535,
        ... 
        ]
    },
    {
      "embedding": [
        0.01568979,
        0.065073475,
        ...
        ]
    }
  ]
}

SPARSE_EMBEDDING(文本稀疏向量

創(chuàng)建和調(diào)用文本稀疏向量服務(wù),將文本數(shù)據(jù)轉(zhuǎn)化為稀疏向量形式表達(dá),稀疏向量存儲(chǔ)空間更小,常用于表達(dá)關(guān)鍵詞和詞頻信息,可與稠密向量搭配進(jìn)行混合檢索,提升檢索效果。更多信息,請(qǐng)參見(jiàn)文本稀疏向量

創(chuàng)建sparse_embedding推理模型

創(chuàng)建模板:

PUT _inference/sparse_embedding/<inference_id>
{
  "service": "alibabacloud-ai-search",
  "service_settings": {
    "api_key": "<API-KEY>",
    "service_id": "<service_id>",
    "host": "<host>",
    "workspace": "<workspace_name>",
    "http_schema":"<http_schema>"
  },
  "task_settings": {
    "input_type": "<input_type>"
  }
}

參數(shù)說(shuō)明:

參數(shù)

說(shuō)明

<inference_id>

自定義的inference endpoint標(biāo)識(shí)符。

service

指定使用的服務(wù)。調(diào)用阿里云AI搜索開(kāi)放平臺(tái)為alibabacloud-ai-search

service_settings

服務(wù)設(shè)置,必填。

└api_key

鑒權(quán)使用的API-KEY。獲取方式,請(qǐng)參見(jiàn)管理API Key

└service_id

使用的模型服務(wù)名稱,支持的值:

  • ops-text-sparse-embedding-001:OpenSearch文本稀疏向量服務(wù)-001

模型服務(wù)介紹,請(qǐng)參見(jiàn)文本稀疏向量

└host

調(diào)用服務(wù)的地址,支持通過(guò)公網(wǎng)、內(nèi)網(wǎng)兩種方式調(diào)用API服務(wù)。

獲取服務(wù)地址,請(qǐng)參見(jiàn)API-KEY管理頁(yè)面的API域名。例如http://default****.platform-cn-shanghai.opensearch.aliyuncs.com

workspace

工作空間名稱,例如default

http_schema

http類型(可選),默認(rèn)值是https,可選參數(shù)包括https和http。

task_settings

任務(wù)設(shè)置,可選。

└input_type

input的數(shù)據(jù)類型,支持的值:

  • search:查詢時(shí)使用

  • ingest(默認(rèn)):寫(xiě)入時(shí)使用

return_token

返回Token:

  • false(默認(rèn))

  • true:該接口返回的內(nèi)容,主鍵從tokenid變?yōu)閠okenName。

調(diào)用示例:

PUT _inference/sparse_embedding/os-sparse-embeddings
{
  "service": "alibabacloud-ai-search",
  "service_settings": {
    "api_key": "OS-xxx",
    "service_id": "ops-text-sparse-embedding-001",
    "host" : "default-j01.platform-cn-shanghai.opensearch.aliyuncs.com",
    "workspace" : "default"
  }
}

調(diào)用sparse_embedding推理模型

調(diào)用模板:

POST _inference/sparse_embedding/<inference_id>
{
  "input":[<input>]
}

參數(shù)說(shuō)明:

  • <inference_id>:需要調(diào)用的inference endpoint標(biāo)識(shí)符。

  • input:輸入內(nèi)容。每次請(qǐng)求最多支持32條文本輸入,每一條文本的長(zhǎng)度大小取決于選擇的模型。不支持空的字符串。

調(diào)用示例:

# query
POST _inference/sparse_embedding/os-sparse-embeddings
{"input":["科學(xué)技術(shù)是第一生產(chǎn)力","elasticsearch產(chǎn)品文檔"]}

# response
{
  "sparse_embedding" : [
    {
      "is_truncated" : false,
      "embedding" : {
        "6" : 0.10144043,
        "163040" : 0.2841797,
        "354" : 0.14318848,
        "5998" : 0.16149902,
        "8550" : 0.23901367,
        "2017" : 0.16137695
      }
    },
    {
      "is_truncated" : false,
      "embedding" : {
        "6" : 0.0035858154,
        "128766" : 0.24768066,
        "86250" : 0.2680664,
        "5889" : 0.19616699,
        "2564" : 0.12634277,
        "59529" : 0.19226074
      }
    }
  ]
}

QUERY ANALYZE(查詢分析)

創(chuàng)建和調(diào)用查詢分析服務(wù),將您輸入的Query進(jìn)行意圖理解,并進(jìn)行相似問(wèn)題擴(kuò)展。更多信息,請(qǐng)參見(jiàn)查詢分析

創(chuàng)建query_analyze推理模型

創(chuàng)建模板:

PUT _inference/query_analyze/<inference_id>
{
  "service": "alibabacloud-ai-search",
  "service_settings": {
    "host" : "<host>",
    "api_key":"<api_key>",
    "service_id": "<service_id>",
    "workspace" : "<work_space>",
    "http_schema":"<http_schema>"
  }
}

參數(shù)說(shuō)明:

參數(shù)

說(shuō)明

<inference_id>

自定義的inference endpoint標(biāo)識(shí)符。

service

指定使用的服務(wù)。調(diào)用阿里云AI搜索開(kāi)放平臺(tái)為alibabacloud-ai-search

service_settings

服務(wù)設(shè)置,必填。

└api_key

鑒權(quán)使用的API-KEY。獲取方式,請(qǐng)參見(jiàn)管理API Key

└service_id

使用的模型服務(wù)名稱,支持的值:

ops-query-analyze-001:查詢分析服務(wù)

模型服務(wù)介紹,請(qǐng)參見(jiàn)查詢分析

└host

調(diào)用服務(wù)的地址,支持通過(guò)公網(wǎng)、內(nèi)網(wǎng)兩種方式調(diào)用API服務(wù)。

獲取服務(wù)地址,請(qǐng)參見(jiàn)API-KEY管理頁(yè)面的API域名。例如http://default****.platform-cn-shanghai.opensearch.aliyuncs.com

workspace

工作空間名稱,例如default

http_schema

http類型(可選),默認(rèn)值是https,可選參數(shù)包括https和http。

創(chuàng)建示例:

PUT _inference/query_analyze/query_analyze_test
{
  "service": "alibabacloud-ai-search",
  "service_settings": {
    "api_key": "OS-xxx",
    "service_id": "ops-query-analyze-001",
    "host": "default-***.platform-cn-shanghai.opensearch.aliyuncs.com",
    "workspace": "default"
  }
}

調(diào)用query_analyze推理模型

調(diào)用模板:

POST _inference/query_analyze/<inference_id>
{
  "input":"<input>",
  "task_settings": {
    "history": [
      {
        "content": "<history.content>",
        "role": "<history.role>"
      },
      {
        "content": "<history.content>",
        "role": "<history.role>"
      }
    ]
  }
}

參數(shù)說(shuō)明:

參數(shù)

說(shuō)明

<inference_id>

需要調(diào)用的inference endpoint標(biāo)識(shí)符。

input

需要進(jìn)行查詢分析的Query。

task_settings

任務(wù)設(shè)置,可選。

└history

歷史消息。

└└content

歷史消息的內(nèi)容。

└└role

歷史消息的發(fā)送者,角色可選值包括:

  • system

  • user

  • assistant

調(diào)用示例:

POST _inference/query_analyze/query_analyze_test
{
  "input":"有多少人口",
  "task_settings": {
    "history": [
      {
        "content": "中國(guó)的首都在哪",
        "role": "user"
      },
      {
        "content": "北京",
        "role": "assistant"
      }
    ]
  }
}

RERANK(排序服務(wù)

創(chuàng)建和調(diào)用文檔相關(guān)性打分服務(wù),根據(jù)Query與文檔內(nèi)容的相關(guān)性,按分?jǐn)?shù)由高到低對(duì)doc進(jìn)行排序,并輸出對(duì)應(yīng)的打分結(jié)果。更多信息,請(qǐng)參見(jiàn)排序服務(wù)

創(chuàng)建rerank推理服務(wù)

創(chuàng)建模板:

PUT _inference/rerank/<inference_id>
{
  "service": "alibabacloud-ai-search",
  "service_settings": {
    "host": "<host>",
    "api_key": "<API-KEY>",
    "service_id": "<service_id>",
    "workspace": "<workspace_name>",
    "http_schema":"<http_schema>"
  }
}

參數(shù)說(shuō)明:

參數(shù)

說(shuō)明

<inference_id>

自定義的inference endpoint標(biāo)識(shí)符。

service

指定使用的服務(wù)。調(diào)用阿里云AI搜索開(kāi)放平臺(tái)為alibabacloud-ai-search

service_settings

服務(wù)設(shè)置,必填。

└api_key

鑒權(quán)使用的API-KEY。獲取方式,請(qǐng)參見(jiàn)管理API Key

└service_id

使用的模型服務(wù)名稱,支持的值:

  • ops-bge-reranker-larger:BGE重排模型

模型服務(wù)介紹,請(qǐng)參見(jiàn)排序服務(wù)

└host

調(diào)用服務(wù)的地址,支持通過(guò)公網(wǎng)、內(nèi)網(wǎng)兩種方式調(diào)用API服務(wù)。

獲取服務(wù)地址,請(qǐng)參見(jiàn)API-KEY管理頁(yè)面的API域名。例如http://default****.platform-cn-shanghai.opensearch.aliyuncs.com

workspace

工作空間名稱,例如default

http_schema

http類型(可選),默認(rèn)值是https,可選參數(shù)包括https和http。

調(diào)用示例:

PUT _inference/rerank/os-rerank
{
  "service": "alibabacloud-ai-search",
  "service_settings": {
    "api_key": "OS-xxx",
    "service_id": "ops-bge-reranker-larger",
    "host" : "default-j01.platform-cn-shanghai.opensearch.aliyuncs.com",
    "workspace" : "default"
  }
}

調(diào)用rerank推理模型

調(diào)用模板:

POST _inference/rerank/<inference_id>
{
  "input": [<input_list>],
  "query": "<query>"
}

參數(shù)說(shuō)明:

  • infenrece_id:需要調(diào)用的inference endpoint標(biāo)識(shí)符。

  • input:列表形式的文檔內(nèi)容。

  • query:查詢內(nèi)容。

調(diào)用示例:

# query
POST _inference/rerank/os-rerank
{
  "input": ["luke", "like", "leia", "chewy","r2d2", "star", "wars"],
  "query": "star wars main character"
}

# response
{
  "rerank": [
    {
      "index": 5,
      "score": 0.34587815
    },
    {
      "index": 6,
      "score": 0.10338597
    },
    {
      "index": 2,
      "score": 0.071332
    },
    {
      "index": 0,
      "score": 0.04681203
    },
    {
      "index": 4,
      "score": 0.015189049
    },
    {
      "index": 1,
      "score": 0.0013406205
    },
    {
      "index": 3,
      "score": 0.00109019
    }
  ]
}

COMPLETION(內(nèi)容生成服務(wù))

創(chuàng)建和調(diào)用大模型服務(wù),調(diào)用包含基于阿里巴巴自研模型底座微調(diào)的RAG專屬大模型。更多信息,請(qǐng)參見(jiàn)內(nèi)容生成服務(wù)

創(chuàng)建completion推理模型

創(chuàng)建模板:

PUT _inference/completion/<inference_id>
{
    "service": "alibabacloud-ai-search",
    "service_settings": {
      "api_key":"<api_key>",
      "service_id": "<service_id>",
      "host" : "<host>",
      "workspace" : "<work_space>",
      "http_schema":"<http_schema>"
    }
}

參數(shù)說(shuō)明:

參數(shù)

說(shuō)明

<inference_id>

自定義的inference endpoint標(biāo)識(shí)符。

service

指定使用的服務(wù)。調(diào)用阿里云AI搜索開(kāi)放平臺(tái)為alibabacloud-ai-search

service_settings

服務(wù)設(shè)置,必填。

└api_key

鑒權(quán)使用的API-KEY。獲取方式,請(qǐng)參見(jiàn)管理API Key

└service_id

使用的模型服務(wù)名稱,支持的值:

  • ops-qwen-turbo:OpenSearch-通義千問(wèn)-Turbo

  • qwen-turbo:通義千問(wèn)-Turbo

  • qwen-plus:通義千問(wèn)-Plus

  • qwen-max:通義千問(wèn)-Max

模型服務(wù)介紹,請(qǐng)參見(jiàn)內(nèi)容生成服務(wù)

└host

調(diào)用服務(wù)的地址,支持通過(guò)公網(wǎng)、內(nèi)網(wǎng)兩種方式調(diào)用API服務(wù)。

獲取服務(wù)地址,請(qǐng)參見(jiàn)API-KEY管理頁(yè)面的API域名。例如default****.platform-cn-shanghai.opensearch.aliyuncs.com

說(shuō)明

調(diào)用服務(wù)的地址host無(wú)需添加http://

workspace

工作空間名稱,例如default

http_schema

http類型(可選),默認(rèn)值是https,可選參數(shù)包括https和http。

創(chuàng)建示例:

PUT _inference/completion/os-completion-test
{
    "service": "alibabacloud-ai-search",
    "service_settings": {
      "api_key": "OS-xxx",
      "service_id": "ops-qwen-turbo",
      "workspace" : "default",
      "host" : "default-XXX.platform-cn-shanghai.opensearch.aliyuncs.com"
    }
}

調(diào)用completion推理模型

調(diào)用模板:

POST _inference/completion/<inference_id>
{
  "input":["<input>"]
}

參數(shù)說(shuō)明:

  • <inference_id>:需要調(diào)用的inference endpoint標(biāo)識(shí)符。

  • input:模型輸入內(nèi)容。輸入需要為奇數(shù)(n + 1)個(gè),前n個(gè)輸入代表用戶和模型的對(duì)話,最后一個(gè)輸入代表當(dāng)前的輸入信息。

調(diào)用示例:

POST _inference/completion/os-completion-test
{
  "input":["河南省會(huì)是哪里"]
}

POST _inference/completion/os-completion-test
{
  "input":["河南省會(huì)是哪里", "鄭州", "那里有什么好玩的"]
}

GET Inference API

獲取推理模型信息。更多信息,請(qǐng)參見(jiàn)Get inference API

GET /_inference/_all

GET /_inference/<inference_id>

GET /_inference/<task_type>/_all

GET /_inference/<task_type>/<inference_id>

參數(shù)說(shuō)明:

  • <inference_id>:自定義的inference endpoint標(biāo)識(shí)符。

  • <task_type>:inference接口類型,支持的值:

    • text_embedding

    • sparse_embedding

    • rerank

調(diào)用示例:

# query
GET _inference/_all

# response
{
  "models": [
    {
      "model_id": "os-embeddings",
      "task_type": "text_embedding",
      "service": "alicloud-ai-search",
      "service_settings": {
        "similarity": "dot_product",
        "dimensions": 1536,
        "service_id": "ops-text-embedding-001",
        "host": "default-j01.platform-cn-shanghai.opensearch.aliyuncs.com",
        "workspace": "default"
      },
      "task_settings": {}
    },
    {
      "model_id": "os-rerank",
      "task_type": "rerank",
      "service": "alicloud-ai-search",
      "service_settings": {
        "service_id": "ops-bge-reranker-larger",
        "host": "default-j01.platform-cn-shanghai.opensearch.aliyuncs.com",
        "workspace": "default"
      },
      "task_settings": {}
    },
    {
      "model_id": "os-sparse-embeddings",
      "task_type": "sparse_embedding",
      "service": "alicloud-ai-search",
      "service_settings": {
        "service_id": "ops-text-sparse-embedding-001",
        "host": "default-j01.platform-cn-shanghai.opensearch.aliyuncs.com",
        "workspace": "default"
      },
      "task_settings": {}
    }
  ]
}

DELETE Inference API

刪除推理模型。更多信息,請(qǐng)參見(jiàn)DELETE Inference API

DELETE /_inference/<inference_id>

DELETE /_inference/<task_type>/<inference_id>

參數(shù)說(shuō)明:

  • <inference_id>:自定義的inference endpoint標(biāo)識(shí)符。

  • <task_type>:inference接口類型,支持的值:

    • text_embedding

    • sparse_embedding

    • rerank

調(diào)用示例:

# query
DELETE _inference/os-rerank

# response
{
  "acknowledged": true
}

Ingest Processor擴(kuò)展

Ingest Processor是一種用于處理和轉(zhuǎn)換數(shù)據(jù)的工具,通過(guò)配置Ingest Processor,您可以對(duì)數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換、清洗和預(yù)處理,以便將滿足數(shù)據(jù)格式要求的數(shù)據(jù)導(dǎo)入阿里云ES中。

基于阿里云搜索開(kāi)放平臺(tái)的Inference擴(kuò)展,阿里云ES實(shí)現(xiàn)了以下幾個(gè)自定義的ingest processor,您可以通過(guò)更方便的配置將數(shù)據(jù)導(dǎo)入ES中。

split doc processor

split doc processor使用doc_split模型,將一個(gè)富文本切成多個(gè)chunk。

創(chuàng)建split doc processor

PUT _ingest/pipeline/<pipeline_name>
{
  "description": "<description>",
  "processors": [
    {
      "document_splitting": {
        "model_id": "<model_id>",
        "input_output": [
          {
            "input_field": "<input_type>",
            "output_field": "<input_field>",
            "extend_output_field": "<extend_output_field>"
          }
        ]
      }
    }
  ]
}

參數(shù)說(shuō)明:

參數(shù)

說(shuō)明

pipeline_name

自定義pipeline的名稱。

description

pipeline的說(shuō)明。

model_id

定義的文檔切片服務(wù)對(duì)應(yīng)的model_id。

input_field

輸入的字段名。

output_field

輸出結(jié)果的字段名。

extend_output_field

額外的輸出結(jié)果的字段名,一些需要二次處理的結(jié)果會(huì)在這個(gè)字段中。

調(diào)用示例:

PUT _ingest/pipeline/os-split-doc-pipeline
{
  "description": "This is an example of split doc pipeline",
  "processors": [
    {
      "document_splitting": {
        "model_id": "os-doc-split",
        "input_output": [
          {
            "input_field": "content",
            "output_field": "chunk",
            "extend_output_field": "chunk_ext"
          }
        ]
      }
    }
  ]
}

使用_simulate測(cè)試pipeline功能

POST _ingest/pipeline/os-split-doc-pipeline/_simulate
{
  "docs": [
    {
      "_index": "testindex",
      "_id": "1",
      "_source":{
        "content": "Elasticsearch 是一個(gè)開(kāi)源的搜索引擎,建立在一個(gè)全文搜索引擎庫(kù) Apache Lucene? 基礎(chǔ)之上。 Lucene 可以說(shuō)是當(dāng)下最先進(jìn)、高性能、全功能的搜索引擎庫(kù)—?無(wú)論是開(kāi)源還是私有。但是 Lucene 僅僅只是一個(gè)庫(kù)。為了充分發(fā)揮其功能,你需要使用 Java 并將 Lucene 直接集成到應(yīng)用程序中。 更糟糕的是,您可能需要獲得信息檢索學(xué)位才能了解其工作原理。Lucene 非常 復(fù)雜。Elasticsearch 也是使用 Java 編寫(xiě)的,它的內(nèi)部使用 Lucene 做索引與搜索,但是它的目的是使全文檢索變得簡(jiǎn)單, 通過(guò)隱藏 Lucene 的復(fù)雜性,取而代之的提供一套簡(jiǎn)單一致的 RESTful API。然而,Elasticsearch 不僅僅是 Lucene,并且也不僅僅只是一個(gè)全文搜索引擎。 它可以被下面這樣準(zhǔn)確的形容:一個(gè)分布式的實(shí)時(shí)文檔存儲(chǔ),每個(gè)字段可以被索引與搜索.一個(gè)分布式實(shí)時(shí)分析搜索引擎.能勝任上百個(gè)服務(wù)節(jié)點(diǎn)的擴(kuò)展,并支持 PB 級(jí)別的結(jié)構(gòu)化或者非結(jié)構(gòu)化數(shù)據(jù).Elasticsearch 將所有的功能打包成一個(gè)單獨(dú)的服務(wù),這樣你可以通過(guò)程序與它提供的簡(jiǎn)單的 RESTful API 進(jìn)行通信, 可以使用自己喜歡的編程語(yǔ)言充當(dāng) web 客戶端,甚至可以使用命令行(去充當(dāng)這個(gè)客戶端)。就 Elasticsearch 而言,起步很簡(jiǎn)單。對(duì)于初學(xué)者來(lái)說(shuō),它預(yù)設(shè)了一些適當(dāng)?shù)哪J(rèn)值,并隱藏了復(fù)雜的搜索理論知識(shí)。 它 開(kāi)箱即用。只需最少的理解,你很快就能具有生產(chǎn)力。隨著你知識(shí)的積累,你可以利用 Elasticsearch 更多的高級(jí)特性,它的整個(gè)引擎是可配置并且靈活的。 從眾多高級(jí)特性中,挑選恰當(dāng)去修飾的 Elasticsearch,使它能解決你本地遇到的問(wèn)題。你可以免費(fèi)下載,使用,修改 Elasticsearch。它在 Apache 2 license 協(xié)議下發(fā)布的, 這是眾多靈活的開(kāi)源協(xié)議之一。Elasticsearch 的源碼被托管在 Github 上 github.com/elastic/elasticsearch。 如果你想加入我們這個(gè)令人驚奇的 contributors 社區(qū),看這里 Contributing to Elasticsearch。如果你對(duì) Elasticsearch 有任何相關(guān)的問(wèn)題,包括特定的特性(specific features)、語(yǔ)言客戶端(language clients)、插件(plugins),可以在這里 discuss.elastic.co 加入討論。"
      }
    }
    ]
}

返回的Response如下:

{
  "docs": [
    {
      "doc": {
        "_index": "testindex",
        "_version": "-3",
        "_id": "1",
        "_source": {
          "chunk_ext": [],
          "chunk": [
            {
              "meta": {
                "id": "0284a0f5644540c8b3c6ddefd897353f",
                "type": "text",
                "parent_id": "d88a5098fd5d446da7f81f9074b47591",
                "token": 298
              },
              "content": "Elasticsearch 是一個(gè)開(kāi)源的搜索引擎,建立在一個(gè)全文搜索引擎庫(kù) Apache Lucene? 基礎(chǔ)之上。 Lucene 可以說(shuō)是當(dāng)下最先進(jìn)、高性能、全功能的搜索引擎庫(kù)—?無(wú)論是開(kāi)源還是私有。但是 Lucene 僅僅只是一個(gè)庫(kù)。為了充分發(fā)揮其功能,你需要使用 Java 并將 Lucene 直接集成到應(yīng)用程序中。 更糟糕的是,您可能需要獲得信息檢索學(xué)位才能了解其工作原理。Lucene 非常 復(fù)雜。Elasticsearch 也是使用 Java 編寫(xiě)的,它的內(nèi)部使用 Lucene 做索引與搜索,但是它的目的是使全文檢索變得簡(jiǎn)單, 通過(guò)隱藏 Lucene 的復(fù)雜性,取而代之的提供一套簡(jiǎn)單一致的 RESTful API。然而,Elasticsearch 不僅僅是 Lucene,并且也不僅僅只是一個(gè)全文搜索引擎。 它可以被下面這樣準(zhǔn)確的形容:一個(gè)分布式的實(shí)時(shí)文檔存儲(chǔ),每個(gè)字段可以被索引與搜索.一個(gè)分布式實(shí)時(shí)分析搜索引擎.能勝任上百個(gè)服務(wù)節(jié)點(diǎn)的擴(kuò)展,并支持 PB 級(jí)別的結(jié)構(gòu)化或者非結(jié)構(gòu)化數(shù)據(jù).Elasticsearch 將所有的功能打包成一個(gè)單獨(dú)的服務(wù),這樣你可以通過(guò)程序與它提供的簡(jiǎn)單的 RESTful API 進(jìn)行通信, 可以使用自己喜歡的編程語(yǔ)言充當(dāng) web 客戶端,甚至可以使用命令行(去充當(dāng)這個(gè)客戶端)。就 Elasticsearch 而言,起步很簡(jiǎn)單。對(duì)于初學(xué)者來(lái)說(shuō),它預(yù)設(shè)了一些適當(dāng)?shù)哪J(rèn)值,并隱藏了復(fù)雜的搜索理論知識(shí)。 它 開(kāi)箱即用"
            },
            {
              "meta": {
                "id": "f6d8063c562240cabeb52365999eeea3",
                "type": "text",
                "parent_id": "d88a5098fd5d446da7f81f9074b47591",
                "token": 160
              },
              "content": "只需最少的理解,你很快就能具有生產(chǎn)力。隨著你知識(shí)的積累,你可以利用 Elasticsearch 更多的高級(jí)特性,它的整個(gè)引擎是可配置并且靈活的。 從眾多高級(jí)特性中,挑選恰當(dāng)去修飾的 Elasticsearch,使它能解決你本地遇到的問(wèn)題。你可以免費(fèi)下載,使用,修改 Elasticsearch。它在 Apache 2 license 協(xié)議下發(fā)布的, 這是眾多靈活的開(kāi)源協(xié)議之一。Elasticsearch 的源碼被托管在 Github 上 github.com/elastic/elasticsearch。 如果你想加入我們這個(gè)令人驚奇的 contributors 社區(qū),看這里 Contributing to Elasticsearch。如果你對(duì) Elasticsearch 有任何相關(guān)的問(wèn)題,包括特定的特性(specific features)、語(yǔ)言客戶端(language clients)、插件(plugins),可以在這里 discuss.elastic.co 加入討論。"
            }
          ],
          "content": "Elasticsearch 是一個(gè)開(kāi)源的搜索引擎,建立在一個(gè)全文搜索引擎庫(kù) Apache Lucene? 基礎(chǔ)之上。 Lucene 可以說(shuō)是當(dāng)下最先進(jìn)、高性能、全功能的搜索引擎庫(kù)—?無(wú)論是開(kāi)源還是私有。但是 Lucene 僅僅只是一個(gè)庫(kù)。為了充分發(fā)揮其功能,你需要使用 Java 并將 Lucene 直接集成到應(yīng)用程序中。 更糟糕的是,您可能需要獲得信息檢索學(xué)位才能了解其工作原理。Lucene 非常 復(fù)雜。Elasticsearch 也是使用 Java 編寫(xiě)的,它的內(nèi)部使用 Lucene 做索引與搜索,但是它的目的是使全文檢索變得簡(jiǎn)單, 通過(guò)隱藏 Lucene 的復(fù)雜性,取而代之的提供一套簡(jiǎn)單一致的 RESTful API。然而,Elasticsearch 不僅僅是 Lucene,并且也不僅僅只是一個(gè)全文搜索引擎。 它可以被下面這樣準(zhǔn)確的形容:一個(gè)分布式的實(shí)時(shí)文檔存儲(chǔ),每個(gè)字段可以被索引與搜索.一個(gè)分布式實(shí)時(shí)分析搜索引擎.能勝任上百個(gè)服務(wù)節(jié)點(diǎn)的擴(kuò)展,并支持 PB 級(jí)別的結(jié)構(gòu)化或者非結(jié)構(gòu)化數(shù)據(jù).Elasticsearch 將所有的功能打包成一個(gè)單獨(dú)的服務(wù),這樣你可以通過(guò)程序與它提供的簡(jiǎn)單的 RESTful API 進(jìn)行通信, 可以使用自己喜歡的編程語(yǔ)言充當(dāng) web 客戶端,甚至可以使用命令行(去充當(dāng)這個(gè)客戶端)。就 Elasticsearch 而言,起步很簡(jiǎn)單。對(duì)于初學(xué)者來(lái)說(shuō),它預(yù)設(shè)了一些適當(dāng)?shù)哪J(rèn)值,并隱藏了復(fù)雜的搜索理論知識(shí)。 它 開(kāi)箱即用。只需最少的理解,你很快就能具有生產(chǎn)力。隨著你知識(shí)的積累,你可以利用 Elasticsearch 更多的高級(jí)特性,它的整個(gè)引擎是可配置并且靈活的。 從眾多高級(jí)特性中,挑選恰當(dāng)去修飾的 Elasticsearch,使它能解決你本地遇到的問(wèn)題。你可以免費(fèi)下載,使用,修改 Elasticsearch。它在 Apache 2 license 協(xié)議下發(fā)布的, 這是眾多靈活的開(kāi)源協(xié)議之一。Elasticsearch 的源碼被托管在 Github 上 github.com/elastic/elasticsearch。 如果你想加入我們這個(gè)令人驚奇的 contributors 社區(qū),看這里 Contributing to Elasticsearch。如果你對(duì) Elasticsearch 有任何相關(guān)的問(wèn)題,包括特定的特性(specific features)、語(yǔ)言客戶端(language clients)、插件(plugins),可以在這里 discuss.elastic.co 加入討論。"
        },
        "_ingest": {
          "timestamp": "2024-07-16T06:34:56.003299351Z"
        }
      }
    }
  ]
}

text embedding processor

text embedding processor簡(jiǎn)化了寫(xiě)入的embedding處理,text_embedding和sparse_embedding類型均可以使用該processor。

text embedding processor支持nested類型的文檔直接進(jìn)行embedding,不過(guò)受限于模型一次處理的embedding chunk數(shù)量,一般一個(gè)nested文檔不能超過(guò)32個(gè)子文檔。如果超過(guò)32個(gè)子文檔,需要使用foreach processor處理。

說(shuō)明

關(guān)于foreach processor的更多信息,請(qǐng)參見(jiàn)foreach-processor

創(chuàng)建text embedding processor

PUT _ingest/pipeline/<pipeline_name>
{
  "description": "<description>",
  "processors": [
    {
      "text_embedding": {
        "model_id": "<model_id>",
        "input_output": [
          {
            "input_type" : "<input_type>",
            "input_field": "<input_field>",
            "output_field": "<output_field>"
          }
        ]
      }
    }
  ]
}

參數(shù)說(shuō)明:

參數(shù)

說(shuō)明

pipeline_name

自定義pipeline的名稱。

description

pipeline的說(shuō)明。

model_id

定義的文檔切片服務(wù)對(duì)應(yīng)的model_id。

input_type

輸入字段的類型。可選值包括:

  • basic(默認(rèn)):對(duì)單個(gè)字段進(jìn)行embedding,得到對(duì)應(yīng)的embedding結(jié)果,basic是一對(duì)一的embedding。

  • array:對(duì)一個(gè)數(shù)組字段進(jìn)行embedding,生成一組embedding結(jié)果。

  • nested:支持nested的embedding,輸入一個(gè)nested字段的子字段,輸出可以設(shè)置為nested字段中添加一個(gè)embedding字段。

input_field

輸入的字段名。

output_field

輸出結(jié)果的字段名。

調(diào)用示例:

PUT _ingest/pipeline/os-embedding-pipeline
{
  "description": "This is an example of embedding fields",
  "processors": [
    {
      "text_embedding": {
        "model_id": "os-embeddings",
        "input_output": [
          {
            "input_field": "content",
            "output_field": "content_embedding"
          }
        ]
      }
    }
  ]
}

使用_simulate測(cè)試pipeline的功能

POST _ingest/pipeline/os-embedding-pipeline/_simulate
{
  "docs": [
    {
      "_index": "testindex",
      "_id": "1",
      "_source":{
        "content": "elasticsearch產(chǎn)品文檔"
      }
    }
    ]
}

正確的返回結(jié)果:

{
  "docs": [
    {
      "doc": {
        "_index": "testindex",
        "_version": "-3",
        "_id": "1",
        "_source": {
          "content_embedding": [
            0.01568979024887085,
            0.06507347524166107,
            ...
          ],
          "model_id": "os-embeddings",
          "content": "elasticsearch產(chǎn)品文檔"
        },
        "_ingest": {
          "timestamp": "2024-07-16T06:36:06.803526132Z"
        }
      }
    }
  ]
}