国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Elasticsearch:聊天機(jī)器人教程(一)

這篇具有很好參考價(jià)值的文章主要介紹了Elasticsearch:聊天機(jī)器人教程(一)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

在本教程中,你將構(gòu)建一個(gè)大型語(yǔ)言模型 (LLM) 聊天機(jī)器人,該機(jī)器人使用稱為檢索增強(qiáng)生成 (RAG) 的模式。

Elasticsearch:聊天機(jī)器人教程(一),Elasticsearch,AI,Elastic,機(jī)器人,語(yǔ)言模型,langchain,人工智能,elasticsearch,ai,搜索引擎

使用 RAG 構(gòu)建的聊天機(jī)器人可以克服 ChatGPT 等通用會(huì)話模型所具有的一些限制。 特別是,他們能夠討論和回答以下問(wèn)題:

  • 你的組織私有的信息
  • 不屬于訓(xùn)練數(shù)據(jù)集的事件,或者 LLM 完成訓(xùn)練后發(fā)生的事件

作為一個(gè)額外的好處,RAG 可以幫助 LLM 以事實(shí)為 “基礎(chǔ)”,使他們不太可能做出回應(yīng)或 “產(chǎn)生幻覺(jué)”。

實(shí)現(xiàn)這一目標(biāo)的秘訣是使用兩步過(guò)程從 LLM 獲得答案:

  • 首先在檢索階段,針對(duì)用戶的查詢搜索一個(gè)或多個(gè)數(shù)據(jù)源。 檢索在此搜索中找到的相關(guān)文檔。 為此,使用 Elasticsearch 索引是一個(gè)很好的選擇,使你能夠在關(guān)鍵字、密集和稀疏向量搜索方法,甚至它們的混合組合之間進(jìn)行選擇。
  • 然后在生成階段,用戶的提示被擴(kuò)展為包括第一階段檢索到的文檔,并添加了對(duì) LLM 的指令,以在檢索到的信息中找到用戶問(wèn)題的答案。 擴(kuò)展提示(包括問(wèn)題的添加上下文)將代替原始查詢發(fā)送到 LLM。

教程結(jié)構(gòu)

本教程分為兩個(gè)主要部分。

  1. 在第一部分中,您將學(xué)習(xí)如何運(yùn)行 Chatbot RAG 應(yīng)用程序示例,這是一個(gè)具有 Python 后端和 React 前端的完整應(yīng)用程序。
  2. 一旦你啟動(dòng)并運(yùn)行了示例應(yīng)用程序,本教程的第二部分將解釋 RAG 實(shí)現(xiàn)的不同組件,以便你可以根據(jù)自己的需要調(diào)整示例代碼。

要求

要學(xué)習(xí)本教程,你需要安裝以下組件:

?1)Elasticsearch 及 Kibana

有關(guān)安裝說(shuō)明,請(qǐng)參閱如下的文章:

  • 如何在 Linux,MacOS 及 Windows 上進(jìn)行安裝 Elasticsearch

  • Kibana:如何在 Linux,MacOS 及 Windows 上安裝 Elastic 棧中的 Kibana

在安裝的時(shí)候,請(qǐng)選擇 Elastic Stack 8.x?進(jìn)行安裝。在安裝的時(shí)候,我們可以看到如下的安裝信息:

Elasticsearch:聊天機(jī)器人教程(一),Elasticsearch,AI,Elastic,機(jī)器人,語(yǔ)言模型,langchain,人工智能,elasticsearch,ai,搜索引擎?

在下面的展示中,我將使用 Elastic Stack 8.11 來(lái)進(jìn)行展示。


2)OpenAI 的 API 密鑰。 實(shí)際上,你可以使用你喜歡的任何其他 LLM,只要它受到 Langchain 項(xiàng)目的支持即可。

3)Python 解釋器。 確保它是最新版本,例如 Python 3.8 或更高版本。

4)Node.js 和 Yarn。

