LangChain使用本地LLM的简单实现

所用模型:stable-code-instruct-3b-Q8_0.gguf

下载链接:bartowski/stable-code-instruct-3b-GGUF · Hugging Face

详细内容请查看:Introduction | 🦜️🔗 Langchain

目录

LangChain

代码示例


LangChain

LangChain 是一个为开发语言模型驱动应用而设计的开创性框架。它使应用程序具备以下特点:

1. 上下文感知:连接语言模型到各种上下文来源(提示指令、少量示例、内容等),使其响应具备上下文感知能力。

2. 推理能力:依赖语言模型进行推理,根据提供的上下文决定如何回答问题、采取什么行动等。

该框架由以下几个部分组成:LangChain Libraries, Langchain Templates, LangServe和LangSmith。

        LangChain Libraries:Python和JavaScript库。包含接口和集成,用于各种组件,提供基本的运行时来组合这些组件成链和代理,并提供了一些现成的链和代理的实现。

        Langchain Templates:一系列易于部署的参考架构,适用于各种任务。

        LangServe:一个用于将LangChain链部署为REST API的库。

        LangSmith:一个开发平台,让您能够调试、测试、评估和监控基于任何LLM框架构建的链,并与LangChain无缝集成。

代码示例

下面是一个利用LangChain库创建的文本生成模型的示例代码:

1.首先,从LangChain库导入所需的模块和类并使用了LlamaCpp初始化LLM模型。model path是下载的模型的路径。
from langchain_community.llms import LlamaCpp
from langchain.prompts import PromptTemplate
from langchain import LLMChain
# 初始化LLM模型
n_gpu_layers = 1  # Metal set to 1 is enough.
n_batch = 512
llm = LlamaCpp(model_path=r"stable-code-instruct-3b-Q8_0.gguf",n_gpu_layers=n_gpu_layers,n_batch=n_batch,n_ctx=2048,f16_kv=True,  # MUST set to True, otherwise you will run into problem after a couple of callsverbose=True,
)

2. 使用PromptTemplate类定义一个输入模板,用于生成文本的提示。

from langchain.prompts import PromptTemplate
prompt = PromptTemplate(input_variables=["product"],template="What is a good name for a company that makes {product}?"
)

3. 创建一个LLMChain对象,将初始化的LLM模型和定义的输入模板传入,并调用run方法来生成文本。

# 创建LLMChain
chain = LLMChain(llm=llm, prompt=prompt)# 运行模型并生成文本
output_text = chain.run("colorful socks")
print(output_text)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/783494.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

再生式收音机填坑记

年前踩坑再生式收音机,还是得找机会把坑填上,最终选定了K8TND的方案,其实与Mr. Kitchen的也基本差不多。电路图如下: 实物图如下: 实际接收效果还不错,但是感觉频段上哪哪都是中国之声,对这种…

UE4_碰撞_碰撞蓝图节点——Line Trace For Objects(对象的线条检测)

一、Line Trace For Objects(对象的线条检测):沿给定线条执行碰撞检测并返回遭遇的首个命中,这只会找到由Object types指定类型的对象。注意他与Line Trace By Channel(由通道检测线条)的区别,一个通过Obje…

React系列之合成事件与事件处理机制

文章目录 React事件处理机制原生事件的事件机制事件代理(事件委托) 合成事件使用合成事件目的合成事件原生事件区别事件池 原生事件和React事件的执行顺序e.stopPropagation() React17事件机制的修改 React事件处理机制 react 事件机制基本理解&#xf…

时序预测 | Matlab实现CPO-BP冠豪猪算法优化BP神经网络时间序列预测

