最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

LangChain你必須知道的知識點

2023-07-04 17:14 作者:AI研習所  | 我要投稿

眾所周知 OpenAI 的 API 無法聯(lián)網(wǎng),所以大家如果想通過它的API實現(xiàn)聯(lián)網(wǎng)搜索并給出回答、總結(jié) PDF 文檔、基于某個 Youtube 視頻進行問答等等的功能肯定是無法實現(xiàn)的。所以,我們來介紹一個非常強大的第三方開源庫:LangChain 。

LangChain 是一個用于開發(fā)由語言模型驅(qū)動的應用程序的框架。他主要擁有 2 個能力:可以將 LLM 模型與外部數(shù)據(jù)源進行連接&允許與 LLM 模型進行交互。這個庫目前非?;钴S,每天都在迭代,已經(jīng)有 22k 的 star,更新速度飛快。

基礎功能

  • LLM 調(diào)用
  • 支持多種模型接口,比如 OpenAI、Hugging Face、AzureOpenAI ...
  • Fake LLM,用于測試
  • 緩存的支持,比如 in-mem(內(nèi)存)、SQLite、Redis、SQL
  • 用量記錄
  • 支持流模式(類似打字效果)

Prompt管理,支持各種自定義模板

  • 文檔分割器
  • 向量化
  • 對接向量存儲與搜索,比如 Chroma、Pinecone、Qdrand

Chains

  • LLMChain
  • 各種工具Chain
  • LangChainHub

必知概念Loader 加載器

顧名思義,這個就是從指定源進行加載數(shù)據(jù)的。比如:文件夾 DirectoryLoader、Azure 文件存儲AzureBlobStorageContainerLoader、CSV文件 CSVLoader、印象筆記 EverNoteLoader、Google網(wǎng)盤 GoogleDriveLoader、任意的網(wǎng)頁 ...

Document 文檔當使用loader加載器讀取到數(shù)據(jù)源后,數(shù)據(jù)源需要轉(zhuǎn)換成 Document 對象后,后續(xù)才能進行使用。

Text Spltters 文本分割為什么需要文本分割?因為我們每次不管是把文本當作 prompt 發(fā)給 openai api ,還是還是使用 openai api embedding 功能都是有字符限制的。比如我們將一份300頁的 pdf 發(fā)給 openai api,讓它進行總結(jié),它肯定會報錯“超過最大 Token” ,所以這里就需要使用文本分割器去分割我們 loader 進來的 Document。

Vectorstores 向量數(shù)據(jù)庫因為數(shù)據(jù)相關性搜索其實是向量運算。所以不管我們是使用 openai api embedding 功能還是直接通過向量數(shù)據(jù)庫直接查詢,都需要將我們的加載進來的數(shù)據(jù) Document 進行向量化,才能進行向量運算搜索。轉(zhuǎn)換成向量也很簡單,只需要我們把數(shù)據(jù)存儲到對應的向量數(shù)據(jù)庫中即可完成向量的轉(zhuǎn)換。

Chain 鏈我們可以把 Chain 理解為任務。一個 Chain 就是一個任務,當然也可以像鏈條一樣,一個一個的執(zhí)行多個鏈。

Agent 代理簡單的理解就是它可以動態(tài)的幫我們選擇和調(diào)用chain或者已有的工具。執(zhí)行過程可以參考下面這張圖:


Embedding用于衡量文本的相關性。這個也是 OpenAI API 能實現(xiàn)構(gòu)建自己知識庫的關鍵所在。他相比 fine-tuning 最大的優(yōu)勢就是,不用進行訓練并且可以實時添加新的內(nèi)容,而不用加一次新的內(nèi)容就訓練一次,并且各方面成本要比 fine-tuning 低很多。

實戰(zhàn)

通過上面的必備概念大家應該對 LangChain 有了一定的了解,但是可能還有些懵。接下來我們通過一個實戰(zhàn)case幫助大家理解上述內(nèi)容。

PS:因為我們 OpenAI API 進階,所以我們后面的范例使用的 LLM 都是以Open AI 為例,后面大家可以根據(jù)自己任務的需要換成自己需要的 LLM 模型即可。

完成一次問答在這里,我們先用一個最簡單的案例幫助大家進行理解:“用 LangChain 加載 OpenAI 的模型,并且完成一次問答?!痹陂_始之前,我們需要先設置我們的 openai 的 key,這個 key 可以在用戶管理里面創(chuàng)建,這里就不細說了。import osos.environ["OPENAI_API_KEY"] = '你的api key'

然后,我們進行導入和執(zhí)行

from langchain.llms import OpenAIllm = OpenAI(model_name="text-davinci-003",max_tokens=1024)llm("怎么評價人工智能")

這時,我們就可以看到他給我們的返回結(jié)果了。

總結(jié)本文章只是對 LangChain做了一個初級講解,后續(xù)還會給大家出更多實戰(zhàn)case。希望大家通過這篇文章能夠有所收獲,同時能結(jié)合 LangChain 開發(fā)出更有創(chuàng)意的產(chǎn)品。

LangChain你必須知道的知識點的評論 (共 條)

分享到微博請遵守國家法律
泾川县| 长葛市| 通州市| 乌审旗| 年辖:市辖区| 黄山市| 阜阳市| 定西市| 中西区| 新宁县| 冕宁县| 长沙县| 安康市| 新龙县| 西林县| 屯门区| 弥勒县| 吉首市| 视频| 故城县| 象山县| 宜阳县| 泰来县| 新昌县| 泗阳县| 班戈县| 西昌市| 九江县| 德清县| 尚志市| 漳州市| 珲春市| 林西县| 佳木斯市| 新兴县| 泾源县| 平度市| 兴义市| 辽源市| 会理县| 科技|