LangChain 很火,有關(guān)它的前途命運(yùn)也有很多爭(zhēng)議,但一個(gè)相對(duì)肯定的結(jié)論是:LangChain 已經(jīng)成為了 AI 應(yīng)用開(kāi)發(fā)的新手村。22 年 11 月初,Hacker News 上“如何入門(mén) AI”的帖子回復(fù)中,LangChain 第一次被列進(jìn)入門(mén)套裝:
看 Fast.ai 和 Andrej Karpathy 的 YouTube 頻道。在本地試試跑 Stable Diffusion。用 YOLO 標(biāo)記你的圖片。用 LangChain,在 Hugging Face 學(xué)學(xué)如何使用 Transformer 的庫(kù)。然后去 Kaggle 吧。
LangChain 由前 Robust Intelligence 的機(jī)器學(xué)習(xí)工程師 Chase Harrison 在 22 年 10 月底推出,是一個(gè)封裝了大量 LLM 應(yīng)用開(kāi)發(fā)邏輯和工具集成的開(kāi)源 Python 庫(kù),有成為第一個(gè)被廣泛認(rèn)可的 LLM 應(yīng)用開(kāi)發(fā)框架的勢(shì)頭。隨著 Harrison 為 LangChain 添加了很多實(shí)用的抽象,以及 23 年 1 月眾多 AI Hackathon 決賽項(xiàng)目使用 LangChain,它的 Github Star 迅速破萬(wàn),成為 LLM 應(yīng)用開(kāi)發(fā)者選擇中間件時(shí)想到的第一個(gè)名字。
(資料圖片)
從開(kāi)發(fā)者視角看,LangChain 是個(gè)挺友好且優(yōu)美的庫(kù):
?它非常模塊化,還通過(guò) Chain、Agent、Memory 對(duì) LLM 的抽象幫助開(kāi)發(fā)者提高了構(gòu)建較復(fù)雜邏輯應(yīng)用的效率;而且每個(gè)模塊有很好的可組合性,有點(diǎn)像“為 LLM 提供了本 SOP”,能實(shí)現(xiàn) LLM 與其他工具的組合、Chain 與 Chain 的嵌套等邏輯;
?它一站式集成了所有工具,從各種非結(jié)構(gòu)化數(shù)據(jù)的預(yù)處理、不同的 LLM、中間的向量和圖數(shù)據(jù)庫(kù)和最后的模型部署,貢獻(xiàn)者都幫 LangChain 跟各種工具完成了迅速、全面的集成。
作為成長(zhǎng)期投資者看 LangChain,它本身還太早期,遠(yuǎn)沒(méi)到成長(zhǎng)邏輯。除此之外,我對(duì)它在商業(yè)層面未來(lái)發(fā)展的核心擔(dān)憂(yōu)在于:
?我們不能直接套用舊時(shí)代的中間件視角,隨著 ChatGPT Plug-In 出現(xiàn)和 OpenAI 的更多邊界延伸,LangChain 的價(jià)值可能被取代,很快像機(jī)器學(xué)習(xí)歷史上的其他明星庫(kù)一樣隱入塵埃;
?LangChain 本身的壁壘也比較薄,是“其他開(kāi)源庫(kù)身上的開(kāi)源庫(kù)”,沒(méi)有太多技術(shù)壁壘,只是替大家省下來(lái)了碼的時(shí)間。如果要收費(fèi)使用,很多開(kāi)發(fā)者可能會(huì)選擇自己把 LangChain 這套東西碼出來(lái);
?目前使用 LangChain 庫(kù)的以個(gè)人開(kāi)發(fā)者和極客的 side project 為主,還不是正經(jīng)的企業(yè)級(jí) LLM 集成工具,而稍微有點(diǎn)體量的公司都會(huì)選擇 fork LangChain 的源碼或者干脆自己再碼套框架。
從投資人的角度看,LangChain 的創(chuàng)始人 Harrison Chase 想做的不止是 LangChain 這個(gè)開(kāi)源庫(kù)而已,我們比較期待他服務(wù) AI 應(yīng)用開(kāi)發(fā)者的下一步動(dòng)作。此外,我在本文使用了盡可能通俗易懂的方式呈現(xiàn)和分析 LangChain 的能力,所以沒(méi)有技術(shù)背景的讀者也可以放心閱讀本文,也歡迎 LangChain 開(kāi)發(fā)者填寫(xiě)反饋征集問(wèn)卷。
以下為本文目錄,建議結(jié)合要點(diǎn)進(jìn)行針對(duì)性閱讀。
01.構(gòu)建 AI 應(yīng)用遠(yuǎn)不只是調(diào)用模型 API
一旦在 LLM 領(lǐng)域花了足夠多的時(shí)間,在興奮之余你會(huì)意識(shí)到當(dāng)前模型本身的兩點(diǎn)局限:
1. 它只有“腦子”沒(méi)有“手臂”,無(wú)法在外部世界行動(dòng),不論是搜索網(wǎng)頁(yè)、調(diào)用 API 還是查找數(shù)據(jù)庫(kù),這些能力都無(wú)法被 OpenAI 的 API 提供;
2. 甚至它的“腦子”也不完美,OpenAI 的訓(xùn)練數(shù)據(jù)截止至 2021 年,并且沒(méi)有任何企業(yè)和個(gè)人的私有數(shù)據(jù),這讓模型只能根據(jù)自己的“記憶”回答問(wèn)題,并且經(jīng)常給出與事實(shí)相悖的答案。一個(gè)解決方法是在 Prompt 中將知識(shí)告訴模型,但是這往往受限于 token 數(shù)量,在 GPT-4 之前一般是 4000 個(gè)字的限制。
從抽象層面看,我們使用 LLM 時(shí)在期待兩種能力(這是個(gè)沒(méi)那么科學(xué)嚴(yán)謹(jǐn)?shù)姆诸?lèi)):
1. 一種是使用它的生成能力,這是 GPT-3 和 ChatGPT 剛剛出現(xiàn)時(shí)最初被體驗(yàn)的能力 —— 讓 ChatGPT 寫(xiě)首詩(shī),你可以接受它的上述不完美;
2. 進(jìn)入到圍繞模型構(gòu)建“真正有用”的應(yīng)用時(shí),我們更多在使用它通過(guò)思想和記憶進(jìn)行推理的能力。而簡(jiǎn)單直接地通過(guò) API 調(diào)用模型無(wú)法將推理所需的一些事實(shí)和知識(shí)給到它,即這時(shí)候模型總是缺少“Context”(廣義的上下文)。
這就需要為模型注入 Context 并進(jìn)行一定的 Prompt Engineering。正確的 Prompt 可以激發(fā)出 LLM 的能力,這在 GPT-3.5 以前的時(shí)代更為重要。將 Context 注入 LLM 實(shí)際上在 Prompt Engineering 的上游,把知識(shí)告訴 LLM,Prompt 只是中間橋梁。前 Stitch Fix 的 ML 總監(jiān) John McDonnell 畫(huà)的這幅圖很好地展示出了二者的關(guān)系:
“腦子”的問(wèn)題目前已經(jīng)有了成熟的解決方案來(lái)繞開(kāi) token 數(shù)量的限制。通常的方法借鑒了 Map Reduce 的思想,涉及到給文檔切片、使用 Embedding 引擎、向量數(shù)據(jù)庫(kù)和語(yǔ)義搜索(我們?cè)?02 中詳細(xì)介紹了這個(gè)過(guò)程)。
關(guān)于“手臂”的探索也早就有很多,OpenAI 的 WebGPT 給模型注入了使用網(wǎng)頁(yè)信息的能力,Adept 訓(xùn)練的 ACT-1 則能自己去網(wǎng)站和使用 Excel、Salesforce 等軟件,PaLM 的 SayCan 和 PaLM-E 嘗試讓 LLM 和機(jī)器人結(jié)合,Meta 的 Toolformer 探索讓 LLM 自行調(diào)用 API,普林斯頓的 Shunyu Yao 做出的 ReAct 工作通過(guò)結(jié)合思維鏈 prompting 和這種“手臂”的理念讓 LLM 能夠搜索和使用維基百科的信息……
有了這些工作,在開(kāi)源模型或者 API 之上,開(kāi)發(fā)者們終于可以做有相對(duì)復(fù)雜步驟和業(yè)務(wù)邏輯的 AI 應(yīng)用。而 LangChain 是一個(gè)開(kāi)源的 Python 庫(kù)(后續(xù)又推出了 Typescript 版本),封裝好了大量的相關(guān)邏輯和代碼實(shí)現(xiàn),開(kāi)發(fā)者們可以直接調(diào)用,大大加速了構(gòu)建一個(gè)應(yīng)用的速度。
如果沒(méi)有 LangChain,這些探索可能首先將被局限在 Adept、Cohere 等有充足產(chǎn)研資源的公司身上,或僅僅停留在論文層面。然后隨著時(shí)間推移,開(kāi)發(fā)者需要悶頭碼個(gè)幾周來(lái)復(fù)現(xiàn)這些邏輯。但是有了 LangChain,做一個(gè)基于公司內(nèi)部文檔的問(wèn)答機(jī)器人通常只需要兩天,而直接 fork 別人基于 LangChain 的代碼構(gòu)建個(gè)人的 Notion 問(wèn)答機(jī)器人則只需要幾個(gè)小時(shí)。
02.案例:為一本 300 頁(yè)的書(shū)構(gòu)建問(wèn)答機(jī)器人
我自己知道的第一個(gè)使用 Map Reduce 思想的應(yīng)用是 Pete Hunt 的 summarize.tech,一個(gè)基于 GPT-3 的 YouTube 視頻總結(jié)器。Pete 在去年 9 月興沖沖地在 Twitter 上表示自己找到了讓 GPT-3 調(diào)用成本下降 80% 的方法 ——不是一股腦將 YouTube 視頻的文稿做總結(jié),而是先將它分成很多的文本塊(chunk),對(duì)每個(gè)塊分別總結(jié),最后給用戶(hù)交付的是“摘要的摘要”,過(guò)程中消耗的 token 數(shù)能節(jié)省很多。
事實(shí)上,這不光能讓成本降低,還可以解決單個(gè) Prompt 中 token 數(shù)量限制的問(wèn)題。隨著 12 月 OpenAI 新的 Embedding 引擎推出和 ChatGPT 讓更多 AI 應(yīng)用開(kāi)發(fā)者入場(chǎng),這種做法目前已經(jīng)成為解決 Context 問(wèn)題的絕對(duì)主流做法。
下面我們以一個(gè) 300 頁(yè)的書(shū)的問(wèn)答機(jī)器人為例,給讀者展示下 LangChain 如何封裝這個(gè)過(guò)程(這個(gè)例子來(lái)自 YouTube 博主 Data Independent 的 LangChain 101 系列視頻,如果你想迅速上手 LangChain,強(qiáng)烈推薦觀(guān)看):
1. 哪怕是 GPT 的 32k token 限制,300 頁(yè)的書(shū)也絕對(duì)超過(guò)了,因此我們需要引入上文這種 Map Reduce 的做法;
2. LangChain 提供了許多 PDF loader 來(lái)幫助上傳 PDF,然后也提供許多類(lèi)型的 splitter 讓你可以將長(zhǎng)文本切成數(shù)百個(gè)文本塊,并盡量避免這么切可能導(dǎo)致的語(yǔ)義缺失;
3. 有了文本塊之后,你可以調(diào)用 OpenAI 的 Embedding 引擎將它們分別變成 Embeddings,即一些大的向量;
4. 你可以在本地存儲(chǔ)這些向量或者使用 Pinecone 這樣的云向量數(shù)據(jù)庫(kù)存儲(chǔ)它們;
5. 調(diào)用 LangChain 的 QA Chain 就可以進(jìn)行問(wèn)答了,這背后發(fā)生的是 —— 輸入的問(wèn)題也被 Embedding 引擎變成向量,然后使用 Pincone 的向量搜索引擎找到語(yǔ)義最接近的一些 Embedding,將它們?cè)倨唇釉谝黄鹱鳛榇鸢阜祷亍?/p>
LangChain 在過(guò)程中提供了完整的集成,從 OpenAI 的 LLM 本身、Embedding 引擎到 Pinecone 數(shù)據(jù)庫(kù),并且將整體的交互邏輯進(jìn)行了封裝。如果你想用別人基于 LangChain 的代碼 fork 這個(gè) PDF 問(wèn)答機(jī)器人,基本只需要換一下 OpenAI API key、Pincone API key 和用的這份 PDF。
03.產(chǎn)品:拼接好 LLM 的大腦和四肢
LangChain 身上有許多標(biāo)簽:開(kāi)源的 Python 和 Typescript 庫(kù)、第一個(gè)被廣泛采用的 LLM 開(kāi)發(fā)框架、Model as a Service 設(shè)想的中間件、AI 應(yīng)用層的基礎(chǔ)設(shè)施......感興趣上手使用 LangChain 的讀者可以參考下圖觀(guān)遠(yuǎn)數(shù)據(jù)的這個(gè)講解視頻,或是去 LangChain 的文檔中心和 Github 逛逛。
Source:《微軟 365 Copilot 是如何實(shí)現(xiàn)的?
揭秘 LLM 如何生成指令》- Bilibili
我在這一部分將不再羅列 LangChain 本身的一系列功能,而是詳細(xì)講講我認(rèn)為 LangChain 最重要的 3 個(gè)身份 ——讓 LLM 擁有上下文和行動(dòng)能力的第一選擇、所有 LLM Ops 工具的粘合劑/螺栓、一個(gè)快速崛起的開(kāi)源社區(qū)。
讓 LLM 擁有上下文和行動(dòng)能力
目前基于 LangChain 開(kāi)發(fā)的第一用例是建立使用私有數(shù)據(jù)的問(wèn)答機(jī)器人,而大多數(shù)開(kāi)發(fā)者想到要導(dǎo)入私有數(shù)據(jù),第一選擇就是基于 LangChain 來(lái)做。可以說(shuō) LangChain 是目前將上下文信息注入 LLM 的重要基礎(chǔ)設(shè)施。Harrison 在去年 11 月為 LangChain 總結(jié)的 4 大價(jià)值主張支柱也都圍繞這一點(diǎn),體現(xiàn)出了很優(yōu)美的模塊化和可組合性特點(diǎn):
LLM 和 Prompts
如果是一個(gè)簡(jiǎn)單的應(yīng)用,比如寫(xiě)詩(shī)機(jī)器人,或者有 token 數(shù)量限制的總結(jié)器,開(kāi)發(fā)者完全可以只依賴(lài) Prompt。此外,這也是更復(fù)雜的 Chain 和 Agent 的基礎(chǔ)。LangChain 在這一層讓切換底層使用的 LLM、管理 Prompt、優(yōu)化 Prompt 變得非常容易。
此處最基礎(chǔ)的能力是 Prompt Template。一個(gè) Prompt 通常由 Instructions、Context、Input Data(比如輸入的問(wèn)題)和 Output Indicator(通常是對(duì)輸出數(shù)據(jù)格式的約定)。使用 LangChain 的 Prompt Template 很好地定義各個(gè)部分,同時(shí)將 Input Data 留作動(dòng)態(tài)輸入項(xiàng)。
圍繞 Prompt,LangChain 還有很多非常有意思的小功能,比如 0.0.9 版本上的兩個(gè)能力:Dyanamic Prompts 可以檢查 Prompt 的長(zhǎng)度,然后調(diào)整 few-shots 給出的示例數(shù)量,另一個(gè)Example Generation 可以檢查 Prompt 里 token 數(shù)量還有剩余的話(huà)就再多生成些示例。
Chain
當(dāng)一個(gè)應(yīng)用稍微復(fù)雜點(diǎn),單純依賴(lài) Prompting 已經(jīng)不夠了,這時(shí)候需要將 LLM 與其他信息源或者 LLM 給連接起來(lái),比如調(diào)用搜索 API 或者是外部的數(shù)據(jù)庫(kù)等。LangChain 在這一層提供了與大量常用工具的集成(比如上文的 Pincone)、常見(jiàn)的端到端的 Chain。
今天 LangChain 封裝的各種 Chain 已經(jīng)非常強(qiáng)勁,一開(kāi)始 300 頁(yè) PDF 的案例中用到的是它的 QA Chain,我再舉一些足夠簡(jiǎn)單、易于理解的 Chain 作為例子:
它的第一個(gè) Chain 可以讓完全沒(méi)有技術(shù)背景的讀者也對(duì) Chain 有個(gè)概念 —— 這個(gè) Chain 叫做 Self Ask with Search,實(shí)現(xiàn)了 OpenAI API 和 SerpApi(Google 搜索 API)的聯(lián)動(dòng),讓 LLM 一步步問(wèn)出了美國(guó)網(wǎng)球公開(kāi)賽冠軍的故鄉(xiāng)。
還有一個(gè)很直觀(guān)的 Chain 是 API chain,可以讓 LLM 查詢(xún) API 并以自然語(yǔ)言回答問(wèn)題,比如下面這個(gè)示例中 LLM 使用了 Open-Mateo(一個(gè)開(kāi)源的天氣查詢(xún) API)來(lái)獲取舊金山當(dāng)天的降雨量:
Agent
Agent 封裝的邏輯和賦予 LLM 的“使命”比 Chain 要更復(fù)雜。在 Chain 里,數(shù)據(jù)的來(lái)源和流動(dòng)方式相對(duì)固定。而在Agent 里,LLM 可以自己決定采用什么樣的行動(dòng)、使用哪些工具,這些工具可以是搜索引擎、各類(lèi)數(shù)據(jù)庫(kù)、任意的輸入或輸出的字符串,甚至是另一個(gè) LLM、Chain 和 Agent。
Harrison 將 Agent 的概念引入 LangChain 是受到前文提到的 ReAct 和 AI21 Labs 的 MRKL(Modular Resaoning, Knowledge, and Language 模塊化推理、知識(shí)和語(yǔ)言)系統(tǒng)的啟發(fā)。作為 Agent 的 LLM 深度體現(xiàn)了思維鏈的能力,充當(dāng)了交通指揮員或者路由者的角色。
重新回歸 OpenAI 的 Anrej Karpathy 在 Twitter 上經(jīng)常說(shuō) LLM 會(huì)成為編排資源的認(rèn)知引擎,LangChain 的 Agent 走得其實(shí)就是這個(gè)方向。所以 Agent 究竟能干什么呢?下面是我最喜歡的一個(gè)例子。
眾所周知,ChatGPT 能聽(tīng)懂你的幾乎所有問(wèn)題,但是老胡編亂造。另外有一個(gè)叫 Wolfram Alpha 的科學(xué)搜索引擎,擁有天文地理的各類(lèi)知識(shí)和事實(shí),只要能聽(tīng)懂你提問(wèn)就絕不會(huì)出錯(cuò),可惜之前只能用官方給的語(yǔ)法搜索,非常難用。所以它的創(chuàng)始人 Wolfram 老師一直在鼓吹 ChatGPT 與 Wolfram Alpha 結(jié)合的威力。
23 年 1 月 11 日,LangChain 貢獻(xiàn)者 Nicolas 完成了 ChatGPT 和 Wolfram Alpha 的集成。Agent 可以像下圖一樣運(yùn)行,自行決定是否需要工具和 Wolfram Alpha,在回答“從芝加哥到東京的距離”時(shí)選擇了調(diào)用它,在回答“Wolfram 是否比 GPT-3 好”時(shí)選擇不調(diào)用它,自行回答。
Memory
LangChain 在上述的 3 層都做得很好,但是在 Memory 上一直相對(duì)薄弱,Harrison 自己不懂,一直由非全職的貢獻(xiàn)者 Sam Whitmore 貢獻(xiàn)相關(guān)代碼,他也承認(rèn) LangChain 在這塊兒有些技術(shù)債。
對(duì)于不了解 Memory 是什么的讀者,你在 ChatGPT 每個(gè)聊天 session 都會(huì)出現(xiàn)在入口的左側(cè),OpenAI 會(huì)貼心地為你生成小標(biāo)題,在每個(gè) session 的問(wèn)答里 ChatGPT 都能記住這個(gè)對(duì)話(huà)的上文(不過(guò)也是因?yàn)槊看握?qǐng)求都會(huì)把之前的問(wèn)答 token 都傳給 OpenAI),但是新的對(duì)話(huà) session 中的 ChatGPT 一定不記得之前 session 中的信息。LangChain 中的 Chain 在前幾個(gè)月一直也都是這種無(wú)狀態(tài)的,但是通常開(kāi)發(fā) App 時(shí)開(kāi)發(fā)者希望 LLM 能記住之前的交互。
在前 ChatGPT 時(shí)代,LangChain 不久還是實(shí)現(xiàn)了 Memory 的概念,在不同的 Query 間傳遞上下文,實(shí)現(xiàn)的方法跟開(kāi)始的總結(jié) 300 頁(yè) PDF 類(lèi)似:
?總體而言的方法是記錄之前的對(duì)話(huà)內(nèi)容,將其放到 Prompt 的 Context 里;
?記錄有很多的 tricks,比如直接傳遞上下文,或者對(duì)之前的對(duì)話(huà)內(nèi)容進(jìn)行總結(jié),然后將總結(jié)放 Prompt 里。
微博博主寶玉 xp 畫(huà)過(guò)一個(gè)系統(tǒng)交互圖,如果不使用被封裝好的庫(kù),自己手寫(xiě)的話(huà)實(shí)際上這套邏輯也很復(fù)雜。
在 Scale AI 今年的 Hackthon 決賽上,Sam 又為 LangChain 做了 Entity Memory 的能力,可以為 LLM 和用戶(hù)聊天時(shí) Entity 提供長(zhǎng)期記憶上下文的能力:
在 ChatGPT 發(fā)布后,LangChain 又優(yōu)化了 Memory 模塊,允許返回 List[ChatMessage],將邏輯單元拆分為了更小的組件,更符合模塊化的思想。
一站式粘合所有工具
模塊化和可組合性是 LangChain 的關(guān)鍵理念,但它還有一個(gè)理念和我們介紹過(guò)的 Universal API 公司很像。
其實(shí)站在投資者的視角看,LangChain 的壁壘比較薄。有人問(wèn)過(guò) Harrison:為什么開(kāi)發(fā)者要用 LangChain 而不是直接使用 OpenAI 或者 Hugging Face 上的模型?LangChain 作為一個(gè)開(kāi)源庫(kù)仍然主要依賴(lài)于其他的開(kāi)源庫(kù),它的長(zhǎng)期目標(biāo)是什么?Harrison 的回答是:
Hugging Face、OpenAI、Cohere 可以提供底座模型和 API,但是在產(chǎn)品中集成和使用它們?nèi)匀恍枰罅康墓ぷ?,長(zhǎng)期目標(biāo)是幫助人們更容易地構(gòu)建 LLM 支持的應(yīng)用。
從這個(gè)視角看,LangChain 更像“膠水”和“螺栓”。它的價(jià)值在于:
1. 全過(guò)程一站式的集成,從非結(jié)構(gòu)化數(shù)據(jù)的預(yù)處理到不同模型結(jié)果的評(píng)估,開(kāi)發(fā)者所需要的工具和庫(kù) LangChain 基本都有現(xiàn)成的集成。
2. LangChain 作為 Universal Layer 在 LLM 身上包了一層,讓用戶(hù)可以更自由地在多個(gè) LLM、Embedding 引擎等之間切換,以避免單點(diǎn)風(fēng)險(xiǎn)和降低成本。
這里的邏輯和 Universal API 很像 —— 每個(gè) LLM 提供者的 API 數(shù)據(jù)結(jié)構(gòu)不同,但是 LangChain 包了一層后做了遍 Data Normalization。從想象力的角度看,LangChain 有一定的編排價(jià)值,如果 Model as a Service 和多模型是未來(lái),那么 LangChain 的價(jià)值會(huì)比想象中厚一些。
舉兩個(gè)例子:
去年 OpenAI 的 API 還很貴的時(shí)候,一些數(shù)據(jù)加載器將文本塊變成向量的方式是調(diào)用 OpenAI 的 Davinci Embedding,Harrison 覺(jué)得 LangChain 可以做到先用 Hugging Face 或者 Cohere 上便宜的模型做一道,然后再傳給 Davinci Embedding,這樣可以降低不少成本。
還有今年以來(lái),ChatGPT 有時(shí)候會(huì)崩,這也引發(fā)了應(yīng)用開(kāi)發(fā)者們的擔(dān)憂(yōu)。Will Brenton 覺(jué)得出于這種理由用 LangChain 就很值得,可以用幾行代碼實(shí)現(xiàn)在多個(gè) LLM 之間切換的邏輯,一個(gè) LLM 如果服務(wù)掛掉了就自動(dòng)試下一個(gè)。
使用 LangChain 對(duì)比多個(gè)模型的輸出
快速崛起的開(kāi)源社區(qū)
LangChain 是目前 LLM 領(lǐng)域最熱門(mén)的開(kāi)源項(xiàng)目之一,從下面可以看出今年以來(lái)的曲線(xiàn)和絕對(duì) Star 數(shù)跟最熱門(mén)的開(kāi)源模型 LLama 相比也不遑多讓?zhuān)l(fā)布不到 5 個(gè)月已經(jīng)擁有了超過(guò) 1 萬(wàn)個(gè) Github Star。
人多力量大,我們?cè)谏衔慕榻B的集成大多數(shù)也都是社區(qū)貢獻(xiàn)的,目前 LangChain 的全職團(tuán)隊(duì)只有 2-3 個(gè)人:
?發(fā)起人是 Harrison Chase,他 17 年從哈佛大學(xué)畢業(yè),分別在 Kensho(一家金融自動(dòng)化公司,做金融分析決策與 NLP 的結(jié)合)和 Robust Intelligence(AI 模型部署的安全公司)做機(jī)器學(xué)習(xí)工程師,在 2022 年 9 月 的 Homebrew AI Club 聚會(huì)上聽(tīng)到 Sam Whitmore 構(gòu)建 AI 應(yīng)用的過(guò)程和痛點(diǎn)后,他開(kāi)始做 LangChain;
?第一位全職加入 Harrison 的 LangChain 創(chuàng)業(yè)之旅的人似乎是 Ankush Gola,他從普林斯頓畢業(yè)后分別在 Facebook、Robust Intelligence 和 Unfold 做軟件開(kāi)發(fā),可以彌補(bǔ) Harrison 在軟件工程方面經(jīng)驗(yàn)的缺失。Harrison 搞不定 LangChain 的異步支持問(wèn)題,Ankush 加入后迅速?gòu)浹a(bǔ)了這一點(diǎn),讓 LangChain 能夠使用 asyncio 庫(kù)。
開(kāi)源是擴(kuò)大影響力和話(huà)語(yǔ)權(quán)的最好手段,LangChain 在 ChatGPT API 和 GPT-4 問(wèn)世的當(dāng)天都迅速發(fā)布了集成,基于 LangChain 構(gòu)建的應(yīng)用想轉(zhuǎn)用 GPT-4 只需要換下 API key 和模型名字就行了,顯然 LangChain 是 OpenAI 的重點(diǎn)合作對(duì)象之一。
除了 OpenAI 的這些更新,Zapier 推出的 Natural Language Actions API 也是跟 LangChain 進(jìn)行了深度合作,Zapier NLA 對(duì)其 2 萬(wàn)多個(gè)工具的操作實(shí)現(xiàn)了“自然語(yǔ)音 → API call → LLM-friendly 輸出”,也是基于 LangChain 做的。然后在推出當(dāng)天,LangChain 也官宣了跟 Zapier NLA 的集成,用戶(hù)可以先在 Zapier 支持的 App 上設(shè)置好一個(gè) NLA API endpoint,然后就可以在 LangChain 中調(diào)用和組合使用 Zapier。
從這兩個(gè)案例看,LangChain 是大模型能力“B2B2C”的一個(gè)重要中間站。
此外,除了給 LangChain 項(xiàng)目直接做貢獻(xiàn),還有不少人已經(jīng)在圍繞 LangChain 做生態(tài)項(xiàng)目,下面是我最喜歡的 2 個(gè):
LangChain 本身是一個(gè)沒(méi)有 UI 的庫(kù),但社區(qū)成員 Rodrigo Nader 為它構(gòu)建了一個(gè)開(kāi)源的 UI,叫做LangFlow,讓用戶(hù)可以通過(guò)拖拽就能做出來(lái)應(yīng)用原型。
大多數(shù)用戶(hù)會(huì)使用 Streamlit 或者 Replit 來(lái)部署它們的應(yīng)用,但是已經(jīng)有社區(qū)成員開(kāi)始為 LangChain 應(yīng)用打造更炫酷的部署方式,比如Kookaburra,可以讓 LangChain 應(yīng)用非常方便地被部署為短信機(jī)器人。
04.挑戰(zhàn):對(duì) Prompt Ops 的質(zhì)疑
從投資者視角,我對(duì) LangChain 的擔(dān)憂(yōu)有兩點(diǎn):
1. 它是一個(gè)很難被商業(yè)化的開(kāi)源項(xiàng)目,因?yàn)樗且粋€(gè)“依賴(lài)其他開(kāi)源庫(kù)的開(kāi)源庫(kù)”,我所訪(fǎng)談的 LangChain 開(kāi)發(fā)者也都認(rèn)為自己不會(huì)為它付費(fèi),如果要構(gòu)建一個(gè)基于 LLM 應(yīng)用的公司,他們會(huì)選擇自己 fork LangChain 再寫(xiě)一套框架,還能順手把成本和延時(shí)問(wèn)題做更多優(yōu)化;
2. 和第一點(diǎn)相輔相成的是,目前使用 LangChain 的主流人群是 Hacker 和獨(dú)立開(kāi)發(fā)者們,而不是 B 輪以后的 Mid-Market 或者大型企業(yè)公司。當(dāng)然,這是目前 AI 應(yīng)用生態(tài)的現(xiàn)狀,獨(dú)立開(kāi)發(fā)者在數(shù)量上占據(jù)主導(dǎo)。而且當(dāng)前的 LangChain 實(shí)現(xiàn)一些復(fù)雜邏輯需要多個(gè) Chain 的嵌套,并且多次 call LLM API,對(duì)于大規(guī)模調(diào)用的產(chǎn)品可能也確實(shí)成本不經(jīng)濟(jì)也有不穩(wěn)定的情況。但是正因?yàn)榇?,LangChain 更難進(jìn)行商業(yè)化,特別是在從數(shù)據(jù)準(zhǔn)備到模型部署的全環(huán)節(jié)已經(jīng)非常卷的情況下。
從演進(jìn)的視角看,我對(duì)于 LangChain 這個(gè)庫(kù)本身能不能具備服務(wù)中大型公司倒比較有信心 —— 兩個(gè)月前人們還不認(rèn)為 LangChain 是一個(gè)在生產(chǎn)環(huán)境中可靠的東西,一個(gè)月前 LangChain 才剛剛支持自托管模型,讓企業(yè) LLM 用戶(hù)可以在 LangChain 中調(diào)用共享遠(yuǎn)程 API,但是它在客戶(hù)自己的云賬戶(hù)或者本地硬件中運(yùn)行。給 LangChain 時(shí)間,貢獻(xiàn)者們會(huì)讓它高度可用。
市場(chǎng)上普遍對(duì) LangChain 有擔(dān)心,但是我認(rèn)為短期影響不大的兩點(diǎn)是:
1. LLM 本身的變化會(huì)讓 LangChain 庫(kù)中的許多部分過(guò)時(shí)。這一點(diǎn)我認(rèn)為恰恰是開(kāi)源項(xiàng)目的優(yōu)勢(shì),貢獻(xiàn)者可以迅速幫助它過(guò)渡到新版本;
比如 ChatGPT API 發(fā)布后,它有了新的交互,這也意味著需要新的抽象,原來(lái)的很多 Prompt 不管用了,適用于 GPT-3 的 Prompt Templates 在 ChatGPT 下效果不好,所以 LangChain 又新增了 PromptSelectors 功能。此外 ChatGPT 在遵循特定的輸出數(shù)據(jù)格式上表現(xiàn)得不好,有很多“無(wú)法解析 LLM 輸出”的報(bào)錯(cuò),LangChain 很快上了一個(gè) chat-zero-shot-react-description Agent 來(lái)嚴(yán)格約束輸出的數(shù)據(jù)格式,還大受好評(píng)。使用 LangChain 可能幫助很多公司避免過(guò)多的 Prompt Engineering 開(kāi)發(fā)資源浪費(fèi)。
2. 隨著模型支持的 token 數(shù)量變多,LangChain 的核心用例 —— 用分塊、Embedding、語(yǔ)義搜索、再拼回來(lái) —— 可能會(huì)直接消失。這在短期內(nèi)不是個(gè)問(wèn)題,因?yàn)槟呐?GPT-4 的 3.2 萬(wàn) token 也仍然不是很夠用。同時(shí),這種 Map Reduce 的方式還能省錢(qián)。
在理性的質(zhì)疑中,我比較認(rèn)可的是 Notion AI 的 Linus 的觀(guān)點(diǎn),他在 Twitter 上表示當(dāng)前所有類(lèi)似 LangChain 的 Prompt Ops 工具都是為 side-project 級(jí)別的用戶(hù)服務(wù)的,很難正經(jīng)接受它們,主要有 3 點(diǎn)原因:
1. 這些工具都假設(shè)一個(gè)服務(wù)是對(duì) LLM 的調(diào)用,然后在此之上把業(yè)務(wù)邏輯耦合進(jìn)去。而不是反過(guò)來(lái),在已有業(yè)務(wù)邏輯里插入對(duì) LLM 的調(diào)用,這讓現(xiàn)有的 SaaS 等公司很難使用這些工具;
2. 對(duì)于模型的輸出大家目前都沒(méi)有可量化的方式來(lái)評(píng)估,Humanloop 已經(jīng)有最好的模型評(píng)估 UI 了,但是也是為了人類(lèi)反饋對(duì)齊而不是為了應(yīng)用開(kāi)發(fā)者的性能優(yōu)化和迭代;
3. 這些工具都希望成為生產(chǎn)環(huán)境下工作負(fù)載的關(guān)鍵中間點(diǎn),但是有延時(shí)和安全性上的很有問(wèn)題,還不如給用戶(hù)交付模型配置和最終 prompt 然后讓用戶(hù)自己調(diào)用模型。
一些朋友在 Linus 的觀(guān)點(diǎn)下指出:LangChain 不是一個(gè) Prompt Ops 工具,它是一個(gè) LLM 增強(qiáng)工具,通過(guò)粘合一系列的模塊(這些模塊本身可能是 Prompt 增強(qiáng)工具)增加了 LLM 可以融入的業(yè)務(wù)邏輯復(fù)雜度。Linus 也認(rèn)同這一點(diǎn)??傮w而言,我認(rèn)為這些批評(píng)為 LangChain 指明了方向,它也的確在 3 月?lián)碛辛烁嗪湍P驮u(píng)估以及性能可觀(guān)測(cè)性相關(guān)的集成。
05.競(jìng)爭(zhēng):以和為貴、各展神通的時(shí)代
拋開(kāi)直接面向消費(fèi)者的應(yīng)用不看,LangChain 的核心競(jìng)爭(zhēng)對(duì)手是三類(lèi):
?GPT-Index本身是基于 LangChain 構(gòu)建的,它的用例更集中于 Memory 和將數(shù)據(jù)導(dǎo)入 LLM,用例非常明晰,而 LangChain 的功能更抽象和龐大,用戶(hù)需要在其中挑選符合自己用例的進(jìn)行組合;
?Microsoft Semantic Kernel的整體目標(biāo)和 LangChain 非常接近,Planner 類(lèi)似我們上文提到的 Agent,但是它針對(duì)的受眾不是獨(dú)立應(yīng)用開(kāi)發(fā)者,而是那些需要在兼顧原有開(kāi)發(fā)工作的同時(shí)將 LLM 能力嵌入自家應(yīng)用的工程師們,因此采用了一個(gè)輕量級(jí) SDK 的形式交付,它是 LangChain非常強(qiáng)勁的潛在競(jìng)爭(zhēng)對(duì)手,但是 Microsoft 和 OpenAI 的親密關(guān)系可能讓它在未來(lái)無(wú)法像 LangChain 一樣靈活支持各類(lèi) LLM;
?Dust 和 Scale AI Spellbook代表著 LLM 應(yīng)用開(kāi)發(fā)的無(wú)代碼和低代碼思路,擁有非常好的 UI/UX,但是大多數(shù)開(kāi)發(fā)者認(rèn)為自己并不是需要低代碼的工具,而是需要更多的功能和可實(shí)驗(yàn)性。
我們?cè)L談的所有 LangChain 用戶(hù)都只使用 LangChain,對(duì)于 GPT-Index 和 Dust 只探索到去它們的 Github 和官網(wǎng)逛逛的程度。有 Twitter 博主專(zhuān)門(mén)橫向測(cè)評(píng)了這三個(gè)工具,結(jié)論是:
如果你想構(gòu)建復(fù)雜邏輯并且自己托管后端的應(yīng)用,那就使用 LangChain。Dust 和 Everyprompt 是通過(guò) UI 來(lái)定義 Prompt 和創(chuàng)建 LLM 工作圖,LangChain 作為一個(gè) Python 庫(kù)提供了更多的靈活性、可控度但更笨重。它的 game changer 是圍繞 Agent 的能力,一個(gè)可以跟外部工具(python interpreter、搜索引擎)交互從而回答問(wèn)題的 LLM,這是其他工具所不具備的。
不看大廠(chǎng)的話(huà),創(chuàng)業(yè)三杰 LangChain、GPT-Index、Dust 互相有很多羈絆,絕對(duì)不是火并競(jìng)爭(zhēng)的關(guān)系:Dust 比 LangChain 出現(xiàn)得更早,由前 OpenAI 的Stanislas 創(chuàng)建,它的理念和對(duì)可組合性的重視對(duì) Harrison 做 LangChain 有很大的啟發(fā)。而 GPT-Index 的創(chuàng)始人 Jerry Liu 是 Harrison 在 Robust Intelligence 時(shí)的同事,因此兩個(gè)人經(jīng)常交流產(chǎn)品想法,GPT-Index 和 LangChain 互相有非常多的集成。
甚至 GPT-Index 本身也是基于 LangChain 構(gòu)建的,能享受 LangChain 基建升級(jí)的許多好處。比如 LangChain 在 1 月底提供了 tracing 的能力,讓用戶(hù)能更好觀(guān)測(cè)和 debug 自己的 Chain 和 Agent,GPT-Index 作為基于 LangChain 的包也自動(dòng)獲得了這個(gè)功能。下圖是一個(gè) GPT-Index query 的 tracing 視圖:
06.未來(lái):Harrison 超越 LangChain
LangChain 是一個(gè)開(kāi)源項(xiàng)目,Harrison Chase 想構(gòu)建的似乎不止于 LangChain。上個(gè)月,The Information 報(bào)道 Benchmark 以數(shù)千萬(wàn)美元估值投資了 LangChain 數(shù)百萬(wàn)美元。Harrison 有可能在繼續(xù)擴(kuò)大 LangChain 影響力的同時(shí)做出更產(chǎn)品化的開(kāi)發(fā)者工具。
從早期投資押注人的角度,Harrison 是一個(gè)很好的創(chuàng)業(yè)者和項(xiàng)目經(jīng)理,盡管還沒(méi)有直接交流過(guò),但我比較喜歡他的幾個(gè)特質(zhì):
敏銳地把握到了 LangChain 的機(jī)會(huì)
在 22 年下半年,市場(chǎng)逐漸開(kāi)始意識(shí)到 LLM 的下一步是“Action”,也就是在外部世界能夠采取行動(dòng)。標(biāo)志性的事件之一是 Cohere 在 9 月推出了基于 LLM 的 Discord 搜索機(jī)器人。
Harrison 這時(shí)候已經(jīng)花了不少時(shí)間思考下一步所需要的工具,并且留意到了 Dust 的嘗試,隨后就開(kāi)始構(gòu)建 LangChain 這個(gè) Python 包,并且在 10 月就立馬推出。在此期間,碰到有人做應(yīng)用,Harrison 經(jīng)常會(huì)問(wèn)問(wèn)對(duì)方“什么工具會(huì)幫你提效”、“還缺什么工具”。
回過(guò)頭看,LangChain 能繼續(xù)火下去的前提是,目前 AI 應(yīng)用已經(jīng)從模型技術(shù)能力的 pk 到了產(chǎn)品能力的 pk,Harrison 自己的總結(jié)是“能有好的產(chǎn)品創(chuàng)意的人 > 能創(chuàng)建更好模型的人”,而 LangChain 就希望解鎖這些人的創(chuàng)意和效率。
對(duì) LLM 的進(jìn)展、能力、痛點(diǎn) 有自己獨(dú)到的理解
從后視鏡看,LangChain 的 Chain 和 Agent 邏輯似乎是個(gè)無(wú)腦的選擇。但是 Harrison 當(dāng)時(shí)選擇構(gòu)建這一點(diǎn)是基于對(duì) Action 驅(qū)動(dòng)和對(duì) LLM 能力的判斷,受到了 ReAct 這篇論文不少影響。
他對(duì)于 token 數(shù)量限制的理解也很敏銳,將 Map Reduce 的實(shí)現(xiàn)提到了 LangChain 比較高的優(yōu)先級(jí),后面隨著 1 月份各種 AI Hackthon(Hugging Face、Scale AI 等)的舉辦,對(duì)快速使用這個(gè)邏輯的需求激增,并且相關(guān)參賽隊(duì)伍都會(huì)提到自己使用了 LangChain,讓 LangChain 迅速變成了 AI 應(yīng)用開(kāi)發(fā)者們的第一選擇。
LangChain 開(kāi)發(fā)者舊金山 Meetup 的盛況
非常緊貼用戶(hù)需求并且展現(xiàn)出很強(qiáng)的執(zhí)行力
LangChain 上線(xiàn)各類(lèi)新模型和新集成的速度非常快,Harrison 自己干活快,而且迅速讓 LangChain 的社區(qū)非常有凝聚力 ——AI 和 LLM 本身是有趣且實(shí)用的,Harrison 推動(dòng)做了 LangChain Hub,旨在為用戶(hù)提供一個(gè)易于分享和發(fā)現(xiàn) Prompt Sequence、Chain 和 Agent,又加深了這一點(diǎn)。同時(shí),Harrison 很善于跟社區(qū)成員交流獲得更多的反饋,在 LangChain Discord 社區(qū)頻繁互動(dòng),并且建立了一個(gè)專(zhuān)用的 Slack 頻道幫助大家將 LangChain 用于生產(chǎn)環(huán)境。
有一個(gè)小的細(xì)節(jié)是:在 1 月中旬,有用戶(hù)反饋 LangChain 的 verbose(根據(jù)內(nèi)容來(lái)自的模型或組件來(lái)使用突出色號(hào)顯示)挺有用但可以更詳細(xì),比如每個(gè)查詢(xún)到底用了多少 token,這樣在應(yīng)用可能被大規(guī)模使用時(shí)可以更好地追蹤成本。這是個(gè)很細(xì)節(jié)的功能,但是 Harrison 表達(dá)了重視并且在一周之后添加了對(duì) token 的計(jì)算和顯示,并且通過(guò) GPT-Index 統(tǒng)計(jì) token 的具體使用情況。類(lèi)似的例子我還觀(guān)察到了不少,只要是 Harrison 答應(yīng)用戶(hù)的需求,一定不久就會(huì)發(fā)布。
Reference
Blog@LangChainTwitter@Harrison Chase
https://www.youtube.com/watch?v=h0DHDp1FbmQ
https://www.youtube.com/watch?v=X51N9C-OhlE
https://www.youtube.com/watch?v=Zn-L6t1BliA
https://www.youtube.com/watch?v=lhby7Ql7hbk&t=8s