时序预测 | Matlab实现CPO-BP冠豪猪算法优化BP神经网络时间序列预测 目录 时序预测 | Matlab实现CPO-BP冠豪猪算法优化BP神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现CPO-BP冠豪猪算法优化BP神经网络时间序列预测(完整源码…

Linux(CentOS7)安装软件方式(编译安装,yum,rpm)

目录 前言 安装方式 编译安装 下载 解压 安装 创建软链接 yum rpm 前言 在使用 CentOS 安装软件时,发现安装的方式有好几种,有官网下载 tar 包解压,然后自己编译安装的,也有直接通过 yum 命令一键安装的,还有…

力扣刷题Days29-第二题-70.爬楼梯(js)

只有学习,没有自己的思路解题哈哈哈 1,题目 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 2,代码 这种解法的本质是斐波那契数列 /*** param {number} n* re…

appium辅助自动化工具-- Appium studio

这里我要给大家介绍一款appium辅助自动化测试工具appium studio,你没看错,不是android studio,也不是appium android studio,就是appium studio! 下载地址: Appium Studio | Digital.ai Continuous Test…

探究ThreadLocal的魔数0x61c88647和Entry数组

探究ThreadLocal 下面有一个很重要的HASH_INCREMENT,他的值是0x61c88647 public class ThreadLocal<T> {/***ThreadLocals依赖于附加到每个线程的每线程线性探针哈希映射 (thread.threadLocals和inheritableThreadLocals)。ThreadLocal对象充当键&#xff0c;通过threa…

Visual Studio 2022 中VLD库如何安装

GitHub链接 Release v2.5.1 KindDragon/vld 点击可执行程序进行下载 点击可执行程序进行安装 双击打开 一直点击next即可完成安装&#xff08;不用在意安装路径&#xff0c;总共不到2MB&#xff09; 如果GitHub无法打开&#xff0c;可以私信我发你安装包直接安装

二维码门楼牌管理应用平台建设:实现民主参与的新途径

文章目录 前言一、二维码门楼牌管理应用平台的兴起二、投票表决功能的实现三、居民参与度的提升四、面临的挑战与前景展望 前言 在数字化时代&#xff0c;二维码技术的应用已经渗透到我们生活的方方面面。近期&#xff0c;二维码门楼牌管理应用平台的建设成为了社区治理的一大…

[flask]请求全局钩子

flask从入门到精通之钩子、异常、context、jinjia模板、过滤器 - 异步非阻塞 - 博客园 (cnblogs.com) 参考的这个博客&#xff0c;但有一个需要注意的是&#xff0c;最新版本的flask不知道是不是更新了还是怎么了&#xff0c;他的before_first_request不见了&#xff0c;如果继…

Linux非root用户安装mysql5.7

1、下载安装包MySQL :: Download MySQL Community Server 点击Archives 我下载的是5.7.27版本&#xff0c;linux主机直接选择linux-Generic即可&#xff0c;选择第一个包下载即可 2、安装mysql 解压 shell> tar xzvf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz shell&g…

抽象类和接口的简单认识

目录 一、抽象类 1.什么是抽象类 2.抽象类的注意事项 3.抽象类与普通类的对比 二、接口 1.接口的简单使用 2.接口的特性 3.接口的使用案例 4.接口和抽象类的异同 一、抽象类 所谓抽象类&#xff0c;就是更加抽象的类&#xff0c;也就是说&#xff0c;这个类不能具体描…

NFC RC522开发记录

文章目录 一、ID卡、IC卡(M1卡、CPU卡)的区别二、RC522读写操作1. 数据读写流程三、RC522驱动代码1. RC522 与 STM32 的接线图2. RC522.c3. RC522.h4. main.c一、ID卡、IC卡(M1卡、CPU卡)的区别 ID卡 :只存储了ID号,设备识别ID号,没有算法可言,容易复制,安全性低IC卡包含了…

机器学习——最优化模型

最优化模型的概述&#xff1a; 从某种程度上说&#xff0c;我们的世界是由最优化问题组成的。每一天&#xff0c;我们的生活都面临无数的最优化问题&#xff1a;上班怎么选择乘车路线&#xff0c;才能舒服又快速地到达公司&#xff1b;旅游如何选择航班和宾馆&#xff0c;既省…

不可变集合及Stream流

若希望某个数据是不可修改的&#xff0c;就可以考虑使用不可变集合&#xff0c;以提高安全性&#xff1b;&#xff08;JKD9之后才有&#xff09; List不可变集合&#xff1a; public static void main(String[] args) {/*创建不可变的List集合"张三", "李四&q…

conda 创建 python3.10.12 环境

conda 创建 python3.10.12 环境 介绍使用前置条件&#xff1a;安装 conda配置环境变量验证 Conda 安装结果创建环境&#xff1a;python激活 Anaconda 环境 验证 Python 版本。 介绍 Conda是一个开源的包管理和环境管理系统&#xff0c;由Continuum Analytics公司开发。它可以安…

批量爬取招聘网站【Boss直聘】上工作岗位的招聘信息

不管是学生还是工作的小伙伴&#xff0c;估计都对不同岗位工作几年的薪酬水平比较感兴趣。本文提供爬取招聘网站&#xff0c;获取某类工作招聘信息的实现逻辑和代码。具体的实施步骤是&#xff1a;明确爬取的招聘网站—确定爬取的工作城市—确定爬取的岗位—获取岗位的招聘子链…

Sy6 编辑器vi的应用(+shell脚本3例子)

实验环境&#xff1a; 宿主机为win11&#xff0c;网络&#xff1a;10.255.50.5 6389 WSL2 ubuntu 目标机的OS&#xff1a;Ubuntu 内核、版本如下&#xff1a; linuxpeggy0223:/$ uname -r 5.15.146.1-microsoft-standard-WSL2 linuxpeggy0223:/$ cat /proc/version Linux vers…

【3DsMax+Pt】练习案例

目录 一、在3DsMax中展UV 二、在Substance 3D Painter中绘制贴图 一、在3DsMax中展UV 1. 首先创建如下模型 2. 选中如下三条边线作为接缝 重置剥 发现如下部分还没有展开 再选一条边作为接缝 再次拨开 拨开后的UV如下 二、在Substance 3D Painter中绘制贴图 1. 新建项目&am…