成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

LangChain 和 Hub 的前世今生

人工智能
本文主要聊了LangChain和LangChainHub的發展變遷,還介紹了LangChainHub的使用,希望對你有幫助!

作為LLM(大模型)開發框架的寵兒,LangChain在短短幾年內迅速崛起,成為開發者們不可或缺的工具。本文將帶你探討LangChain和LangChainHub的發展歷程。

一、LLM開發框架的寵兒

這兩年人工智能領域發展迅猛,LLM(大模型)的出現功不可沒。LLM的發展將整個人工智能領域往前推進了一大步,將人工智能這道狹窄的門撐寬了不少,讓我們這些平凡的普通人也有機會擠進人工智能的發展中。

普通開發者在人工智能領域能做什么呢?目前可以發力的領域是:開發基于LLM的App。開發LLM的App有多種實現方式,LangChain是比較流行的一種。

伴隨著人工智能的發展,這兩年LangChain發展迅猛,GitHub上的star數飆升,近期更是成功融資2億美刀,足見其受歡迎程度。

早期的LangChain只是作為一個工具或者膠水,集成了多個LLM和多種外部組件(比如記憶、檢索、向量數據庫、工具集等等),方便開發者快速開發基于LLM的App。

我估計,當時LangChain的創始人對LangChain的定位也不是很清晰,只是覺得AI應用開發是個不錯的風口,先搞了再說,這也很符合創業和商業邏輯。

二、現在的LangChain

隨著LLM的發展,一切逐步走向確定性(業內一致認為LLM App是未來的方向),而且可能伴隨著商業化的要求,LangChain對自己的定位發生了一些改變。

早期的LangChain可能只是想抓住一波LLM的風口,對于自身的定位也不是很清晰,隨著LLM領域更多的發力點在構建基于LLM的App上,LangChain也趕緊調整了自身的定位。

不再定位在:膠水、工具集合等等理念了。更多的強調自己是:構建LLM App的最大社區,基于LangChain可以開發出可推理的應用程序。

調整了定位,生態也自然做了調整,同時軟件架構也隨之變化,比如:軟件包上做了很多重構和重組,核心能力 和 周邊社區生態 的邊界越發清晰。

同時,還加入了LangSmith用于監控LLM應用,還有LangServe用于部署LLM應用。一切的步伐都在朝著商業化發展。

至此LangChain調整為以下幾個核心模塊:

  • LangChain-Core:抽象LangChain的內核 和 LangChain 表達式語言。
  • LangChain-Community:集成的各種第三方部件。
  • LangChain:構成LLM應用程序需要的 鏈、代理和檢索等。
  • LangSmith:開發者平臺,可讓 調試、測試、評估和監控 基于任何 LLM 框架上構建的鏈,并與 LangChain 無縫集成。
  • LangServe:用于將 LangChain 的應用 部署為 REST API。

這幾點我們從官網的架構圖清晰可見。也可以認為此時的LangChain變成了一個SAAS化的開發者平臺。而它提供的組件、工具、監控、部署等生態,也都是為了讓開發者方便的開發出LLM App,然后部署到這個平臺上。

LangChain是一個優秀的LLM開源框架,也無法避免走上常規的開源軟件商業化的套路。

三、早期的LangChainHub

LangChain早期推出的各種組件中LangChainHub是其中一個比較有意思的項目。

早期LangChainHub對自己的定位如下:LangChainHub 受 Hugging Face Hub 啟發,是一個用于發現和提交常用的 提示、鏈、代理等的平臺。早期,LangChainHub以Prompt集合為起點,然后很快擴展到 鏈 和 代理。

這個定位我們從之前的LangChainHub在github倉庫上的目錄可見一斑。

此時的LangChainHub 可以理解為LangChain 工具包 或者說 組件中心,里面提供了高質量的組件方便開發者使用。確確實實是一個分享和探索Prompt、鏈 和Agent的地方。

比如,我們要基于reAct機制實現一個Agent,如果自己寫一堆Prompt(提示詞)那就太費勁了。此時,在LangChainHub就有許多現成可用的Prompt模板,使用簡單又省事,所以LangChainHub迅速流行開。

四、現在的LangChainHub

那現在的LangChainHub在新的LangChain架構圖的哪里呢?我也覺得挺奇怪的,LangChainHub也是算生態里較為重要的版塊,架構圖里居然沒提。

后來發現,LangChainHub被放到了LangSmith里。這個從新版的官方文檔也是清晰可見。

這也算合情合理吧,畢竟LangSmith是一個開發者平臺,用于調試、測試、評估、監控基于LLM框架的鏈,在這個平臺上,可以使用和創建Prompt。

早期的時候LangChainHub有Prompt、Chain、Agent,現在也只有Prompt了。我個人對LangChainHub的定位多少覺得有些悲涼了,LangChainHub淪為了Prompt模板倉庫。

我認為這背后存在兩種可能的原因:

  • 可能是商業化的要求吧,將常用的Prompt模板挪到開發者平臺LangSmith里,畢竟LangSmith是有各種付費計劃的。
  • 可能是官方對于LangChainHub里的內容開始做收縮,聚焦于Prompt,畢竟Prompt比較獨立 而且易于交付。而Chains 和 Agents 相對來說,交付難度高一些,變動性也低,所以官方直接將 Chains 和 Agents 沉淀到自己的核心庫里,這樣也能保證Chains 和 Agents 的質量,保證自己的口碑。

