首页 > 其他分享 >Ollama + LangChain: 本地运行LLM大语言模型

Ollama + LangChain: 本地运行LLM大语言模型

时间:2024-10-17 18:00:23浏览次数:7  
标签:LLM langchain LangChain llm import Ollama

简介

在大型语言模型(LLM)领域,Ollama和LangChain已经成为开发人员和研究人员的强大工具。Ollama提供了一种无缝本地运行开源LLM的方式,而LangChain提供了将模型灵活集成到应用程序中的框架。本文将介绍如何设置和使用Ollama和LangChain,以便能够在项目中利用LLM的强大功能。

搭建Ollama

安装和配置

要使用Ollama,首先需要在系统上安装它。对于macOS用户,Homebrew简化了这个过程:

brew install ollama
brew services start ollama

安装完成并启动服务之后,Ollama会在11434端口监听http请求。可以在浏览器访问http://localhost:11434/来验证服务是否已经正常开启。下一步拉取要运行的LLM模型。我们这里使用llama3.2进行实验:

ollama pull llama3.2

这个命令将会下载llama3.2模型。

运行模型

可以直接使用命令或HTTP API和本地托管的LLM进行交互。对于命令行交互,Ollama提供了Ollama run <模型名字> 命令。对于HTTP API,可以向Ollama的API端点发送JSON请求:

curl http://localhost:11434/api/generate -d '{
 "model": "llama3.2",
 "prompt":"give me a chinese poem?"
}'

由于这种灵活性,可以将LLM无缝地集成到各种应用程序中。

将Ollama与Langchain整合集成

LangChain是一个旨在促进llm与应用程序集成的框架。它广泛支持包括Ollama在内的各种聊天模型,并为链式(chaining)操作提供了一种表达语言( LangChain Expression Language )。将Ollama和Langchain整合集成需要安装Langchain及其依赖。

可以使用下面的命令直接完成

pip install -U langchain-ollama

