使用 LangChain 開(kāi)發(fā) LLM 應(yīng)用時(shí),需要機(jī)器進(jìn)行 GLM 部署,好多同學(xué)第一步就被勸退了,那么如何繞過(guò)這個(gè)步驟先學(xué)習(xí) LLM 模型的應(yīng)用,對(duì) Langchain 進(jìn)行快速上手?本片講解 3 個(gè)把 LangChain 跑起來(lái)的方法,如有錯(cuò)誤歡迎糾正。
基礎(chǔ)功能
LLM 調(diào)用
支持多種模型接口,比如 OpenAI、HuggingFace、AzureOpenAI …
Fake LLM,用于測(cè)試
緩存的支持,比如 in-mem(內(nèi)存)、SQLite、Redis、SQL
用量記錄
支持流模式(就是一個(gè)字一個(gè)字的返回,類似打字效果)
Prompt 管理,支持各種自定義模板 擁有大量的文檔加載器,比如 Email、Markdown、PDF、Youtube … 對(duì)索引的支持
文檔分割器
向量化
對(duì)接向量存儲(chǔ)與搜索,比如 Chroma、Pinecone、Qdrand
Chains
LLMChain
各種工具 Chain
LangChainHub
測(cè)試 Langchain 工程的 3 個(gè)方法:
1 使用 Langchian 提供的 FakeListLLM 為了節(jié)約時(shí)間,直接上代碼
import os from decouple import config from langchain.agents import initialize_agent from langchain.agents import AgentType from langchain.agents import load_tools
這里 mock 下 ChatGPT, 使用 mockLLm
#from langchain.llms import OpenAI
from langchain.llms.fake import FakeListLLM
os.environ["OPENAI_API_KEY"] = config('OPENAI_API_KEY')
REPL 是 “Read–Eval–Print Loop”(讀取 - 求值 - 打印 - 循環(huán))的縮寫,它是一種簡(jiǎn)單的、交互式的編程環(huán)境。
在 REPL 環(huán)境中,用戶可以輸入一條或多條編程語(yǔ)句,系統(tǒng)會(huì)立即執(zhí)行這些語(yǔ)句并輸出結(jié)果。這種方式非常適合進(jìn)行快速的代碼試驗(yàn)和調(diào)試。
tools = load_tools(["python_repl"]) responses=[ "Action: Python REPL Action Input: chatGpt原理", "Final Answer: mock答案" ] llm = FakeListLLM(responses=responses) agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True) agent.run("chatGpt原理2")2 使用 Langchian 提供的 HumanInputLLM,訪問(wèn)維基百科查詢

from langchain.llms.human import HumanInputLLM from langchain.agents import load_tools from langchain.agents import initialize_agent from langchain.agents import AgentType from wikipedia import set_lang
使用維基百科工具
tools = load_tools(["wikipedia"])
這里必須要設(shè)置為中文 url 前綴,不然訪問(wèn)不了
set_lang("zh")
初始化 LLM
llm = HumanInputLLM(prompt_func=lambda prompt: print(f"
===PROMPT====
{prompt}
=====END OF PROMPT======"))
初始化 agent
agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)
agent.run("喜羊羊")
3使用 huggingface1. 注冊(cè)賬號(hào)
2. 創(chuàng)建 Access Tokens

Demo:使用模型對(duì)文檔進(jìn)行摘要

from langchain.document_loaders import UnstructuredFileLoader from langchain.chains.summarize import load_summarize_chain from langchain.text_splitter import RecursiveCharacterTextSplitter from langchain import HuggingFaceHub import os from decouple import config from langchain.agents import load_tools
這里 mock 下 ChatGPT, 使用 HUGGINGFACEHUB
os.environ["HUGGINGFACEHUB_API_TOKEN"] = config('HUGGINGFACEHUB_API_TOKEN')
導(dǎo)入文本
loader = UnstructuredFileLoader("docment_storehelloLangChain.txt")
將文本轉(zhuǎn)成 Document 對(duì)象
document = loader.load()
print(f'documents:{len(document)}')
初始化文本分割器
text_splitter = RecursiveCharacterTextSplitter(
chunk_size = 500,
chunk_overlap = 0
)
切分文本
split_documents = text_splitter.split_documents(document)
print(f'documents:{len(split_documents)}')
加載 LLM 模型
overal_temperature = 0.1
flan_t5xxl = HuggingFaceHub(repo_id="google/flan-t5-xxl",
model_kwargs={"temperature":overal_temperature,
"max_new_tokens":200}
)
llm = flan_t5xxl
tools = load_tools(["llm-math"], llm=llm)
創(chuàng)建總結(jié)鏈
chain = load_summarize_chain(llm, chain_type="refine", verbose=True)
執(zhí)行總結(jié)鏈
chain.run(split_documents)
Leader 所有的數(shù)據(jù),本次日志對(duì)齊即完成。
審核編輯:劉清
-
SQL
+關(guān)注
關(guān)注
1文章
789瀏覽量
46508 -
OpenAI
+關(guān)注
關(guān)注
9文章
1241瀏覽量
9887 -
ChatGPT
+關(guān)注
關(guān)注
31文章
1598瀏覽量
10175
原文標(biāo)題:把LangChain跑起來(lái)的3個(gè)方法
文章出處:【微信號(hào):OSC開(kāi)源社區(qū),微信公眾號(hào):OSC開(kāi)源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
智能車淺談——手把手讓車跑起來(lái)(電磁篇)
如何自己設(shè)計(jì)一個(gè)基于RISC-V的SoC架構(gòu),最后可以在FPGA上跑起來(lái)?
如何讓你的ESP32跑起來(lái)
Micropython平臺(tái)是如何實(shí)現(xiàn)在NUCLEO-F401RE開(kāi)發(fā)板跑起來(lái)的
怎樣讓自己編譯的uboot跑起來(lái)
程序能跑起來(lái)就是很好的c代碼嗎
如何借助STM32CubeProgrammer輕松將STM32MP1開(kāi)發(fā)板跑起來(lái)
STM32如何區(qū)分程序跑起來(lái)用的是HSE還是HSI呢?
Zynq 7015 linux跑起來(lái)之導(dǎo)入之BOOT.bin生成詳解
如何在鴻蒙OS上跑起來(lái)第一個(gè)hello world
windows安裝ubuntu并讓pioneer1應(yīng)用程序跑起來(lái)的過(guò)程
Linux 下交叉編譯實(shí)戰(zhàn):跑起來(lái)你的第一個(gè) STM32 程序
把LangChain跑起來(lái)的3個(gè)方法
評(píng)論