本教程重點(diǎn)介紹 RAG 主題。 為了能夠修改示例應(yīng)用程序,你將需要以下技術(shù)的基本知識(shí):

  • 使用 Flask 進(jìn)行 Python 后端開發(fā)。
  • 使用 React 進(jìn)行 TypeScript 前端開發(fā)。

整個(gè)項(xiàng)目的完整代碼在如下地址可以進(jìn)行下載:

git clone https://github.com/liu-xiao-guo/elasticsearch-labs
cd elasticsearch-labs/example-apps/chatbot-rag-app

聊天機(jī)器人示例位于 example-apps/chatbot-rag-app 子目錄中。

$ pwd
/Users/liuxg/python/elasticsearch-labs
$ ls
CONTRIBUTING.md         bin                     supporting-blog-content
LICENSE                 datasets                test
Makefile                example-apps
README.md               notebooks
$ cd example-apps
$ ls
README.md                 openai-embeddings         workplace-search
chatbot-rag-app           relevance-workbench
internal-knowledge-search search-tutorial
$ cd chatbot-rag-app/
$ ls
Dockerfile       api              data             frontend         requirements.txt
README.md        app-demo.gif     env.example      requirements.in

Python 后端

在本節(jié)中,我們將設(shè)置和配置項(xiàng)目的后端部分。

安裝 Python 依賴項(xiàng)

為了遵循 Python 最佳實(shí)踐,你現(xiàn)在將創(chuàng)建一個(gè)虛擬環(huán)境,這是專用于該項(xiàng)目的私有 Python 安裝,可以在其中安裝所有依賴項(xiàng)。 使用以下命令執(zhí)行此操作:

python3 -m venv .venv
$ pwd
/Users/liuxg/python/elasticsearch-labs/example-apps/chatbot-rag-app
$ python3 -m venv .venv

此命令在 .venv (dot-venv) 目錄中創(chuàng)建 Python 虛擬環(huán)境。 你可以將此命令中的 .venv 替換為你喜歡的任何其他名稱。 請(qǐng)注意,在某些 Python 安裝中,你可能需要使用 python 而不是 python3 來(lái)調(diào)用 Python 解釋器。

下一步是激活虛擬環(huán)境,這是使該虛擬環(huán)境成為你所在終端會(huì)話的活動(dòng) Python 環(huán)境的一種方法。如果你使用的是基于 UNIX 的操作系統(tǒng)(例如 Linux 或 macOS),請(qǐng)激活 虛擬環(huán)境如下:

source .venv/bin/activate
$ pwd
/Users/liuxg/python/elasticsearch-labs/example-apps/chatbot-rag-app
$ python3 -m venv .venv
$ source .venv/bin/activate
(.venv) $ 

如果你在 Microsoft Windows 計(jì)算機(jī)上的 WSL 環(huán)境中工作,上述激活命令也適用。 但如果你使用的是 Windows 命令提示符或 PowerShell,激活命令會(huì)有所不同:

.venv\Scripts\activate

激活虛擬環(huán)境后,命令行提示符將更改為顯示環(huán)境名稱:

(.venv) $ _

配置 Python 環(huán)境的最后一步是安裝入門應(yīng)用程序所需的一些包。 確保上一步中已激活虛擬環(huán)境,然后運(yùn)行以下命令安裝這些依賴項(xiàng):

pip install -r requirements.txt

?Elasticsearch:聊天機(jī)器人教程(一),Elasticsearch,AI,Elastic,機(jī)器人,語(yǔ)言模型,langchain,人工智能,elasticsearch,ai,搜索引擎?

編寫配置文件

在上一節(jié)中下載的代碼的主目錄中有一個(gè)名為 env.example 的文件。 該文件包含應(yīng)用程序支持的所有配置變量。

復(fù)制該文件,并將其命名為 .env:

