欧美日韩午夜_五月天激情综合_国产精品久久久久一区二区三区_色女人av_国产福利av_欧美日韩中

最全面又最淺顯易懂的Langchain快速上手教程(上)

2024-8-21 23:31| 發布者: 姜更生| 查看: 337| 評論: 0

本文原創,著作權歸 WGrape(https://wgrape.github.io/) 所有,未經授權,嚴禁轉載
一. 前言

隨著GPT模型的問世,大語言模型(LLM)時代已經來臨。LLM的出現,使得人工智能在語言處理方面的能力得到了極大的提升。Langchain作為一個面向后端開發者的框架,旨在幫助開發者快速上手并利用LLM開發出強大的應用程序。本教程將為您提供一份全面的指南,幫助您快速掌握Langchain的使用方法!
二. 基礎介紹

1. 什么是Langchain

Langchain是一個基于大語言模型的應用開發框架,隨著社區的快速長大,它現在已不僅僅是一個開發框架,更多的是一個LLM應用的基建工程,提供從開發到上線整個閉環流程的全程支持。



所以當提到Langchain的時候,需要知道它起初只是一個比較簡單的LLM應用開發框架,只是后來社區長大后,出現了一系列Langchain命名的項目,它們共同組成了現在的Langchain社區。
2. Langchain的核心組成

(1) 四大部分

Langchain作為一個LLM應用的基建工程,整體是非常龐大的,從底向上主要分為四個部分

  • LangChain Lib 庫 :主要包括core/community/experimental等Python庫,源碼位置 langchain-ai/langchain/libs/
  • LangChain Template 模板庫 :主要包括各種可參考和借鑒的LLM生產級別應用,源碼位置 langchain-ai/langchain/templates
  • LangServe REST服務支持 :主要用于將LLM應用部署為REST服務,源碼位置 langchain-ai/langserve
  • LangSmith 開發者平臺 :主要包括LL應用從開發、測試、部署、運維于一體的Devops平臺



(2) LangChain Lib結構

LangChain Lib從底向上主要包括LangChain-Core/LangChain-Community/LangChain(本身)三大部分

  • LangChain-Core :LangChain-Core是整個LangChain生態的抽象,比如LangChain Expression Language(LCEL)language models, document loaders, embedding models, vectorstores, retrievers等模塊的抽象,源碼位置 langchain-ai/langchain/libs/core
  • LangChain-Community :LangChain-Community是對Core層抽象的實現,比如對LangChain Expression Language(LCEL)language models, document loaders, embedding models, vectorstores, retrievers等模塊抽象的實現,源碼位置 langchain-ai/langchain/libs/community
  • LangChain :對LangChain-Community部分進行整合和適配,就構成了LangChain這個單一項目。只通過這一個LangChain項目就可以快速構建LLM應用了,它主要由LLMs and Prompts, Chains, Data Augmented Generation, Agents, Memory組成。源碼位置 langchain-ai/langchain/libs/langchain



(3) 其他部分

這里會簡單概述下LangChain Template、LangServe和LangSmith模塊的應用場景。

  • LangSmith :當一個LLM應用越來越復雜的同時,伴隨著的底層實現也越來越復雜。比如越來越多的Chain、Agent等模塊之間的調用也更加復雜化,這時Debug的關鍵性就會顯現出來,這就是LangSmith出現的原因。它雖然不是必須使用的產品,但是絕對會幫助并提高工作的效率。
3. Langchain Lib中的Langchain

在上文的《LangChain Lib結構》中已介紹了Langchain Lib主要由三層組成,所以了解這個架構設計會對后面的理解非常有幫助。無論官方提供的功能操作有多少,多”混亂“,我們也可以時刻找到正確的方向。



本文會主要講解Langchain Lib部分,所以后面提到的Langchain單詞,需要明確知道它不是指一個龐大的Langchain體系,而是特指Langchain Lib中的Langchain,或者代指整個Langchain Lib部分。
為了更簡單的理解,甚至可以把Langchain和Langchain Lib作等同的理解,二者在理解上其實沒有太大的區別。
4. 關于安裝

可以選擇使用一鍵式多環境管理sparrow服務中已經集成的Langchain環境
(1) 安裝Langchain

使用如下命令即可快速安裝Langchain。通過python -m site命令查看langchain的安裝目錄,就會發現它就是上面提到Langchain源碼 langchain-ai/langchain/libs/langchain。
pip install langchain


所以在官網中可以看到,使用下面源碼安裝的方式也可以同樣成功安裝Langchain。



(2) 安裝Langchain-Community

從上文《LangChain Lib結構》可知Langchain是對Langchain-Community的整合和適配。所以在安裝完Langchain后,會自動安裝langchain-community,如果需要單獨安裝,使用下面命令即可
pip install langchain-community(3) 安裝Langchain-Core

從上文《LangChain Lib結構》可知Langchain-Community是對Langchain-Core中抽象的具體實現。所以在安裝完Langchain后,會自動安裝langchain-core,如果需要單獨安裝,使用下面命令即可
pip install langchain-core(4) 安裝Langchain Lib的其他部分

截止2024年2月份,可以看到在Lib中有新增的一些模塊

  • experimental :實驗模塊,使用pip install langchain-experimental命令安裝
  • cli :命令行模塊,使用pip install langchain-cli命令安裝



(5) 安裝LangServe和LangSmith

LangSmith SDK模塊在安裝完Langchain后也會自動安裝,如果需要單獨安裝,請使用如下命令
pip install langsmithLangServe模塊只有在安裝完Langchain CLI后才會自動安裝(注意不是Langchain),如果需要單獨安裝,請使用如下命令
# 同時安裝客戶端和服務端pip install "langserve[all]"# 僅安裝客戶端pip install "langserve[client]"# 僅安裝服務端pip install "langserve[server]"(6) 安裝其他依賴

建議根據如下提示進行安裝
# 必須安裝pip install langchain-openai # LLM大語言模型必須使用5. 入門例子

在下面這個例子中,主要分為幾個簡單的入門例子

  • 創建LLM :使用langchain_openai包中的ChatOpenAI()創建一個LLM大語言模型對象
  • 創建Prompt :使用langchain_core包中的ChatPromptTemplate創建一個Prompt對象
  • 創建Output_parser :使用langchain_core包中的StrOutputParser()創建一個輸出處理器
  • 使用LCEL語進行鏈式調用 :使用或運算符|即可自動實現鏈式調用(基于ror魔法函數實現),如prompt | llm | output_parser
# ==================== 創建LLM并調用 ====================from langchain_openai import ChatOpenAI# 1. 使用系統配置的OPENAI_API_KEY環境變量llm = ChatOpenAI()# 2. 傳遞openai_api_key參數# llm = ChatOpenAI(openai_api_key="")print(llm.invoke("1+1=?"))# ==================== 創建一個復雜的Prompt并使用Chain鏈式調用 ====================from langchain_core.prompts import ChatPromptTemplateprompt = ChatPromptTemplate.from_messages([    ("system", "You are good at math."),    ("user", "{input}")])chain = prompt | llmprint(chain.invoke({"input": "1+1=?"}))# ==================== 創建一個StrOutputParser輸出處理器并加入到Chain中 ====================from langchain_core.output_parsers import StrOutputParseroutput_parser = StrOutputParser()chain = prompt | llm | output_parserprint(chain.invoke({"input": "1+1=?"}))暫時未完...

由于文章篇幅的限制,先告一段落。相信經過上面簡單的介紹之后,相信已經可以對Langchain有了初步的理解,下面會著重用最簡單的描述、最容易理解的圖、最直觀的代碼來深入講解Langchain。
暫時未完,請期待下篇文章 《最全面又最淺顯易懂的Langchain快速上手教程(下)》
分享到:
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

交流熱線
17501437970 周一至周日:09:00 - 21:00

創贏網-致力于幫助普通人在創業之路上披荊斬棘、走向成功的專業網站,匯聚創新智慧與成功機遇的網絡天地,是創業者開啟贏之征程的首選之地。

Powered by Discuz! X3.5 © 2023-2050 CHUANYING Team.

QQ|Archiver|手機版|小黑屋|創贏網 ( 湘ICP備17022177號-3 )

GMT+8, 2025-5-21 10:33 , Processed in 0.408467 second(s), 26 queries .

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产成人av免费看| 国产精品午夜电影| 欧美25p| 免费在线观看的av| 日韩专区在线观看| 国产精品一区二区三| 激情视频国产| 狠狠婷婷综合久久久久久| 国产a精品| 亚洲欧美韩国| 一级毛片免费看| 女人久久| 亚洲精品成人| 羞羞网站入口| 日韩久久综合| 亚洲激情社区| 91精品国产欧美一区二区成人| 欧美日韩综合视频| 亚洲一区图片| 岛国精品一区| 日韩免费在线| 亚洲网站免费| 性吧视频| 韩国理论av| www.日韩| 特黄视频| 日韩高清在线免费观看| 午夜黄色av| 亚洲精品国产福利| 国模在线| 亚洲第一区在线| 日本成人中文字幕| 亚洲视频中文字幕在线| 国产一区二区免费| 成人精品国产免费网站| 在线视频一区二区三区| 精品理论电影| 亚洲无遮挡| 久久国产精品毛片| 国产欧美日韩| 你懂的在线观看|