最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Langchain開發(fā)環(huán)境部署及使用本地模型詳解

 更新時(shí)間:2025年12月30日 08:43:10   作者:pingchuan3014  
LangChain是AI工程框架,擴(kuò)展和補(bǔ)充LLM能力,文章介紹了如何安裝環(huán)境、使用本地模型以及如何在LangChain中進(jìn)行推理

作為AI工程框架,LangChain實(shí)際是對(duì)LLM能力的擴(kuò)展和補(bǔ)充。

如果把LLM比作人的大腦,LangChain則是人的軀干和四肢,協(xié)助LLM完成“思考”之外的“臟活累活”。

一、安裝環(huán)境

1、創(chuàng)建并激活虛擬環(huán)境

創(chuàng)建名為 myLC 的虛擬環(huán)境

python -m venv myLC

激活虛擬環(huán)境

cd C:\Users\amdin
myLC\Scripts\activate

也可采用conda做虛擬環(huán)境管理

2、安裝核心庫

  • langchain (核心)
  • langchain-openai (與OpenAI模型交互)
  • langchain-core: 包含所有核心抽象和運(yùn)行時(shí)邏輯(如 LLM, Chain, Runnable 等)
  • langchain-community (社區(qū)維護(hù)的集成)
pip install langchain langchain-openai langchain-core langchain-community -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple

3、安裝常用依賴

  • tiktoken: OpenAI 用于計(jì)算文本 token 數(shù)量的工具。
  • chromadb: 一個(gè)開源的向量數(shù)據(jù)庫,用于存儲(chǔ)文檔嵌入向量。
  • faiss-cpu: Facebook AI 開發(fā)的高效向量相似度搜索庫。
  • python-dotenv: 用于從 .env 文件中加載環(huán)境變量 (如 API 密鑰)。
pip install tiktoken chromadb faiss-cpu python-dotenv -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple

4、驗(yàn)證開發(fā)環(huán)境

編寫并執(zhí)行test.py文件

import sys
import langchain
import openai

# 打印已安裝庫的版本
print(f"LangChain version: {langchain.__version__}")
print(f"OpenAI version: {openai.__version__}")

# 打印 Python 解釋器版本
print(f"Python version: {sys.version}")

二、如何在 LangChain 中使用本地模型?

ChatOpenAI 這個(gè)類是專門為 OpenAI 官方 API 設(shè)計(jì)的集成。

它的工作原理是:

封裝 API 請(qǐng)求:當(dāng)你調(diào)用 chat_model.invoke(…) 時(shí),ChatOpenAI 類會(huì)將你的輸入(如問題、消息列表)格式化成符合 OpenAI API 規(guī)范的 JSON 數(shù)據(jù)。

發(fā)送網(wǎng)絡(luò)請(qǐng)求:它通過網(wǎng)絡(luò)將這個(gè) JSON 數(shù)據(jù)發(fā)送到 OpenAI 的服務(wù)器。

接收并解析響應(yīng):OpenAI 的服務(wù)器在其強(qiáng)大的 GPU 集群上運(yùn)行模型,生成回答后,將結(jié)果以 JSON 格式返回。ChatOpenAI 類接收這個(gè)響應(yīng),并將其解析成 LangChain 內(nèi)部的數(shù)據(jù)結(jié)構(gòu)(如 AIMessage)。

關(guān)鍵點(diǎn)在于:ChatOpenAI 是一個(gè) “客戶端” 或 “API 封裝器”,它本身不包含任何模型的計(jì)算邏輯,所有的計(jì)算都發(fā)生在 OpenAI 的遠(yuǎn)程服務(wù)器上。 因此,它無法加載和執(zhí)行你本地的模型文件。

那么如何在 LangChain 中使用本地模型?

要在 LangChain 中使用本地模型,你需要使用 LangChain 為本地模型推理框架提供的集成。

這些框架負(fù)責(zé)在你的本地機(jī)器(CPU 或 GPU)上加載和運(yùn)行模型,而 LangChain 則提供一個(gè)統(tǒng)一的接口來調(diào)用它們。

1、使用vllm部署本地模型

#使用本機(jī)的18000端口,–model執(zhí)行本地模型路徑,–served-model-name為模型別名,方便后續(xù)langchain指定

python -m vllm.entrypoints.openai.api_server --model modelpath --host 0.0.0.0 --port 18000 --served-model-name deepseek-r1-local

注:也可以使用ollma或者其它方式部署本地模型。

2、使用langchain進(jìn)行推理

編寫測(cè)試文件test_langchain.py

from langchain_openai import ChatOpenAI
# --- core cfg ---
# User ChatOpenAI Class obj,and configure it to point to DeepSeek's API
# 1. model_name:  DeepSeek model name,
# 2. openai_api_base: DeepSeek API point,default is https://api.deepseek.com
# 3. openai_api_key: local mode need to set it to "none"
# 4. max_tokens: max token num
llm = ChatOpenAI(    
model_name="deepseek-r1-localg",      
openai_api_base="http://127.0.0.1:18000/v1/",    
openai_api_key="none",      
max_tokens=1024,    
temperature=0.7
)
try:    
print("Calling local DeepSeek-R1 model...")    
response = llm.invoke("who are you ? and explain how you differ from OpenAI's GPT model?")        
print("\n--- Local DeepSeek-R1 answer ---")    
print(response.content)    
print("------------------------")
except Exception as e:    
print(f"Error: {e}")