cp env.example .env
(.venv) $ ls -al
total 920
drwxr-xr-x  14 liuxg  staff     448 Jan 15 09:25 .
drwxr-xr-x   9 liuxg  staff     288 Jan 15 09:21 ..
-rw-r--r--   1 liuxg  staff      55 Jan 15 09:21 .flaskenv
-rw-r--r--   1 liuxg  staff      82 Jan 15 09:21 .gitignore
drwxr-xr-x   6 liuxg  staff     192 Jan 15 09:25 .venv
-rw-r--r--   1 liuxg  staff     807 Jan 15 09:21 Dockerfile
-rw-r--r--   1 liuxg  staff    6085 Jan 15 09:21 README.md
drwxr-xr-x   7 liuxg  staff     224 Jan 15 09:21 api
-rw-r--r--   1 liuxg  staff  430277 Jan 15 09:21 app-demo.gif
drwxr-xr-x   4 liuxg  staff     128 Jan 15 09:21 data
-rw-r--r--   1 liuxg  staff     860 Jan 15 09:21 env.example
drwxr-xr-x   9 liuxg  staff     288 Jan 15 09:21 frontend
-rw-r--r--   1 liuxg  staff     315 Jan 15 09:21 requirements.in
-rw-r--r--   1 liuxg  staff    5259 Jan 15 09:21 requirements.txt
(.venv) $ cp env.example .env
(.venv) $ ls .env
.env

如果您在 Windows 上學(xué)習(xí)本教程,請(qǐng)?jiān)谏厦娴拿钪惺褂?copy 而不是 cp。

在你喜歡的文本編輯器中打開 .env 以查看應(yīng)用程序配置,并查看以下小節(jié)以獲取有關(guān)如何配置應(yīng)用程序的指導(dǎo)。

Elasticsearch 設(shè)置

我們?cè)?.env 中設(shè)置如下的變量:

.env

ELASTICSEARCH_URL=https://elastic:yarOjyX5CLqTsKVE3v*d@192.168.0.3:9200
ES_INDEX=workplace-app-docs
ES_INDEX_CHAT_HISTORY=workplace-app-docs-chat-history
LLM_TYPE=openai
OPENAI_API_KEY=YourOpenAiKey

?Elasticsearch:聊天機(jī)器人教程(一),Elasticsearch,AI,Elastic,機(jī)器人,語(yǔ)言模型,langchain,人工智能,elasticsearch,ai,搜索引擎?

在上面,你必須根據(jù)自己的 Elasticsearch 安裝修改上面的?ELASTICSEARCH_URL 值。你還需要修改上面的?OPENAI_API_KEY 值。你需要在 OpenAI 的網(wǎng)站中申請(qǐng)開發(fā)者 key。你可以在地址?https://platform.openai.com/api-keys?進(jìn)行申請(qǐng)。

為了能夠讓 Python 連接到 Elasticsearch,我們必須把 Elasticsearch 的證書拷貝到當(dāng)前的目錄下:

(.venv) $ pwd
/Users/liuxg/python/elasticsearch-labs/example-apps/chatbot-rag-app/api
(.venv) $ cp ~/elastic/elasticsearch-8.11.0/config/certs/http_ca.crt .
(.venv) $ ls http_ca.crt 
http_ca.crt

另外,在 github 上的代碼是為在 docker 的環(huán)境下運(yùn)行二準(zhǔn)備的,我們必須修改其中的一個(gè)部分以使得它正常運(yùn)行:

api/elasticsearch_client.py

if ELASTICSEARCH_URL:
    elasticsearch_client = Elasticsearch(
        hosts=[ELASTICSEARCH_URL], 
        ca_certs = ./http_ca.crt, 
        verify_certs = True
    )

data/index_data.py

if ELASTICSEARCH_URL:
    elasticsearch_client = Elasticsearch(
        hosts=[ELASTICSEARCH_URL], 
        ca_certs = "./http_ca.crt", 
        verify_certs = True
    )

寫入示例數(shù)據(jù)集

該應(yīng)用程序附帶一個(gè)示例數(shù)據(jù)集,存儲(chǔ)在 data/data.json 文件中。 請(qǐng)隨意在文本編輯器中打開此文件,以熟悉其中包含的文檔。

