使用langchain連接llama.cpp部署的本地deepseek大模型開發簡單的LLM應用

langchain是一個基于python實現的開源LLM開發框架,llama.cpp是一個基于C++框架可以在本地部署大模型并開放服務端接口開放給外部應用使用。

本文結合langchain和llama.cpp,在本地部署輕量級的deepseek大模型,并構建一個簡單的鏈式LLM應用,實現輸入問題、回答問題、解析文本。

llama.cpp部署大模型

在huggingface或者modelscope下載模型文件,要求是gguf格式,支持llama.cpp本地加載,這里下載的是一個小尺寸的deepseek模型DeepSeek-R1-Distill-Qwen-1.5B-Q2_K.gguf,放在本地model文件夾。

在github下載對應自己操作系統的llama.cpp的預編譯版本包,解壓后帶有bin目錄,在里面找到llama-server命令行程序。
請添加圖片描述

執行命令行啟動模型服務:

./llama-server -m path/to/model/DeepSeek-R1-Distill-Qwen-1.5B-Q2_K.gguf

啟動成功后,llama.cpp加載的deepseek大模型服務默認監聽在8080端口,可以打開網頁http://localhost:8080/進行聊天驗證。
請添加圖片描述

langchain編寫LLM應用

在python里安裝依賴包:

pip install langchain
pip install langchain-openai

因為llama.cpp大模型服務對外開放了OpenAI風格的api,此處可以使用OpenAI的接口連接本地大模型服務進行交互

代碼

from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage, SystemMessage
from langchain_core.output_parsers import StrOutputParser# connect remote llama.cpp model server to init model
model = ChatOpenAI(model="my_model", base_url="http://127.0.0.1:8080/v1", api_key="EMPTY")
model# create parser and make a chain
parser = StrOutputParser()
chain = model | parser
chain# input message
messages = [HumanMessage(content="北京的旅游景點有哪些")
]
messages# use chain to generate result
response = chain.invoke(messages)
print(response)

輸出

<think>
嗯,用戶問北京的旅游景點有哪些。首先,我得回想一下北京有哪些著名的旅游景點。我記得有大興門、天安門、人民公園這些,不過可能還有其他景點,比如天安門、八達門、天山、四合院什么的。然后,我還需要考慮一些比較小的景點,比如小湯圓的地點,或者一些特色景點。接下來,我需要列出這些景點并給出一些推薦。比如大興門適合喜歡自然風光和歷史的游客,天安門適合喜歡歷史和文化的人,人民公園適合喜歡休閑的游客。小湯圓、古街巷這些可能會吸引喜歡美食的游客,還有小山公園、和平公園這些適合喜歡自然和歷史的游客。然后,我還需要考慮用戶的需求,可能他們想去旅游,喜歡自然、歷史、美食,或者喜歡休閑。因此,我需要針對不同的用戶需求提供不同的建議。例如,喜歡自然的游客,可以選擇大興門和天山;喜歡歷史的游客,可以選擇八達門;喜歡美食的游客,推薦小湯圓;喜歡休閑的游客,可以選擇人民公園。最后,我需要整理這些信息,確保涵蓋各個方面,并給出詳細的建議,讓用戶可以根據自己的需求選擇合適的景點。
</think>北京的旅游景點眾多,涵蓋了自然、歷史、美食、休閑等多種體驗。以下是一些常見的旅游景點推薦:1. **大興門**:位于北京市 central, 是北京市區的主要景點,適合喜歡自然風光、歷史文化和環境的游客。2. **天安門**:位于北京市 capital, 是北京市的主要景點,適合喜歡歷史、文化、自然和休閑的游客。3. **人民公園**:位于北京市 capital, 是北京市的主要景點,適合喜歡休閑、自然和歷史的游客。4. **八達門**:位于北京市 capital, 是北京的標志性景點,適合喜歡歷史、自然和休閑的游客。5. **小湯圓**:位于小湯圓的遺址遺址,適合喜歡美食的游客。6. **古街巷**:包括古街和古巷,是北京歷史景點,適合喜歡歷史、自然和休閑的游客。7. **小山公園**:位于小山,是北京市的著名景點,適合喜歡自然、歷史和休閑的游客。8. **和平公園**:位于北京市 capital, 是北京市的著名景點,適合喜歡自然、歷史和休閑的游客。9. **小山公園**:位于小山,是北京市的著名景點,適合喜歡自然、歷史和休閑的游客。10. **四合院**:位于四合院,是北京的著名景點,適合喜歡歷史和自然的游客。11. **天山**:位于天山,是北京的著名景點,適合喜歡自然和歷史的游客。12. **小湯圓**:位于小湯圓的遺址遺址,適合喜歡美食的游客。13. **古街巷**:包括古街和古巷,是北京歷史景點,適合喜歡歷史、自然和休閑的游客。14. **小湯圓**:位于小湯圓的遺址遺址,適合喜歡美食的游客。15. **古街巷**:包括古街和古巷,是北京歷史景點,適合喜歡歷史、自然和休閑的游客。

