LangChain 22 LangServe用于一鍵部署LangChain應用程序

LangChain系列文章

  1. LangChain 實現給動物取名字,
  2. LangChain 2模塊化prompt template并用streamlit生成網站 實現給動物取名字
  3. LangChain 3使用Agent訪問Wikipedia和llm-math計算狗的平均年齡
  4. LangChain 4用向量數據庫Faiss存儲,讀取YouTube的視頻文本搜索Indexes for information retrieve
  5. LangChain 5易速鮮花內部問答系統
  6. LangChain 6根據圖片生成推廣文案HuggingFace中的image-caption模型
  7. LangChain 7 文本模型TextLangChain和聊天模型ChatLangChain
  8. LangChain 8 模型Model I/O:輸入提示、調用模型、解析輸出
  9. LangChain 9 模型Model I/O 聊天提示詞ChatPromptTemplate, 少量樣本提示詞FewShotPrompt
  10. LangChain 10思維鏈Chain of Thought一步一步的思考 think step by step
  11. LangChain 11實現思維樹Implementing the Tree of Thoughts in LangChain’s Chain
  12. LangChain 12調用模型HuggingFace中的Llama2和Google Flan t5
  13. LangChain 13輸出解析Output Parsers 自動修復解析器
  14. LangChain 14 SequencialChain鏈接不同的組件
  15. LangChain 15根據問題自動路由Router Chain確定用戶的意圖
  16. LangChain 16 通過Memory記住歷史對話的內容
  17. LangChain 17 LangSmith調試、測試、評估和監視基于任何LLM框架構建的鏈和智能代理
  18. LangChain 18 LangSmith監控評估Agent并創建對應的數據庫
  19. LangChain 19 Agents Reason+Action自定義agent處理OpenAI的計算缺陷
  20. LangChain 20 Agents調用google搜索API搜索市場價格 Reason Action:在語言模型中協同推理和行動
  21. LangChain 21 Agents自問自答與搜索 Self-ask with search
    在這里插入圖片描述

1. 概述

LangServe幫助開發人員將LangChain可運行程序和Chains部署為REST API。

該庫集成了FastAPI,并使用pydantic進行數據驗證。

此外,它提供了一個客戶端,可用于調用部署在服務器上的可運行程序。 LangChainJS中提供了一個JavaScript客戶端。

2. Features特點

  • 從您的LangChain對象自動推斷輸入和輸出模式,并在每次API調用中執行,并提供豐富的錯誤消息
  • API文檔頁面包含JSONSchema和Swagger(插入示例鏈接)
  • 高效的/invoke//batch//stream/端點,支持單個服務器上的許多并發請求
  • /stream_log/端點,用于流式傳輸鏈/代理的所有(或部分)中間步驟
  • /playground/上的游樂場頁面,具有流式輸出和中間步驟
  • 內置(可選)跟蹤到LangSmith,只需添加您的API密鑰(請參見說明)
  • 所有都是使用經過實戰考驗的開源Python庫構建,如FastAPI,Pydantic,uvloop和asyncio。
  • 使用客戶端SDK調用LangServe服務器,就像它是在本地運行的Runnable一樣(或直接調用HTTP API)
  • LangServe Hub

3. 限制

  • 目前還不支持在服務器上發生的事件的客戶端回調
  • 當使用Pydantic V2時,將不會生成OpenAPI文檔。Fast API不支持混合使用pydantic v1和v2命名空間。有關更多詳細信息,請參見下文。

4. 托管版的LangServ

我們將發布托管版的LangServe,用于一鍵部署LangChain應用程序。在這里注冊以加入等待名單。

5. 安全漏洞

版本0.0.13 - 0.0.15存在安全漏洞——游樂場端點允許訪問服務器上的任意文件。在版本0.0.16中已解決。

6. 安裝

對于客戶端和服務器:

pip install "langserve[all]"

或者使用pip install "langserve[client]"安裝客戶端代碼,使用pip install "langserve[server]"安裝服務器端代碼。

7. LangChain CLI 🛠?

使用LangChain CLI快速引導LangServe項目。