使用以下命令將數(shù)據(jù)集導(dǎo)入應(yīng)用程序:

flask create-index
(.venv) $ pwd
/Users/liuxg/python/elasticsearch-labs/example-apps/chatbot-rag-app
(.venv) $ flask create-index
".elser_model_2" model is available
Loading data from $/Users/liuxg/python/elasticsearch-labs/example-apps/chatbot-rag-app/api/../data/data.json
Loaded 15 documents
Split 15 documents into 26 chunks
Creating Elasticsearch sparse vector store in Elastic Cloud: 

等上面的命令運(yùn)行完畢后,我們到 Kibana 中進(jìn)行查看:

Elasticsearch:聊天機(jī)器人教程(一),Elasticsearch,AI,Elastic,機(jī)器人,語(yǔ)言模型,langchain,人工智能,elasticsearch,ai,搜索引擎

Elasticsearch:聊天機(jī)器人教程(一),Elasticsearch,AI,Elastic,機(jī)器人,語(yǔ)言模型,langchain,人工智能,elasticsearch,ai,搜索引擎

啟動(dòng)后端

完成上述所有步驟后,你應(yīng)該能夠使用以下命令啟動(dòng) Python 后端:

flask run

Elasticsearch:聊天機(jī)器人教程(一),Elasticsearch,AI,Elastic,機(jī)器人,語(yǔ)言模型,langchain,人工智能,elasticsearch,ai,搜索引擎

保持后端運(yùn)行并打開一個(gè)新的終端會(huì)話以繼續(xù)本教程的其余部分。

React 前端

在本部分中,你將啟動(dòng)聊天機(jī)器人的前端。

安裝依賴項(xiàng)

前端位于項(xiàng)目的 frontend 子目錄中,因此請(qǐng)繼續(xù)更改為:

cd frontend
$ pwd
/Users/liuxg/python/elasticsearch-labs/example-apps/chatbot-rag-app
$ cd frontend/

運(yùn)行 yarn 命令安裝所有前端依賴項(xiàng):

yarn

Elasticsearch:聊天機(jī)器人教程(一),Elasticsearch,AI,Elastic,機(jī)器人,語(yǔ)言模型,langchain,人工智能,elasticsearch,ai,搜索引擎

運(yùn)行前端

使用以下命令啟動(dòng)前端:

yarn start

幾秒鐘后,你的瀏覽器應(yīng)該打開該應(yīng)用程序。

Elasticsearch:聊天機(jī)器人教程(一),Elasticsearch,AI,Elastic,機(jī)器人,語(yǔ)言模型,langchain,人工智能,elasticsearch,ai,搜索引擎

使用應(yīng)用程序

現(xiàn)在,你可以通過(guò)單擊 common questions 中的一個(gè)或輸入你自己的問(wèn)題來(lái)向聊天機(jī)器人詢問(wèn)任何問(wèn)題。

聊天機(jī)器人的響應(yīng)將來(lái)自導(dǎo)入的數(shù)據(jù)集,每個(gè)響應(yīng)將引用檢索到的文檔以及使用特定文檔的文檔。

Elasticsearch:聊天機(jī)器人教程(一),Elasticsearch,AI,Elastic,機(jī)器人,語(yǔ)言模型,langchain,人工智能,elasticsearch,ai,搜索引擎

一定要嘗試提出后續(xù)問(wèn)題,這些問(wèn)題應(yīng)該 “記住” 會(huì)話之前討論的內(nèi)容。

Elasticsearch:聊天機(jī)器人教程(一),Elasticsearch,AI,Elastic,機(jī)器人,語(yǔ)言模型,langchain,人工智能,elasticsearch,ai,搜索引擎

本教程的其余部分將討論該應(yīng)用程序的一些實(shí)現(xiàn)細(xì)節(jié),以便你可以根據(jù)需要進(jìn)行更改、試驗(yàn)和調(diào)整代碼。請(qǐng)關(guān)注我們的下一個(gè)部分!請(qǐng)?jiān)敿?xì)閱讀文章 “Elasticsearch:聊天機(jī)器人教程(二)”。