可以看到結合langchain和llama.cpp構建出了一個鏈式LLM應用,根據指定的輸入和流程,經過大模型的智能問答結果解析文本生成輸出。(請忽略小尺寸智障AI的回答結果,只是為了演示)

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

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

相關文章

Serverless 數據庫來了?無服務器數據庫 vs 傳統數據庫有何不同?

隨著云計算技術的迅猛發展&#xff0c;無服務器&#xff08;Serverless&#xff09;架構逐漸成為一種主流趨勢。其中&#xff0c;Serverless 數據庫作為云原生應用的重要組成部分&#xff0c;為開發者提供了前所未有的靈活性和成本效益。相比傳統的數據庫管理方式&#xff0c;S…

【讀書筆記】如何畫好架構圖:架構思維的三大底層邏輯

【讀書筆記】如何畫好架構圖&#xff1a;架構思維的三大底層邏輯 架構圖并非技術人的“畫功比拼”&#xff0c;而是一個團隊、一個系統、一次項目從混沌走向清晰的關鍵抓手。它是系統的視覺語言&#xff0c;是讓技術人員、產品經理、運營甚至老板都能站在統一上下文下討論的“…

Maven 編譯過程中發生了 Java Heap Space 內存溢出(OutOfMemoryError)

這個是我最近遇到的&#xff0c;因為本人最近換了電腦&#xff0c;這個電腦的前任是配置好了環境&#xff0c;但是當我用這個環境去做另外一個項目的時候&#xff0c;在maven構建war和jar包的時候&#xff0c;報了這個內存溢出mvn clean install 就給我報錯了[ERROR] Failed to…

C++ 模板參數展開

C 模板參數展開一、獲取可變參數大小二、通過模版循環繼承的方式來展開可變參數三、改用Using去實現循環繼承一、獲取可變參數大小 背景&#xff1a; FLen<int, char, long> Len; 我想要獲取模板參數類型的總大小 template<typename T,typename ...ParamTypes> c…

零基礎入門物聯網-遠程門禁開關:云平臺創建

一、 onenet云平臺注冊創建 遠程開關的信息傳輸依賴云平臺&#xff0c;本教程以 OneNET - 中國移動物聯網開放平臺為例進行操作&#xff0c;具體步驟如下&#xff1a; 1、平臺賬號創建 點擊 OneNET - 中國移動物聯網開放平臺進入官網 點擊頁面中的 “登錄” 按鈕&#xff0c;…

html頁面,當鼠標移開A字標就隱藏顏色框

html頁面代碼&#xff1a;<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><title>顏色選擇器</title><style>body {font-family: "Microsoft YaHei", sans-serif;padding: 20px;}.c…

保姆級搭建harbor私有倉庫與docker-ce教程與使用教程

搭建harbor倉庫[rootharbor ~]# vim cat /etc/host192.168.121.12 harbor[rootharbor ~]# vim /etc/hostnameharbor導入 harbor 項目鏡像[rootharbor ~]# tar -zxf harbor-v2.9.2.tgz -C /usr/local/[rootharbor ~]# cd /usr/local/harbor[rootharbor harbor]# docker load -i…

【Linux】Rocky Linux 安裝 Docker 與 Docker-Compose

Docker 安裝步驟 1. 安裝必要的軟件包 sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo2. 安裝Docker sudo yum install docker-ce docker-ce-cli containerd.io如果出現 SSL 證書錯誤&#xf…

揭示獨特模式:Elasticsearch 中 significant terms 聚合指南

作者&#xff1a;來自 Elastic Alexander Dvila 了解如何使用 significant terms 聚合來發現你數據中的洞察。 更多閱讀&#xff1a;Elasticsearch&#xff1a;significant terms aggregation Elasticsearch 擁有大量新功能&#xff0c;可以幫助你為你的使用場景構建最佳搜索解…

pandas.DataFrame中axis參數

