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

用 LangChain 構(gòu)建基于資料庫(kù)的問答機(jī)器人(一):基礎(chǔ)用法

這篇具有很好參考價(jià)值的文章主要介紹了用 LangChain 構(gòu)建基于資料庫(kù)的問答機(jī)器人(一):基礎(chǔ)用法。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

大家好,我是學(xué)生大使 Jambo。在上一個(gè)系列中,我們介紹了關(guān)于 Azure OpenAI API 的使用。如果你有跟著教程使用過,那么你應(yīng)該能感覺到僅僅是調(diào)用 API 是非常簡(jiǎn)單的,繁瑣的是如何將 API 與你的應(yīng)用結(jié)合起來。接下來,我將會(huì)介紹一個(gè)名為 LangChain 的庫(kù),它可以幫助你更方便地將 Azure OpenAI 結(jié)合到你的應(yīng)用中。

我也會(huì)將這個(gè)做成一個(gè)系列,最終目標(biāo)是實(shí)現(xiàn)一個(gè)可以根據(jù)資料庫(kù)回答問題的聊天機(jī)器人。

為什么要用 LangChain

許多開發(fā)者希望將像 GPT 這樣的大語(yǔ)言模型整合到他們的應(yīng)用中。而這些應(yīng)用不僅僅是簡(jiǎn)單地將用戶的輸入傳遞給 GPT,然后將 GPT 的輸出返回給用戶。

這些應(yīng)用可能需要根據(jù)特定的資料源來回答問題,因此需要考慮如何存儲(chǔ)和查找資料?;蛘咝枰碛脩舻妮斎?,保存以前的消息記錄并提取重點(diǎn)。如果你希望模型按照特定的格式輸出文本,那么你需要在 prompt(提示)中詳細(xì)描述格式,甚至需要提供示例。這些 prompt 通常是應(yīng)用程序后臺(tái)進(jìn)行管理,用戶往往不會(huì)注意到它們的存在。對(duì)于一些復(fù)雜的應(yīng)用程序,一個(gè)問題可能需要多個(gè)執(zhí)行動(dòng)作。例如聲稱可以自動(dòng)完成指定項(xiàng)目的 AutoGPT,實(shí)際上是根據(jù)目標(biāo)和作者編寫的 prompt 生成所需的動(dòng)作并以JSON格式輸出,然后程序再執(zhí)行相應(yīng)的動(dòng)作。

LangChain 基本上已經(jīng)將這些你可能會(huì)使用到的功能打包好了,只需要規(guī)劃程式邏輯并調(diào)用函數(shù)即可。此外,LangChain 的這些功能與具體使用的模型API無關(guān),不必為不同的語(yǔ)言模型編寫不同的代碼,只需更換 API 即可。

基本用法

在使用 LangChain 之前,建議先了解 Azure OpenAI API 的調(diào)用,否則即使是使用 LangChain,參數(shù)和用法也可能不容易理解。具體可以參考我之前的系列教程:用 Python 調(diào)用 Azure OpenAi API

LangChain 將由文字續(xù)寫(補(bǔ)全)的語(yǔ)言模型稱為 llm ,擁有聊天界面(輸入為聊天記錄)的語(yǔ)言模型稱為聊天模型。接下來我們也會(huì)用 Azure OpenAI API 來進(jìn)行示例。

安裝

因?yàn)?LangChain 在調(diào)用 OpenAI 的 API 時(shí),實(shí)際上會(huì)使用 OpenAI 提供的 SDK,因此我們還需要一并安裝 openai

pip install langchain
pip install openai

生成文本

實(shí)例化模型對(duì)象

在使用 API 之前,我們需要先設(shè)置環(huán)境變量。如果你使用的是 OpenAI 原生的接口,就只需要設(shè)置 api_key;如果是 Azure OpenAI API 則還需要設(shè)置 api_versionapi_base ,具體的值與使用 openai 庫(kù)調(diào)用 Azure API 一樣,可以參考我之前的教程:用 Python 調(diào)用 Azure OpenAi API

import os
os.environ["OPENAI_API_KEY"] = ""
os.environ["OPENAI_API_VERSION"] = ""
os.environ["OPENAI_API_BASE"] = ""

當(dāng)然,這些值也可以在 terminal 中使用 export (在 Linux 下)命令設(shè)置,或者在 .env 文件中設(shè)置,然后用 python-dotenv 庫(kù)導(dǎo)入進(jìn)環(huán)境變量。

LangChain 的大語(yǔ)言模型(llm)的類都封裝在 llms 中,我們需要從中導(dǎo)入 AzureOpenAI 類,并設(shè)置相關(guān)的參數(shù)。其中指定模型的參數(shù)名是 deployment_name,剩下的參數(shù)就是 OpenAI API 的參數(shù)了。事實(shí)上,上面在環(huán)境變量中設(shè)置的 API 信息也可以在這里作為參數(shù)傳入,但考慮到便利性和安全性,仍建議在環(huán)境變量中設(shè)置 API 信息。

