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,一经查实,立即删除!

相关文章

证券市场概述

证券市场 证券市场参与者证券发行市场(一级市场)证券发行方式(按发行对象)证券发行方式(按有无中介)证券交易市场(二级市场)证券交易所场外交易市场(店头市场、柜台市场&…

C# 系统学习(事件与委托 )

在C#中,事件是一种特殊的委托类型,用于通知其他类有某件事发生。事件允许一个类公开某些特定的行为,而订阅者可以在这些行为发生时收到通知。委托则是类型安全的函数指针,可以指向具有匹配签名的方法。 C# 中的事件声明与订阅 事…

再生式收音机填坑记

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

CSMM软件能力成熟度是什么?一文读懂!

01、CSMM是什么? CSMM是标准T/CESA 1159-2022《软件过程能力成熟度模型》(Software capability maturity model)的英文简称,是我国基于国家安全和信息安全背景下,在软件过程管理领域对标CMMI的标准,旨在替…

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;可以私信我发你安装包直接安装

MyBatis的高级特性探索

MyBatis 是一个流行的Java持久层框架&#xff0c;它提供了简单和直观的方法来处理数据库操作。相比于传统的JDBC操作&#xff0c;MyBatis通过XML或注解方式映射Java对象与数据库之间的关系&#xff0c;极大地简化了数据库编程工作。除了基本的数据映射和SQL语句执行功能&#x…

VBA批量读取txt文档目标数据并分组处理

VBA在批量处理txt等文本文件的数据是其数据处理的一大重要应用&#xff0c;实际在处理txt文档往往需要提取多个测试料的多个目标数值&#xff0c;而且还要将提取的数值进一步处理&#xff0c;如求取平均值&#xff0c;最小值等&#xff0c;能够直观地看到一组数据的规律&#x…

Java学习笔记NO.27

Java异常 异常处理在Java编程中是一项至关重要的技术&#xff0c;它有助于增强程序的稳定性和可靠性。 1.为什么需要处理异常&#xff1f; 在编写Java程序时&#xff0c;我们无法保证代码的100%正确性&#xff0c;因为各种意外情况可能会导致程序出现错误。这些意外情况包括但…

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

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

学习嵌入式系统开发学习课程有哪些

学习嵌入式系统开发需要掌握一些基础的编程知识和硬件知识&#xff0c;以下是一些常见的嵌入式系统开发学习课程和资源&#xff1a; 1. **C/C编程课程**&#xff1a;掌握好C/C编程语言是嵌入式系统开发的基础&#xff0c;可以通过在线教育平台如Coursera、Udemy、edX等搜索相关…

[flask]请求全局钩子

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

Vue2源码 —— 数据响应式实现

Vue2源码 —— 数据响应式实现 配置项 //package.json {"name": "vue","version": "1.0.0","main": "index.js","scripts": {"dev": "rollup -cw"},"author": "&…

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…