(官方文档在:https://python.langchain.com/docs/integrations/llms/ollama 。)

在Langchain中使用Ollama

要在LangChain应用程序中使用Ollama,首先要从langchain_community.llms package导入相应的模块:

from langchain_community.llms import Ollama

然后,初始化一个Ollama模型实例:

llm = Ollama(model="llama3.2")

现在可以调用模型来生成响应。例如:

llm.invoke("Tell me a joke")

这个代码片段演示了如何使用Ollama生成对给定提示的响应。

高级用法

from langchain_community.llms import Ollama

llm = Ollama(model="llama3.2")
llm("The first man on the summit of Mount Everest, the highest peak on Earth, was ...")

LangChain还支持更复杂的操作,比如流式响应和使用提示模板。例如,可以像下面这样对模型的响应进行流处理:

from langchain.callbacks.manager import CallbackManager
from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler

llm = Ollama(
    model="mistral", callback_manager=CallbackManager([StreamingStdOutCallbackHandler()])
)
llm("The first man on the summit of Mount Everest, the highest peak on Earth, was ...")

这种方法对于需要与LLMS实时互动的应用特别有用。

使用LangServe部署

对于生产环境,LangChain提供了LangServe。LangServer是简化应用程序运行的部署工具。可以使用LangServe部署LangChain应用程序。

LangServe是LangChain的一个开源库,它使您基于链创建API服务器的过程更容易。LangServe为核心的LangChain表达式语言方法(如invoke、batch和stream)提供远程api。

运行以下命令进行安装:

pip install "langserve[all]"
from typing import List
from fastapi import FastAPI
from langchain.llms import Ollama
from langchain.output_parsers import CommaSeparatedListOutputParser
from langchain.prompts import PromptTemplate
from langserve import add_routes
import uvicorn

llama2 = Ollama(model="llama3.2")
template = PromptTemplate.from_template("Tell me a poem about {topic}.")
chain = template | llama2 | CommaSeparatedListOutputParser()

app = FastAPI(title="LangChain", version="1.0", description="The first server ever!")
add_routes(app, chain, path="/chain")

if __name__ == "__main__":
    uvicorn.run(app, host="localhost", port=8000)

运行上面的代码

然后浏览器访问http://localhost:9001/chain/playground/

(有可能出现langchain-community缺失,可以pip install langchain-community安装)

结语

通过集成Ollama和LangChain,开发人员可以在不需要外部api的情况下利用llm的功能。这种方案不仅节省了成本,而且允许更灵活的定制。无论是构建聊天机器人、内容生成工具还是交互式应用程序,Ollama和LangChain都提供了将llm引入其中所需的工具。

标签:LLM,langchain,LangChain,llm,import,Ollama
From: https://www.cnblogs.com/taceywong/p/18472825

相关文章

  • 大模型(LLM)最新研究论文介绍(合集)
    目录\1.CTRLA:通过探针引导控制的自适应检索增强生成\2.压缩大型语言模型:使用低秩和低精度分解方法\3.通过LLM知识转移增强零样本面部表情识别\4.大型语言模型(LLMs):部署、代币经济学与可持续性\5.审视大型语言模型提示策略以自动评估学习者创建的计算成果———......
  • langchain multi modal support
    Howtopassmultimodaldatadirectlytomodelshttps://python.langchain.com/v0.2/docs/how_to/multimodal_inputs/ message=HumanMessage(content=[{"type":"text","text":"describetheweatherinthisimag......
  • UCB CS194/294-196 (LLM Agents) Lecture 4 (2024.10.1)
    预备知识英文缩写&术语英语简中补充LargeLanguageModel(LLM)大语言模型ArtificialGeneralIntelligence(AGI)通用人工智能一个远大的目标Agent智能体/代理Embody具身Multi-AgentSystem(MAS)多智能体系统Token文本分割后得到的最小语义单位Prompt提示词我们向AI提出的......
  • 代码随想录训练营第64天|bellman_ford
    47.参加科学大会#include<iostream>#include<vector>#include<list>#include<queue>#include<climits>usingnamespacestd;//小顶堆classmycomparison{public:booloperator()(constpair<int,int>&lhs,constpai......
  • 27K star!有没有显卡都能搞,Langchain-Chatchat 快速基于LLM构建本地智能知识库
    觉得搞一个AI的智能问答知识库很难吗?那是你没有找对方向和工具,今天我们分享一个开源项目,帮助你快速构建基于Langchain和LLM的本地知识库问答,在GitHub已经获得27Kstar,它就是:Langchain-Chatchat......
  • 外网爆火!仅需Python基础,即可从0构建LLM大语言模型(附PDF)
    在当今人工智能技术飞速发展的时代,大型语言模型(LLM)作为聊天机器人、文本生成和理解等应用的核心,已经成为研究和商业领域关注的焦点。但对于大多数开发者来说,它们的工作原理仍然是一个黑箱,更不用说如何从头开始构建一个这样的模型了。而《从头开始构建大型语言模型》这本书,......
  • vLLM 推理引擎性能分析基准测试
    文章目录分析步骤案例案例描述测试数据集原始数据〇轮测试(enable-64)一轮测试(enable-128)二轮测试(enable-256)三轮测试(enable-512)四轮测试(enable-2048)五轮测试(enable-4096)六轮测试(enable-8192)七轮测试(disable-256)八轮测试(disable-512)九轮测试(disable-2048)十轮测试(disable-4......
  • 使用LLaMA-Factory训练LLM大模型并用ollama调用
    环境搭建系统环境需要Nvidia显卡,至少8G显存,且专用显存与共享显存之和大于20G建议将非安装版的环境文件都放到非系统盘,方便重装或移植以Windows11为例,非安装环境文件都放在E盘下设置自定义Path文件夹创建E:\mypath文件夹,将其添加进用户环境变量Path中,之后会用CMake下载......
  • Bocha Web Search API:使用Langchain的Agent模式通过Tool Use调用博查 Search API实现L
    上篇文章介绍了国内可用的博查WebSearchAPI,详见:使用博查WebSearchAPI获取搜索引擎的网页链接和文本摘要,给AI/RAG应用增加联网搜索功能本篇讲述一下如何通过LangChain的FunctionCall方式使用它。1.安装LangChainpipinstalllangchainopenai2.获取博查......
  • LangServe如何革新LLM应用部署?
    0前言随LLM技术演进,AI应用开发部署越来越复杂。LangServe应运而生,旨在简化AI服务部署和运维的框架。专为LLM部署和管理而设计;本文旨在讲解LangServe的功能特点和实践运用。1概述LangServe提供一整套将LLM部署成产品服务的解决方案。可将LLM应用链接入常见PythonWeb框架(如Fa......