更多閱讀,請(qǐng)參閱 “Elasticsearch:使用 Elasticsearch 向量搜索及 RAG 來(lái)實(shí)現(xiàn) Chatbot”。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-796877.html

到了這里,關(guān)于Elasticsearch:聊天機(jī)器人教程(一)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Replika:AI智能聊天機(jī)器人

    Replika:AI智能聊天機(jī)器人

    ??????????Replika,這個(gè)名字可能有點(diǎn)拗口,但如果你知道這是復(fù)制品Replica的同音變體,你即刻能明白這個(gè)產(chǎn)品的定位了。官方Luka公司定義它是 你的 AI 朋友,默默學(xué)習(xí)你,最終成為你的復(fù)制品 。它不像現(xiàn)在市面上各大廠的AI助理一樣具備日常效率管理的功能,它是 一幅

    2023年04月23日
    瀏覽(20)
  • Elasticsearch:帶有自查詢檢索器的聊天機(jī)器人示例

    Elasticsearch:帶有自查詢檢索器的聊天機(jī)器人示例

    本工作簿演示了 Elasticsearch 的自查詢檢索器 (self-query retriever) 將問(wèn)題轉(zhuǎn)換為結(jié)構(gòu)化查詢并將結(jié)構(gòu)化查詢應(yīng)用于 Elasticsearch 索引的示例。 在開始之前,我們首先使用 langchain 將文檔分割成塊,然后使用 ElasticsearchStore.from_documents 創(chuàng)建一個(gè)向量存儲(chǔ)并將數(shù)據(jù)索引到 elasticsearch。 然

    2024年02月03日
    瀏覽(18)
  • ChatGPT 4.0:AI 聊天機(jī)器人

    ChatGPT 4.0:AI 聊天機(jī)器人

    當(dāng) ChatGPT 問(wèn)世時(shí),人們對(duì)它作為 AI 聊天機(jī)器人的自然語(yǔ)言能力印象深刻,人們感到敬畏。但是,當(dāng)備受期待的 GPT-4 大型語(yǔ)言模型問(wèn)世時(shí),它揭開了我們認(rèn)為 AI 可能實(shí)現(xiàn)的蓋子,有人稱其為 AGI(通用人工智能)的早期一瞥。 該模型的創(chuàng)建者OpenAI稱其為該公司“最先進(jìn)的系統(tǒng)

    2024年02月02日
    瀏覽(38)
  • 正在改變一切的Ai聊天機(jī)器人

    正在改變一切的Ai聊天機(jī)器人

    ChatGPT通過(guò)Al生成的內(nèi)容讓我們眼花繚亂,從一個(gè)聊天機(jī)器人轉(zhuǎn)化成推動(dòng)一個(gè)創(chuàng)新時(shí)代的技術(shù),但,也并非人人都知道,那么,你知道Chatgpt到底是什么嗎? ChatGPT自取網(wǎng)址:http://gogsu.com/ ChatGPT由 OpenAI 開發(fā),以開發(fā)文本到圖像生成器DALL-E 2而聞名,目前發(fā)布的版本有GPT-3、GPT3.

    2024年02月08日
    瀏覽(37)
  • ai聊天機(jī)器人chatgpt收費(fèi)版

    ai聊天機(jī)器人chatgpt收費(fèi)版

    ? ? AI聊天機(jī)器人的功能通常包括以下幾個(gè)方面: ? ? 自然語(yǔ)言理解。該功能可以識(shí)別并理解用戶輸入的自然語(yǔ)言,如文本、語(yǔ)音等,以便進(jìn)行后續(xù)的處理和回復(fù)。 ? ? 對(duì)話管理。該功能可以管理對(duì)話的上下文和流程,并根據(jù)用戶的輸入和意圖來(lái)產(chǎn)生相應(yīng)的回復(fù)和行為。 ?

    2024年02月03日
    瀏覽(27)
  • Elasticsearch:在 Elasticsearch 中使用 NLP 和向量搜索增強(qiáng)聊天機(jī)器人功能

    Elasticsearch:在 Elasticsearch 中使用 NLP 和向量搜索增強(qiáng)聊天機(jī)器人功能

    作者:Priscilla Parodi 會(huì)話界面已經(jīng)存在了一段時(shí)間,并且作為協(xié)助各種任務(wù)(例如客戶服務(wù)、信息檢索和任務(wù)自動(dòng)化)的一種方式而變得越來(lái)越流行。 通常通過(guò)語(yǔ)音助手或消息應(yīng)用程序訪問(wèn),這些界面模擬人類對(duì)話,以幫助用戶更有效地解決他們的查詢。 隨著技術(shù)的進(jìn)步,聊

    2024年02月07日
    瀏覽(34)
  • Elasticsearch:使用 LangChain 對(duì)話鏈和 OpenAI 的聊天機(jī)器人

    Elasticsearch:使用 LangChain 對(duì)話鏈和 OpenAI 的聊天機(jī)器人

    在此筆記本中,我們將構(gòu)建一個(gè)聊天機(jī)器人,它可以回答有關(guān)自定義數(shù)據(jù)的問(wèn)題,例如雇主的政策。 聊天機(jī)器人使用 LangChain 的 ConversationalRetrievalChain,具有以下功能: 用自然語(yǔ)言回答問(wèn)題 在 Elasticsearch 中運(yùn)行混合搜索以查找回答問(wèn)題的文檔 使用 OpenAI LLM 提取并總結(jié)答案 保

    2024年02月03日
    瀏覽(19)
  • Coze:開啟AI聊天機(jī)器人的全新篇章

    Coze:開啟AI聊天機(jī)器人的全新篇章

    在上篇文章第一個(gè) AI 應(yīng)用中寫到我通過(guò) Coze 平臺(tái)開發(fā)了第一個(gè) AI 應(yīng)用,其實(shí)也沒(méi)什么特別的,就一聊天機(jī)器人。我選擇發(fā)布在 Discord,所以平常是這樣使用的: 看上去和在瀏覽器中使用 ChatGPT 是一樣的,那為啥不直接使用瀏覽器呢?不用安裝 App,也不用費(fèi)勁折騰。我也有同

    2024年02月19日
    瀏覽(20)
  • 【Ai篇】10 款A(yù)I聊天機(jī)器人\AI繪畫免費(fèi)使用

    【Ai篇】10 款A(yù)I聊天機(jī)器人\AI繪畫免費(fèi)使用

    【Ai篇】10 款A(yù)I聊天機(jī)器人\\\\AI繪畫免費(fèi)使用 1、GPT機(jī)器人 GPT機(jī)器人是一款免費(fèi)的AI聊天機(jī)器人和AI繪畫軟件,AI聊天機(jī)器人支持GPT-4,而且支持AI繪畫,可通過(guò)文本描述進(jìn)行AI繪畫創(chuàng)作,軟件免費(fèi)開放使用,無(wú)需注冊(cè)登錄,目前支持安卓,非常不錯(cuò),感興趣的同學(xué)可以下載體驗(yàn)。

    2024年02月03日
    瀏覽(30)
  • AI聊天-如何將消息發(fā)送給機(jī)器人 第4集

    AI聊天-如何將消息發(fā)送給機(jī)器人 第4集

    上一篇我們講解了如何讓我們的消息發(fā)送框懸浮在固定位置,本編講為大家講解如何講消息發(fā)送給機(jī)器人,這里需要用到http請(qǐng)求,后端需要提供對(duì)應(yīng)的接口 1、服務(wù)端代碼已為大家準(zhǔn)備好,請(qǐng)參考springboot的使用技巧 2、測(cè)試頁(yè)面源碼,請(qǐng)參考從零開始搭建AI聊天 1、集成 sse客戶端

    2024年01月16日
    瀏覽(32)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包