執(zhí)行test_langchain.py,即可看到終端打印的輸出內(nèi)容,至此langchain調(diào)用本地模型的開發(fā)環(huán)境準(zhǔn)備完畢。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 淺談?dòng)肞ython實(shí)現(xiàn)一個(gè)大數(shù)據(jù)搜索引擎

    淺談?dòng)肞ython實(shí)現(xiàn)一個(gè)大數(shù)據(jù)搜索引擎

    這篇文章主要介紹了淺談?dòng)肞ython實(shí)現(xiàn)一個(gè)大數(shù)據(jù)搜索引擎,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-11-11
  • Python編寫春聯(lián)的示例代碼(支持行書隸書楷書)

    Python編寫春聯(lián)的示例代碼(支持行書隸書楷書)

    這篇文章主要介紹了如何通過Python代碼編寫春聯(lián),其中春聯(lián)字體支持行書隸書楷書。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以動(dòng)手試一試
    2022-01-01
  • python爬蟲之快速對(duì)js內(nèi)容進(jìn)行破解

    python爬蟲之快速對(duì)js內(nèi)容進(jìn)行破解

    這篇文章主要介紹了python爬蟲之快速對(duì)js內(nèi)容進(jìn)行破解,到一般js破解有兩種方法,一種是用Python重寫js邏輯,一種是利用第三方庫來調(diào)用js內(nèi)容獲取結(jié)果,這次我們就用第三方庫來進(jìn)行js破解,需要的朋友可以參考下
    2019-07-07
  • Python中多線程任務(wù)隊(duì)列中的常見錯(cuò)誤與解決方案

    Python中多線程任務(wù)隊(duì)列中的常見錯(cuò)誤與解決方案

    在使用Python開發(fā)多線程任務(wù)隊(duì)列時(shí),經(jīng)常會(huì)遇到各種錯(cuò)誤,本文基于實(shí)際開發(fā)案例,分析三個(gè)典型錯(cuò)誤,并提供詳細(xì)的解決方案,有需要的小伙伴可以了解下
    2025-05-05
  • pymongo如何通過oplog獲取數(shù)據(jù)(mongodb)

    pymongo如何通過oplog獲取數(shù)據(jù)(mongodb)

    使用MongoDB的oplog(操作日志)進(jìn)行數(shù)據(jù)同步是高級(jí)的用法,主要用于復(fù)制和故障恢復(fù),這篇文章主要介紹了pymongo通過oplog獲取數(shù)據(jù)(mongodb),需要的朋友可以參考下
    2023-09-09
  • 基于Python實(shí)現(xiàn)PDF區(qū)域文本提取工具

    基于Python實(shí)現(xiàn)PDF區(qū)域文本提取工具

    這篇文章主要為大家介紹了如何通過Python實(shí)現(xiàn)一個(gè)非常精簡(jiǎn)的圖像化的PDF區(qū)域選擇提取工具,文中示例代碼講解詳細(xì),感興趣的小伙伴可以學(xué)習(xí)一下
    2021-12-12
  • 徹底搞懂python 迭代器和生成器

    徹底搞懂python 迭代器和生成器

    這篇文章主要介紹了python 迭代器和生成器的相關(guān)資料,文中講解非常細(xì)致,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-09-09
  • python 實(shí)現(xiàn)目錄復(fù)制的三種小結(jié)

    python 實(shí)現(xiàn)目錄復(fù)制的三種小結(jié)

    今天小編就為大家分享一篇python 實(shí)現(xiàn)目錄復(fù)制的三種小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python能自學(xué)嗎

    python能自學(xué)嗎

    在本篇文章里小編給大家整理了關(guān)于python如何自學(xué)的相關(guān)理論性文章,有需要的朋友們可以參考下。
    2020-06-06
  • pytorch構(gòu)建多模型實(shí)例

    pytorch構(gòu)建多模型實(shí)例

    今天小編就為大家分享一篇pytorch構(gòu)建多模型實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01

最新評(píng)論

班戈县| 石屏县| 辽宁省| 定襄县| 溆浦县| 普安县| 正宁县| 留坝县| 环江| 汉源县| 扎鲁特旗| 马山县| 濮阳县| 蓝田县| 贵州省| 临夏县| 赤峰市| 连云港市| 深州市| 新昌县| 织金县| 天峨县| 遂川县| 天镇县| 上高县| 平原县| 安新县| 辰溪县| 清水河县| 民和| 汉中市| 奇台县| 乾安县| 达州市| 武川县| 古交市| 扎兰屯市| 育儿| 安图县| 连平县| 沐川县|