要注意的是,prompt 和 stop 參數(shù)并不是在這里傳入的(stop 可以但是會(huì)報(bào)警告),而是在下面生成文本時(shí)傳入。

from langchain.llms import AzureOpenAI
llm = AzureOpenAI(
    deployment_name="text-davinci-003",
    temperature=0.9,
    max_tokens=265,
)

另外,如果你使用的是原生 OpenAI API ,那么導(dǎo)入的類應(yīng)該是 OpenAI ,并且指定模型的參數(shù)名是 model_name,例如:

from langchain.llms import AzureOpenAI
llm = AzureOpenAI(model_name="text-davinci-003")
序列化 LLM 配置

假如你需要對(duì)多個(gè)場(chǎng)景有不同的 llm 配置,那么將配置寫在代碼中就會(huì)不那么簡(jiǎn)單靈活。在這種情況下,將 llm 配置保存在文件中顯然會(huì)更方便。

from langchain.llms import OpenAI
from langchain.llms.loading import load_llm

LangChain 支持將 llm 配置以 json 或 yaml 的格式讀取或保存。假設(shè)我現(xiàn)在有一個(gè) llm.json 文件,內(nèi)容如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-502849.html

{
   
    "model_name": "text-davinci-003",
    "temperature": 0.7,
    "max_tokens": 256,
    "top_p": 1.0,
    "frequency_penalty": 0.0,
    "presence_penalty": 0.0,
    "n": 1,
    "be

到了這里,關(guān)于用 LangChain 構(gòu)建基于資料庫(kù)的問答機(jī)器人(一):基礎(chǔ)用法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(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)文章

  • Linux Ubuntu環(huán)境部署SVN服務(wù)并結(jié)合內(nèi)網(wǎng)穿透實(shí)現(xiàn)公網(wǎng)訪問內(nèi)網(wǎng)資料庫(kù)

    Linux Ubuntu環(huán)境部署SVN服務(wù)并結(jié)合內(nèi)網(wǎng)穿透實(shí)現(xiàn)公網(wǎng)訪問內(nèi)網(wǎng)資料庫(kù)

    由于文檔資料越來越多,將所有資料都存放在自己的電腦上容易混淆,并且也不利于分享。這種情況下,考慮將資料上傳SVN統(tǒng)一管理,這樣一來其他人也能很方便的查略各種資料。 當(dāng)SVN安裝在局域網(wǎng)內(nèi)的話,想要遠(yuǎn)程訪問資料庫(kù)或者代碼將會(huì)受到限制,為了能從公共網(wǎng)絡(luò)訪問內(nèi)

    2024年02月03日
    瀏覽(94)
  • 使用LangChain構(gòu)建問答聊天機(jī)器人案例實(shí)戰(zhàn)(一)

    使用LangChain構(gòu)建問答聊天機(jī)器人案例實(shí)戰(zhàn)(一)

    使用LangChain構(gòu)建問答聊天機(jī)器人案例實(shí)戰(zhàn) 現(xiàn)場(chǎng)演示GPT-4代碼生成 本節(jié)我們會(huì)通過一個(gè)綜合案例,跟大家講解LangChain,這個(gè)案例產(chǎn)生的代碼會(huì)直接在瀏覽器中運(yùn)行,并且會(huì)輸出結(jié)果,如圖14-1所示,用戶問:“What was the highest close price of IBM?”(“IBM的最高收盤價(jià)是多少?”)

    2024年02月15日
    瀏覽(111)
  • 使用LangChain構(gòu)建問答聊天機(jī)器人案例實(shí)戰(zhàn)(三)

    使用LangChain構(gòu)建問答聊天機(jī)器人案例實(shí)戰(zhàn) LangChain開發(fā)全流程剖析 接下來,我們?cè)倩氐健癵et_prompt()”方法。在這個(gè)方法中,有系統(tǒng)提示詞(system prompts)和用戶提示詞(user prompts),這是從相應(yīng)的文件中讀取的,從“system.prompt”文件中讀取系統(tǒng)提示詞(system_template),從“u

    2024年02月14日
    瀏覽(124)
  • LangChain入門(四)-構(gòu)建本地知識(shí)庫(kù)問答機(jī)器人

    LangChain入門(四)-構(gòu)建本地知識(shí)庫(kù)問答機(jī)器人

    在這個(gè)例子中,我們會(huì)介紹如何從我們本地讀取多個(gè)文檔構(gòu)建知識(shí)庫(kù),并且使用 Openai API 在知識(shí)庫(kù)中進(jìn)行搜索并給出答案。 目錄 一、安裝向量數(shù)據(jù)庫(kù)chromadb和tiktoken 二、使用案例 三、embeddings持久化 四、在線的向量數(shù)據(jù)庫(kù)Pinecone 一、安裝向量數(shù)據(jù)庫(kù)chromadb和tiktoken ?? 其中h

    2024年02月05日
    瀏覽(102)
  • LangChain入門(五)-使用GPT3.5模型構(gòu)建油管頻道問答機(jī)器人

    目錄 一、安裝依賴 二、使用示例? 一、安裝依賴 二、使用示例? 結(jié)尾、掃一掃下方微信名片即可+博主徽信哦? ↓↓ ↓↓ ↓↓ ↓↓ ↓↓ ↓↓ ↓↓ ↓↓? ↓↓↓

    2024年02月11日
    瀏覽(297)
  • LLM本地知識(shí)庫(kù)問答系統(tǒng)(一):使用LangChain和LlamaIndex從零構(gòu)建PDF聊天機(jī)器人指南

    LLM本地知識(shí)庫(kù)問答系統(tǒng)(一):使用LangChain和LlamaIndex從零構(gòu)建PDF聊天機(jī)器人指南

    ? ? ? ?隨著大型語(yǔ)言模型(LLM)(如ChatGPT和GPT-4)的興起,現(xiàn)在比以往任何時(shí)候都更容易構(gòu)建比普通熊更智能的智能聊天機(jī)器人,并且可以瀏覽堆積如山的文檔,為您的輸入提供準(zhǔn)確的響應(yīng)。 ? ? ? ?在本系列中,我們將探索如何使用pre-trained的LLM創(chuàng)建一個(gè)聊天機(jī)器人,該聊

    2024年02月11日
    瀏覽(100)
  • 使用PAI-DSW搭建基于LangChain的檢索知識(shí)庫(kù)問答機(jī)器人

    使用PAI-DSW搭建基于LangChain的檢索知識(shí)庫(kù)問答機(jī)器人

    教程簡(jiǎn)述 在本教程中,您將學(xué)習(xí)如何在阿里云交互式建模(PAI-DSW)中,基于LangChain的檢索知識(shí)庫(kù)實(shí)現(xiàn)知識(shí)問答。旨在建立一套對(duì)中文場(chǎng)景與開源模型支持友好、可離線運(yùn)行的知識(shí)庫(kù)問答解決方案。 LangChain是一個(gè)開源的框架,可以讓AI開發(fā)人員將像GPT-4這樣的大語(yǔ)言模型(LL

    2024年02月01日
    瀏覽(21)
  • 【LangChain學(xué)習(xí)】基于PDF文檔構(gòu)建問答知識(shí)庫(kù)(二)創(chuàng)建項(xiàng)目

    【LangChain學(xué)習(xí)】基于PDF文檔構(gòu)建問答知識(shí)庫(kù)(二)創(chuàng)建項(xiàng)目

    這里我們使用到 fastapi 作為項(xiàng)目的web框架,它是一個(gè)快速(高性能)的 web 框架,上手簡(jiǎn)單。 我們?cè)贗DE中,左側(cè)選擇 FastAPI ,右側(cè)選擇創(chuàng)建一個(gè)新的虛擬環(huán)境。 ?創(chuàng)建成功,會(huì)有一個(gè)main.py,這是項(xiàng)目的入口文件。 ?我們運(yùn)行一下看看有沒有報(bào)錯(cuò),沒問題的話,那么我們整合

    2024年02月13日
    瀏覽(103)
  • 【LangChain學(xué)習(xí)】基于PDF文檔構(gòu)建問答知識(shí)庫(kù)(一)前期準(zhǔn)備

    這系列主要介紹如何使用LangChain大模型,結(jié)合ChatGPT3.5,基于PDF文檔構(gòu)建專屬的問答知識(shí)庫(kù)。 LangChain 和 OpenAI 本身可支持 Nodejs 和 Python 兩個(gè)版本,筆者后續(xù)的介紹主要用到Python版本,如果有需要Nodejs版本的同學(xué),也可以給我留言,因?yàn)镹odejs版本我也實(shí)現(xiàn)了。 Python 版本為 ≥

    2024年02月13日
    瀏覽(102)
  • 【LangChain學(xué)習(xí)】基于PDF文檔構(gòu)建問答知識(shí)庫(kù)(三)實(shí)戰(zhàn)整合 LangChain、OpenAI、FAISS等

    【LangChain學(xué)習(xí)】基于PDF文檔構(gòu)建問答知識(shí)庫(kù)(三)實(shí)戰(zhàn)整合 LangChain、OpenAI、FAISS等

    接下來,我們開始在web框架上整合 LangChain、OpenAI、FAISS等。 因?yàn)轫?xiàng)目是基于PDF文檔的,所以需要一些操作PDF的庫(kù),我們這邊使用的是PyPDF2 傳入 pdf 文件路徑,返回 pdf 文檔的文本內(nèi)容。 首先我們需要將第一步拿到的本文內(nèi)容拆分,我們使用的是?RecursiveCharacterTextSplitter ,默認(rèn)

    2024年02月13日
    瀏覽(97)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包