要使用langchain CLI,請確保已安裝最新版本的langchain-cli。您可以使用pip install -U langchain-cli進行安裝。

langchain app new ../path/to/directory

8. LangChain模板

LangChain模板是構建生產就緒的LLM應用程序的最簡單和最快速的方法。這些模板作為各種流行的LLM用例的參考架構集。它們都采用標準格式,使得使用LangServe部署它們變得很容易。

🚩 我們將發布LangServe的托管版本,以一鍵式部署LangChain應用程序。在此處注冊以加入等待列表。

9. 快速開始

要使用,首先安裝LangChain命令行界面。

pip install -U langchain-cli

接下來,創建一個新的LangChain項目:

langchain app new my-app

這將創建一個名為my-app的新目錄,其中包含兩個文件夾:
在這里插入圖片描述

  • app:這是LangServe代碼的存放位置
  • packages:這是您的鏈或代理的存放位置

要將現有模板作為包引入,首先需要進入您的新項目:

cd my-app

你可以把一個模板添加為一個項目。在這個入門指南中,我們將添加一個簡單的海盜語言項目。這個項目的作用是將用戶輸入轉換成海盜語言。

langchain app add pirate-speak

這將在packages/pirate-speak中引入指定的模板

然后會提示您是否要安裝它。這相當于運行pip install -e packages/pirate-speak。通常應該接受這一點(或者之后運行相同的命令)。我們使用-e安裝它,這樣如果您修改模板(您很可能會這樣做),更改將會更新。

之后,它會問您是否要為此項目生成路由代碼。這是您需要添加到您的應用程序中以開始使用此鏈的代碼。如果我們接受,我們將看到生成以下代碼:

from pirate_speak.chain import chain as pirate_speak_chainadd_routes(app, pirate_speak_chain, path="/pirate-speak")

你現在可以編輯你拉下來的模板。你可以更改package/pirate-speak的代碼文件,以使用不同的模型、不同的提示、不同的邏輯。請注意,上面的代碼片段始終期望最終鏈可導入為from pirate_speak.chain import chain,因此您應該保持包的結構足夠相似,以尊重該要求,或準備更新該代碼片段。

一旦你想做的都做完了,為了讓LangServe使用這個項目,你需要修改app/server.py。具體來說,你應該將上面的代碼片段添加到app/server.py中,以便該文件看起來像:

from fastapi import FastAPI
from langserve import add_routes
from pirate_speak.chain import chain as pirate_speak_chainapp = FastAPI()add_routes(app, pirate_speak_chain, path="/pirate-speak")

(可選)現在讓我們配置 LangSmith。LangSmith 將幫助我們跟蹤、監視和調試 LangChain 應用程序。LangSmith 目前處于私人測試階段,您可以在這里注冊。如果您無法訪問,可以跳過此部分。

export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_API_KEY=<your-api-key>
export LANGCHAIN_PROJECT=<your-project>  # if not specified, defaults to "default"

對于這個特定的應用程序,我們將使用OpenAI作為LLM,所以我們需要導出我們的OpenAI API密鑰:

export OPENAI_API_KEY=sk-...

您可以通過運行以下命令,啟動生產就緒的端點以及一個playground:

langchain serve

這現在提供了一個完全部署的LangServe應用程序。例如,您可以訪問
http://127.0.0.1:8000/pirate-speak/playground/

在這里插入圖片描述
Access API documentation at http://127.0.0.1:8000/docs
在這里插入圖片描述
使用LangServe的Python或js SDK與API進行交互,就好像它是一個常規的Runnable。

from langserve import RemoteRunnableapi = RemoteRunnable("http://127.0.0.1:8000/pirate-speak")
api.invoke({"text": "hi"})

快速入門就到這里!您已成功下載了第一個模板,并使用LangServe部署了它。

代碼

https://github.com/zgpeace/pets-name-langchain/tree/develop

參考

  • https://python.langchain.com/docs/langserve
  • https://github.com/langchain-ai/langchain/blob/master/templates/README.md

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/208055.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/208055.shtml
英文地址,請注明出處:http://en.pswp.cn/news/208055.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