明確axis0與axis1的區別和聯系&#xff0c; 假設有一個 DataFrame&#xff1a;indexAB012134axis0&#xff08;沿行方向&#xff09;&#xff1a; 操作會垂直向下進行&#xff0c;對每一列單獨處理。 例如&#xff1a;df.sum(axis0) 會對列 A 和列 B 分別求和&#xff0c;結果是…

深度學習 最簡單的神經網絡 線性回歸網絡

用最簡單的線性模型講清 神經網絡 訓練全流程,讓你 5 分鐘看懂AI 是怎么學會預測的 ?? 1 真實神經元結構 ?? 真實神經元包括: 樹突 接收其他神經元傳來的電信號(輸入)。 細胞核 負責整合輸入信號并產生動作電位。 軸突 傳導動作電位到下一個神經元。 突觸 釋放神經遞質…

k8s Mutating Admission Webhook 實現超賣

目錄 1.什么是 Mutating Admission Webhook&#xff1f; 2.如何用 Mutating Admission Webhook 實現超賣&#xff1f; 3.實現超賣 3.1 理解目標 3.2 前置準備 3.3 開發 Mutating Webhook 3.4 配置 Webhook Server TLS 認證 3.5 注冊 MutatingWebhookConfiguration 3.6…

為 Go-llm-cpp 接入 Web API 接口,創建 Chatbot 聊天機器人

接續上一篇&#xff0c;用 Go 打造本地 LLM 聊天機器人&#xff1a;整合 llm-go 與 go-llama.cpp&#xff0c;此篇開始建構前端與 API 接口 執行環境需求 ? ? Go 1.20 ? ? C toolchain&#xff08;macOS: Xcode Command Line Tools / Linux: g&#xff09; ? ? GGUF 格式…

Docker筆記-Docker Compose

Docker筆記-Docker Compose Compose 是用于定義和運行多容器 Docker 應用程序的工具&#xff0c;通過 Compose 您可以使用 YML 文件來配置應用 程序需要的所有服務。然后&#xff0c;使用一個命令&#xff0c;就可以從 YML 文件配置中創建并啟動所有服務。 Compose 使用的三個步…

n1 armbian 安裝桌面環境并啟用xrdp遠程登錄

armbian-config armbian-software201frpcrootarmbian:~# armbian-software [ STEPS ] Start selecting software [ Current system: ubuntu/noble ]... ──────────────────────────────────────────────────────────…

從傳統到智能:地質災害風險評估、易發性分析與災后重建;AI大語言模型DeepSeek、ChatGPT、GIS、Python和機器學習深度融合

地質災害是指全球地殼自然地質演化過程中&#xff0c;由于地球內動力、外動力或者人為地質動力作用下導致的自然地質和人類的自然災害突發事件。在降水、地震等自然誘因的作用下&#xff0c;地質災害在全球范圍內頻繁發生。我國不僅常見滑坡災害&#xff0c;還包括崩塌、泥石流…

便捷的電腦自動關機輔助工具

軟件介紹 本文介紹的軟件是一款電腦上實用的倒計時和關機助手。 軟件特性 這款關機助手十分貼心&#xff0c;它是一款無需安裝的小軟件&#xff0c;體積僅60KB&#xff0c;不用擔心占用電腦空間&#xff0c;打開即可直接使用。 操作方法 你只需設置好對應的關機時間&#x…

Fiddler-關于抓取Android手機包,安裝證書后頁面加載失敗,提示當前證書不可信存在安全風險的問題

Fiddler-關于抓取Android手機包&#xff0c;安裝證書后頁面加載失敗&#xff0c;提示當前證書不可信存在安全風險的問題Fiddler-關于抓取Android手機包&#xff0c;安裝證書后頁面加載失敗&#xff0c;提示當前證書不可信存在安全風險的問題原因解決方法Fiddler-關于抓取Androi…

Apache Spark 4.0:將大數據分析提升到新的水平

Apache Spark 4.0 帶來了 PySpark 畫圖、多態 UDTF、改進的 SQL 腳本和 Python API 更新&#xff0c;以增強實時分析和可用性。 Apache Spark 4.0 于 2025 年發布&#xff0c;它通過增強性能、可訪問性和開發者生產力的創新&#xff0c;重新定義了大數據處理。在 Databricks、A…

手機解壓軟件 7z:高效便捷的解壓縮利器

在當今數字化時代&#xff0c;手機已經成為人們生活和工作中不可或缺的工具。隨著文件傳輸和存儲需求的不斷增加&#xff0c;7z 文件格式因其高效的壓縮比而備受青睞。在手機上處理 7z 文件變得越來越重要&#xff0c;合適的解壓軟件能帶來諸多便利。首先&#xff0c;7z 文件格…