LangChainHub真的是始于Prompt,終于Prompt!!!當然啦,以后的LangChainHub怎么發展就不得而知了。

慶幸的是,我們大部分場景還是使用Prompt模板居多,此時的LangChainHub里依舊能找到大咖們貢獻的復雜常用的Prompt模板,降低了我們使用ReAct、Tool的門檻。

五、LangChainHub的使用

下面我們通過一個示例,來看看如何使用LangChainHub。

1.拆解LangChainHub的Prompt

比如:要實現一個reAct機制,如果我們自己寫提示詞,那太復雜了。但是LangChainHub上已經有大佬定義好了相關提示詞。

比如:structured-chat-agent(https://smith.langchain.com/hub/hwchase17/structured-chat-agent),提示詞寫的還是有點復雜的,大致意思就是:告訴LLM,它可以使用一堆什么格式的工具,然后先推理,選擇合適的工具,執行之后,進行觀察,觀察完了之后,繼續推理,如果有答案了,就回復用戶。

具體內容如下:

2.使用LangChainHub

使用LangChainHub上的Prompt就2步:

  • 導入LangChainHub庫
  • 從Hub上拉取對應的提示詞

接下來舉個例子,比如,LLM在直接計算浮點數加減時會出現錯誤,我要做一個基于reAct框架的AI Agent,讓這個Agent幫我精準計算浮點數。這里使用LangChainHub里的structured-chat-agent來簡化我的流程。

具體代碼如下:

from langchain import hub
from langchain.agents import create_structured_chat_agent, AgentExecutor, tool
from langchain.memory import ConversationBufferMemory
from langchain.schema import HumanMessage
from langchain.tools import BaseTool
from langchain_openai import ChatOpenAI

model = ChatOpenAI(
    model="gpt-3.5-turbo",
    openai_api_key="sk-xnAKVC6V0LzBwqGK9fE59cFcBc3f40DcBf96C135112dFb63",
    openai_api_base="https://api.aigc369.com/v1",
)


# 定義工具
class SumNumberTool(BaseTool):
    name = "數字相加計算工具"
    description = "當你被要求計算2個數字相加時,使用此工具"

    def _run(self, a, b):
        return a["title"] + b["title"]


# 加入到工具合集
tools = [SumNumberTool()]

# 使用reAct的提示詞
prompt = hub.pull("hwchase17/structured-chat-agent")

# 創建Agent
agent = create_structured_chat_agent(llm=model, tools=tools, prompt=prompt)

# 創建記憶組件
memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True)

# 創建Agent執行器
agent_executor = AgentExecutor.from_agent_and_tools(
    agent=agent, tools=tools, memory=memory, verbose=True, handle_parsing_errors=True
)

agent_executor.invoke({"input": "你幫我算下 3.941592623412424 + 4.3434532535353的結果"})

六、總結

本文主要聊了LangChain和LangChainHub的發展變遷,還介紹了LangChainHub的使用,希望對你有幫助!

責任編輯:趙寧寧 來源: 程序員半支煙
相關推薦

2011-08-23 09:52:31

CSS

2015-11-18 14:14:11

OPNFVNFV

2014-07-30 10:55:27

2025-02-12 11:25:39

2014-07-21 12:57:25

諾基亞微軟裁員

2016-12-29 18:21:01

2019-06-04 09:00:07

Jenkins X開源開發人員

2021-06-17 07:08:19

Tapablewebpack JavaScript

2016-12-29 13:34:04

阿爾法狗圍棋計算機

2014-07-15 10:31:07

asyncawait

2012-05-18 16:54:21

FedoraFedora 17

2013-05-23 16:23:42

Windows Azu微軟公有云

2016-11-03 13:33:31

2016-11-08 19:19:06

2021-04-15 07:01:28

區塊鏈分布式DLT

2011-05-13 09:43:27

產品經理PM

2015-06-11 11:10:09

對象存儲云存儲

2019-08-05 10:08:25

軟件操作系統程序員

2019-04-28 09:34:06

2022-11-07 14:23:35

RPA人工智能流程自動化管理
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本三级网址 | 国内久久 | 国产精品高 | 精品国产一区二区三区久久久四川 | 日韩视频一区二区 | 国产精品一区二区在线播放 | 亚洲福利一区 | 色视频网站 | 亚洲精品综合 | 视频在线一区二区 | 中文字幕视频三区 | 69性欧美高清影院 | 久久精品一 | 亚洲导航深夜福利涩涩屋 | 成人免费小视频 | 国产免费福利小视频 | 日韩欧美久久精品 | 精品在线视频播放 | 秋霞在线一区 | 国产欧美日韩一区二区三区 | 久久久久久久国产精品影院 | 麻豆国产一区二区三区四区 | 日本精品久久 | 精品视频在线播放 | 青青草华人在线视频 | 日韩精品 电影一区 亚洲 | 国产成人综合久久 | 国产精品一区二区三区99 | 欧美综合在线视频 | 中文字幕一区二区三区乱码在线 | 亚洲精品一区二区三区中文字幕 | 国产精品激情小视频 | 欧美一区二不卡视频 | 国产一区二区精品在线 | a在线观看 | 在线观看av不卡 | 日韩中文字幕 | 中文字幕免费观看 | 久久手机在线视频 | 成人不卡 | 亚洲一区二区久久 |