等待和通知

引入 由于線程是搶占式執行的,因此線程之間的執行的先后順序難以預知 但是實際開發中我們希望合理協調多個線程之間執行的先后順序. 這里的干預線程先后順序,并不是影響系統的調度策略(內核里調度線程,仍然是無序調度). 就是相當于在應用程序代碼中,讓后執行的線程主動放棄被…

3DCAT+上汽奧迪:打造新零售汽車配置器實時云渲染解決方案

在 5G、云計算等技術飛速發展的加持下&#xff0c;云渲染技術迎來了突飛猛進的發展。在這樣的背景下&#xff0c;3DCAT應運而生&#xff0c;成為了業內知名的實時云渲染服務商之一。 交互式3D實時云看車作為云渲染技術的一種使用場景&#xff0c;也逐步成為一種新的看車方式&a…

設備溫度和振動綜合監測:溫振一體式傳感器的優點和應用

隨著工業設備的復雜性和自動化程度的提高&#xff0c;對設備狀態監測的需求也日益增加。溫振一體式傳感器作為一種集振動和溫度監測于一體的傳感器&#xff0c;具備多項優勢&#xff0c;因此在工業設備狀態監測領域得到廣泛應用。 溫振一體式傳感器基于振動傳感器和溫度傳感器的…

1380 一筆畫問題

如果一個無向圖存在一筆畫&#xff0c;則一筆畫的路徑叫做歐拉路&#xff0c;如果最后又回到起點&#xff0c;那這個路徑叫做歐拉回路。 #include<bits/stdc.h> using namespace std; #define N 510 int g[N][N],d[N],c[N],n,m,reckon,oddity_point,lt; void dfs(int i)…

網絡運維與網絡安全 學習筆記2023.12.1

網絡運維與網絡安全 學習筆記 第三十二天 今日目標 ACL原理與類型、基本ACL配置、高級ACL配置 高級ACL之ICMP、高級ACL之telnet ACL原理與類型 項目背景 為了企業的業務安全&#xff0c;要求不同部門對服務器有不同的權限 PC1不能訪問Server PC2允許訪問Server 允許其他所…

java中用Thead創建線程和用Runnable創建線程的區別是什么?

在 Java 中&#xff0c;創建線程的兩種主要方式是通過繼承 Thread 類和通過實現 Runnable 接口。下面是它們之間的主要區別&#xff1a; 1. 繼承 Thread 類&#xff1a; class MyThread extends Thread {public void run() {// 線程執行的代碼} }// 創建并啟動線程 MyThread …

043:vue項目一直出現 sockjs-node/info?t=XX的解決辦法

第043個 查看專欄目錄: VUE ------ element UI 專欄目標 在vue和element UI聯合技術棧的操控下&#xff0c;本專欄提供行之有效的源代碼示例和信息點介紹&#xff0c;做到靈活運用。 &#xff08;1&#xff09;提供vue2的一些基本操作&#xff1a;安裝、引用&#xff0c;模板使…

Linux文件系統與基礎IO

文章目錄 1 C文件接口1.1 fopen1.2 fwrite、fread、rewind、fclose 2 文件系統調用2.1 open2.1.1 參數2&#xff1a;flags2.1.2 參數3&#xff1a;mode2.1.3 返回值——file descriptor 2.2 write2.3 read2.4 close 3 文件的本質3.1 struct file3.2 一個進程如何與多個文件相關…

數據分析入門語言:選擇SQL還是Python?如何選擇你的第一門編程語言?

【關注微信公眾號&#xff1a;跟強哥學SQL&#xff0c;回復“筆試”免費領取大廠SQL筆試題。】 如今數據爆炸的時代&#xff0c;掌握一門數據分析的編程語言變得愈發重要。 而隨著SQL和Python在數據分析領域的持續火熱&#xff0c;許多初學者面臨著一個共同的問題&#xff1a;…

Python 日志指南

目錄 日志指南 日志基礎教程 什么時候使用日志 一個簡單的例子 記錄日志到文件 從多個模塊記錄日志 記錄變量數據 更改顯示消息的格式 在消息中顯示日期/時間 后續步驟 進階日志教程 記錄流程 記錄器 處理器 格式器 配置日志記錄 如果沒有提供配置會發生什么 …