-
1怎么打開(kāi)電腦路由器設(shè)置?初次設(shè)置無(wú)線(xiàn)路由器方法是什么?
-
2路由器如何設(shè)置提升網(wǎng)速?學(xué)校寢室路由器無(wú)線(xiàn)怎么設(shè)置的?
-
3電腦沒(méi)連路由器卻能進(jìn)入路由器界面?電腦無(wú)法進(jìn)入路由器?
-
4把電腦變成無(wú)線(xiàn)路由器怎么弄?臺(tái)式電腦如何變成無(wú)線(xiàn)路由器?
-
5重新啟用U盤(pán)的技巧有什么?U盤(pán)提速的技巧有哪些?
-
6如何安全的使用U盤(pán)?U盤(pán)日常使用的技巧有哪些?
-
7曲面顯示器怎么選擇?曲面顯示器和平面顯示器的區(qū)別有什么?
-
8安卓設(shè)備型號(hào)和名稱(chēng)可以改嗎?安卓手機(jī)如何修改手機(jī)IMEI串號(hào)?
-
9地址和域名是什么關(guān)系?互聯(lián)網(wǎng)域名是商標(biāo)的一個(gè)組成部分對(duì)錯(cuò)?
-
10Linux獲取文件名稱(chēng)和文件路徑并寫(xiě)入txt?linux下exports文件是什么?
-
每日速讀!各地頻頻出手整治,殯葬服務(wù)收費(fèi)“退燒”了嗎?
-
觀(guān)點(diǎn):推動(dòng)綠色清明深入人心|貴州省各地多措并舉做好安全文明祭掃保障
-
江南華南有陰雨天氣 北方地區(qū)有大風(fēng)天氣
-
山西男籃遭遇大麻煩!西蒙斯惹事,三外援變單外援,恐一輪游!-天天熱點(diǎn)
-
天天百事通!好一多領(lǐng)鮮|天眼早新聞 4月6日
-
上海實(shí)施100個(gè)法治為民辦實(shí)事項(xiàng)目_環(huán)球簡(jiǎn)訊
-
每日視點(diǎn)!3月份全球制造業(yè)PMI環(huán)比下降 全球經(jīng)濟(jì)復(fù)蘇動(dòng)能依然不足
-
“大陸各方面發(fā)展都非??臁薄R英九一行感受大陸建設(shè)發(fā)展脈動(dòng) 焦點(diǎn)速讀
-
天天快訊:緊急提醒!接種過(guò)科興疫苗的人,注意了!
-
天天消息!浙江安吉:竹林生態(tài)葬吹起綠色殯葬新風(fēng)
-
商業(yè)保險(xiǎn)買(mǎi)什么險(xiǎn)種好?要怎么買(mǎi)? 今日關(guān)注
-
全球時(shí)訊:春季游熱度攀升 旅游市場(chǎng)加速?gòu)?fù)蘇
-
可轉(zhuǎn)債股強(qiáng)制贖回最多虧多少?可轉(zhuǎn)債轉(zhuǎn)股是利空嗎?
-
買(mǎi)股票需要開(kāi)幾個(gè)戶(hù)頭?股票帳戶(hù)能改嗎?
-
為啥買(mǎi)股票還需要中簽?股票中簽搖號(hào)是根據(jù)開(kāi)戶(hù)號(hào)搖號(hào)嗎?
-
怎么樣看出股票是漲的?股票短線(xiàn)怎么設(shè)置止損點(diǎn)?
-
一般開(kāi)戶(hù)能買(mǎi)哪些股票?股票委托價(jià)低于現(xiàn)價(jià)能成交不?
-
福特高管薪酬大曝光,2022年工資普遍縮水|世界最資訊
-
全球時(shí)訊:全國(guó)學(xué)雷鋒活動(dòng)示范點(diǎn)——平壩區(qū)“向陽(yáng)花”未成年人檢察工作室,建多元平臺(tái)助未成年人健康成長(zhǎng)
-
個(gè)人買(mǎi)股票可以開(kāi)多少戶(hù)?股票最少買(mǎi)幾股?
-
股票基金適合做長(zhǎng)期定投嗎?基金股票型和混合型的區(qū)別?
-
非京籍想在北京辦理退休需要滿(mǎn)足什么條件?詳解!
-
天天熱文:謹(jǐn)慎!掃碼支付出現(xiàn)新騙局
-
全球速讀:湖湘自然歷丨猜猜我是誰(shuí)⑥解毒神藥,曾為良田肥料
-
全面市場(chǎng)化的新能源汽車(chē),如何邁向高質(zhì)量發(fā)展-當(dāng)前頭條
-
瑞士信貸銀行召開(kāi)最后一次年度股東大會(huì)
-
全球微資訊!北京:樓市回暖帶動(dòng)土地市場(chǎng)企穩(wěn)回升
-
“索要千萬(wàn)逼死老公案”5年后一審宣判:女方退還男方上千萬(wàn)財(cái)產(chǎn)
-
北京:500戶(hù)以上村莊基本實(shí)現(xiàn)村級(jí)養(yǎng)老服務(wù)驛站服務(wù)全覆蓋-環(huán)球新視野
-
判決確定喪偶兒媳對(duì)婆婆不具贍養(yǎng)義務(wù)
-
北京市公安局舉行清明祭奠緬懷首都公安英烈儀式:環(huán)球快播
-
每日速看!外交部發(fā)言人就蔡英文“過(guò)境”竄美發(fā)表談話(huà)
-
部分頭部券商2022年業(yè)績(jī)下滑 環(huán)球新要聞
-
清明節(jié)假期國(guó)內(nèi)旅游出游2376.64萬(wàn)人次 微動(dòng)態(tài)
-
天天快資訊:壟斷西安血豆腐市場(chǎng),惡勢(shì)力犯罪集團(tuán)首要分子獲刑十年
-
滬廣深去年公積金個(gè)貸降兩成,今年超60地優(yōu)化公積金政策 世界簡(jiǎn)訊
-
今起省內(nèi)天氣轉(zhuǎn)晴-環(huán)球快看點(diǎn)
-
微速訊:湖南物業(yè)費(fèi)調(diào)整或?qū)⒖歼@項(xiàng)“成績(jī)”
-
劉蘊(yùn)霆:為何強(qiáng)調(diào)擴(kuò)大有本金和債務(wù)約束的金融需求
-
最短清明假期 一日游產(chǎn)品大賣(mài) “拼假族”青睞云貴川 快播
-
西藏新發(fā)現(xiàn)蘭科植物一新記錄種
-
全球第二家!加拿大開(kāi)始調(diào)查OpenAI:未經(jīng)同意收集使用個(gè)人信息 全球資訊
-
萬(wàn)億級(jí)!看湖南這一產(chǎn)業(yè)如何跨越式發(fā)展
-
微動(dòng)態(tài)丨第八批集采預(yù)計(jì)7月落地,肝素類(lèi)產(chǎn)品首入國(guó)采
-
兩岸“小三通”再現(xiàn)臺(tái)胞返鄉(xiāng)探親祭祖熱-當(dāng)前視訊
-
當(dāng)前滾動(dòng):全國(guó)人大外事委員會(huì)就美國(guó)國(guó)會(huì)眾議長(zhǎng)麥卡錫會(huì)見(jiàn)蔡英文發(fā)表聲明
-
世界熱議:我市今年將新改建10個(gè)新裝備應(yīng)用示范蔬菜保供基地
-
每日速訊:金觀(guān)平:我國(guó)經(jīng)濟(jì)呈現(xiàn)持續(xù)向好態(tài)勢(shì)
-
國(guó)防部新聞發(fā)言人就蔡英文“過(guò)境”竄美發(fā)表談話(huà)
-
“智慧船閘”讓秦淮河航道再煥新生
-
焦點(diǎn)資訊:北京今日上午大部地區(qū)有零星小雨,陣風(fēng)六七級(jí),最高氣溫18℃
-
焦點(diǎn)資訊:駐美國(guó)使館發(fā)言人就蔡英文竄美并會(huì)見(jiàn)美眾議長(zhǎng)麥卡錫發(fā)表談話(huà)
-
為進(jìn)小區(qū)車(chē)庫(kù)“蹭停” 男子當(dāng)街套牌“變臉”
-
十多部影片角逐清明檔,檔期只有一天票房卻近2億
-
吉林延吉:邊境小城興起咖啡熱
-
聊天、換臉、交友……小心AI利用你的感情騙錢(qián)
-
北京:“換新”可領(lǐng)補(bǔ)貼
-
智能檢測(cè)裝備產(chǎn)業(yè)發(fā)展按下“加速鍵” 北京跑出“第一棒”:焦點(diǎn)精選
-
僑胞高喊“賣(mài)國(guó)賊” 抗議蔡英文竄美見(jiàn)麥卡錫-環(huán)球訊息
-
真招實(shí)策促企業(yè)降本增效
-
當(dāng)前快訊:春日賞花體驗(yàn)古風(fēng)
-
“英雄之光”系列思政課|這個(gè)名字,為什么絕密28年? 全球百事通
-
觀(guān)點(diǎn):合力整治近視防治市場(chǎng)亂象
-
貴陽(yáng)地鐵3號(hào)線(xiàn)最新進(jìn)展!
-
中國(guó)地質(zhì)大學(xué)團(tuán)隊(duì)提出6.35億年前“雪球地球”新模型
-
全球短訊!卡塔爾亞洲杯將于明年1月12日舉行,國(guó)足位列二檔
-
清明假期“一日春游”火熱:環(huán)球今日?qǐng)?bào)
-
我國(guó)科學(xué)家研發(fā)出首例室溫氫負(fù)離子導(dǎo)體
-
世界觀(guān)察:強(qiáng)生公司擬支付89億美元解決嬰兒爽身粉涉嫌致癌索賠
-
世界視點(diǎn)!配平化學(xué)方程式題目_配平
-
李春江下狠手!王哲林61分沖擊第2個(gè)MVP,上海季后賽有望再戰(zhàn)冤家
-
用最高禮遇!盡最大努力!
-
養(yǎng)老機(jī)構(gòu)拒退押金,13名老人申請(qǐng)強(qiáng)制執(zhí)行
-
當(dāng)前頭條:美好推薦官⑨ | 奮斗歲月永不褪色,每一個(gè)犧牲都永垂不朽
-
定了!北京最大奧萊落戶(hù)通州,掀起千人大干熱潮,開(kāi)業(yè)時(shí)間公布|全球速讀
-
即時(shí)看!貴州旅游:推進(jìn)產(chǎn)業(yè)提質(zhì)增效 全面推動(dòng)快速?gòu)?fù)蘇
-
世界報(bào)道:這個(gè)清明,我們把大家的留言帶到了英烈墓前
-
貴州省唯一上榜的縣級(jí)公共圖書(shū)館,貴陽(yáng)市南明區(qū)圖書(shū)館榮膺“全民閱讀基地”稱(chēng)號(hào)|天天即時(shí)
-
世界觀(guān)點(diǎn):清明國(guó)內(nèi)2376.64萬(wàn)人次出游,預(yù)計(jì)旅游收入65.20億元
-
四川德陽(yáng)羅江警方通報(bào)學(xué)生寢室內(nèi)死亡:排除刑案
-
全球視訊!“索要千萬(wàn)逼死老公案”一審宣判:翟欣欣退還男方千萬(wàn)財(cái)產(chǎn)
-
今日快看!張家界七星山旅游度假區(qū)迎來(lái)香港至張家界首發(fā)團(tuán)
-
中國(guó)地質(zhì)大學(xué)團(tuán)隊(duì)提出6.35億年前“雪球地球”新模型
-
通訊!清明假期北京全市公園納客80.6萬(wàn)人次
-
碳酸鋰跌破25萬(wàn)元/噸,江西宜春部分云母提鋰企業(yè)已停產(chǎn)以挺價(jià)
-
等你參與第15屆貴州茶產(chǎn)業(yè)博覽會(huì)“尋茶問(wèn)道”精品短視頻大賽
-
2023年國(guó)網(wǎng)湖南省電力有限公司招聘390人公告|今日要聞
-
世界今日訊!以色列一大學(xué)說(shuō)研發(fā)出社交焦慮癥新療法
-
一季度接待游客107萬(wàn)人,同比2019年增長(zhǎng)5% | 黃果樹(shù)旅游區(qū)多極輻射帶動(dòng)全域發(fā)展 觀(guān)天下
-
石景山區(qū)召開(kāi)清明節(jié)期間視頻檢查調(diào)度會(huì)議
-
浦發(fā)銀行信用卡分期怎么提前還款 浦發(fā)銀行信用卡分期提前還款流程圖
-
環(huán)球觀(guān)速訊丨閏二月不上墳?聊一聊清明的“習(xí)俗”與“禁忌”
-
每日短訊:《福布斯》年度富豪榜發(fā)布 馬斯克退居第二
-
當(dāng)前觀(guān)點(diǎn):湖南開(kāi)展“清明祭英烈”網(wǎng)絡(luò)傳播活動(dòng) 超百萬(wàn)未成年人參與祭奠
-
海葬并不等于私自把骨灰倒向大海,北京免費(fèi)海葬已排到2025年,為什么人們開(kāi)始選擇海葬?
-
全球熱門(mén):東城區(qū)文旅局推出創(chuàng)意漫游線(xiàn)路
-
每日熱聞!減配、漏水……京能電建·洺悅灣敷衍交付,業(yè)主們寒了心
-
天天精選!未來(lái)兩天,“海巡06”將持續(xù)在臺(tái)灣海峽中北部開(kāi)展巡航巡查
-
日本出現(xiàn)扇貝大規(guī)模死亡事件:約有1.8億粒,原因不明
-
中國(guó)氣象局:華南汛期已開(kāi)啟,今年入汛偏早