QLoRA論文概述

QLORA: Efficient Finetuning of Quantized LLMs QLoRA論文概述前言&#xff08;省流版本&#xff09;摘要論文十問實驗實驗1數據集和模型實驗結論 實驗2數據集和模型實驗結論 局限性模型尺度數據集其他微調方法 QLoRA論文概述 前言&#xff08;省流版本&#xff09; 微調需要…

期末速成數據庫極簡版【查詢】(2)

目錄 select數據查詢----表 【1】篩選列 【2】where簡單查詢 【3】top-n/distinct/排序的查詢 【4】常用內置函數 常用日期函數 常用的字符串函數 【5】模糊查詢 【6】表數據操作——增/刪/改 插入 更新 刪除 【7】數據匯總 聚合 分類 ? &#x1f642;&#…

人大金倉(kingbase)數據庫常用sql命令

一. 字段 1. 添加 alter table book add column book_id varchar not null, book_title varchar(10) default ;2. 刪除 alter table book drop book_id, book_title;// 外鍵時 alter table book drop book_id, book_title cascade;3. 修改類型 alter table book alter colu…

分享十幾個適合新手練習的軟件測試項目

說實話&#xff0c;在找項目的過程中&#xff0c;我下載過&#xff08;甚至付費下載過&#xff09;N多個項目、聯系過很多項目的作者&#xff0c;但是絕大部分項目&#xff0c;在我看來&#xff0c;并不適合你拿來練習&#xff0c;它們或多或少都存在著“問題”&#xff0c;比如…

12v轉48v升壓電源芯片:參數、特點及應用領域

12v轉48v升壓電源芯片&#xff1a;參數、特點及應用領域 隨著電子設備的日益普及&#xff0c;電源芯片的需求也在不斷增長。今天我們將介紹一款具有廣泛應用前景的升壓電源芯片——12v轉48v升壓電源芯片。該芯片具有寬輸入電壓范圍、高效率、固定工作頻率等特點&#xff0c;適…

android 13.0 系統屬性控制音量鍵功能是否可用開關(屏蔽音量加減功能)

1.概述 在13.0的系統定制化開發中,要求屏蔽掉音量+ 音量-的功能,根據系統屬性來判斷是否響應音量加減的功能,在系統上層中是由PhoneWindowManage來管理音量鍵的功能, 所以就要看是PhoneWindowManage.java中怎么處理的音量鍵的功能 首選看的源碼關于音量鍵的處理 2.系統屬…

mp3的播放

1.這段vue代碼會播放聲音&#xff0c;但是會有audio標簽 <template><div><audio id"myAudio" controls><source src"./test.mp3" type"audio/mp3" />Your browser does not support the audio tag.</audio></…

ubuntu22.04安裝過程記錄

安裝雙系統ubuntu22.04 【雙系統】如何安裝ubuntu22.04系統_ubuntu安裝教程-CSDN博客 更換清華源 打開清華源官網&#xff0c;搜索對應系統版本的鏡像源碼 https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/ 原文件備份 sudo cp /etc/apt/sources.list /etc/apt/source…

庫卡LBR_iisy_3_R760協作機器人導入到coppeliasim

1.從庫卡官網xpert下載模型 一般載都是這個step文件格式&#xff0c;其他的好像不太好用。coppeliasim導入格式用的是stl,需要用freeCAD打開重新轉換一下。下載下來后&#xff0c;很多都是一個整體&#xff0c;在freeCAD導入中&#xff0c;導入選擇要不勾選合并。 下載完用CAD …

正則表達式詳細講解

目錄 一、正則表達式概念 二、八元素 1、普通字符&#xff1a; 2、元字符&#xff1a; 3、通配符 .&#xff1a; 4、字符類 []&#xff1a; 5、量詞&#xff1a; 6、錨點 ^ 和 $&#xff1a; 7、捕獲組 ()&#xff1a; 8、轉義字符 \&#xff1a; 三、日常使用的正則…