Langchain系列[03]聊天机器人 Chatbot
目标
我们将建立一个带有对话历史的聊天机器人。
以下是我们将要使用的一些组件:
聊天模型(Chat Models):聊天机器人的界面是基于消息传递而不是原始文本,因此它更适合使用聊天模型而不是文本型的 LLM。
提示模板(Prompt Templates):这些模板简化了组装提示的过程,可以结合默认消息、用户输入、聊天历史以及(可选的)额外检索到的上下文。
聊天历史(Chat History):聊天历史允许聊天机器人“记住”过去的交互,并在回应后续问题时考虑这些历史。
使用 LangSmith 调试和跟踪你的应用程序(非必须)。
聊天历史在[Vol][2]中,我们使用了一个 messages[]来保存和传递消息,它是这个样子
12345[ SystemMessage(content="Translate the following from English into Italian"), HumanMessage(content="hi!"), ...]
其实,随着对话的增长,我们可以把AI消息和我们自己的消 ...
Langchain系列[02]使用LCEL构建一个简单的LLM应用程序
目标今天咱们介绍一下如何使用 LangChain 构建一个简单的 LLM 应用程序。
这个应用程序能够将英文文本翻译成其他语言。
这是一个相对简单的 LLM 应用程序 —— 它仅包含一个 LLM 调用和一些提示。
今天的学习目的是初步了解下面的概念
使用语言模型 (必须)
使用 PromptTemplates 和 OutputParsers(必须)
使用 LangChain 表达式语言 (LCEL) 将组件连接在一起(必须)
使用 LangSmith 调试和跟踪您的应用程序 (不用也问题不大)
使用 LangServe 部署您的应用程序(不用也问题不大)
准备阶段我们全程使用windows + python, 其他的方法就不介绍了,同学们可以自己探索~
安装
1pip install langchain
关于 Jupyter Notebook
咱们用能跑python的编程工具就可以,用什么来跑不是很重要-。-
LangSmith
langsmith 是一个可以跟踪runnable 的工具,可以跟踪和记录复杂流程中的大部分参数,对于复杂问题分析很有帮助。在学习初期,我们可以先不使 ...
Langchain系列[01]介绍
大家好,这里是粥余。随着大模型技术的飞速发展,**langchain** 的迭代也来到了2.0 时代。按照Langchain 新的文档结构再结合之前的资料,我们重新来整理一下相关知识。
先来看下官网介绍: 传送门
前言LangChain 是一个开发由大型语言模型(LLMs)驱动的应用程序的框架。
LangChain 简化了 LLM 应用生命周期的每一个阶段:
开发:使用 LangChain 的开源 构建块 和 组件 构建您的应用程序。利用 第三方集成 和 模板 快速上手。
生产化:使用 LangSmith 来检查、监控和评估您的链,以便您可以持续优化并自信地部署。
部署:使用 LangServe 将任何链转变为 API。
具体来说,该框架包括以下开源库:
**langchain-core**:基本抽象和 LangChain 表达式语言。
**langchain-community**:第三方集成。
**langchain**:构成应用程序认知架构的链、代理和检索策略。
**langgraph**:通过将步骤建模为图中的边和节点,使用 LLMs 构建健壮且具有状态的多参与者应用 ...
操作系统杂项考点习题-软考版
操作系统作用通过资源管理,提高计算机系统效率。
改善人机界面,向用户提供友好的工作环境。
特性
并发性
共享性
异步性
进程管理概念进程:
进程是程序的一次执行
进程是一个程序及其数据在处理机上顺序执行时发生的活动
进程是具有独立功能的程序在一个数据集合上运行的过程,是系统进行资源分配和调度的独立单位
也可以这么记,进程是进程实体的一次运行,是系统进行资源分配和调度的一个独立单位
程序:
程序是一组有序指令的合集并存在某种介质上,本身不具有活动含义。
线程:
线程是进程中的一个实体,是被系统独立调用的基本单位。 线程的资源用的是进程里面的。
简单的流程图(我的灵魂手绘图):
进程控制原语:控制程序的指令段,要么不执行,要么都执行,不可分割的。
同步:直接制约,是有顺序的。
互斥:异步制约,双方都可制约。
灵界资源:一次只能供一个进程使用的资源
临界区:使用临界资源的代码片段。
信号量机制信号量:
一个整数
S>=0 表示资源的可用数
S<0 S的绝对值就是等待队列或是阻塞队列的任务书
PV操作:
P操作就是占用一个资源,S -= 1
S操作 ...
iterm2常用快捷键
Iterm2 常用快捷键
标签控制123456789新建标签:command + t关闭标签:command + w切换标签:command + 数字 command + 左右方向键切换全屏:command + enter查找:command + f
分屏控制123456789垂直分屏:command + d水平分屏:command + shift + d切换屏幕:command + option + 方向键 command + [ 或 command + ]查看历史命令:command + ;查看剪贴板历史:command + shift + h
光标操作(常用)1234567891011121314151617清除当前行(实际上是光标前全部内容):ctrl + u删除前一个字符|删除后一个字符:ctrl + h | ctrl + h按单词往前删除(推荐记忆):ctrl + w删除光标后所有内容:ctrl + k到行首(尾):ctrl + a/e光标前进后退:-> ctrl + f | <- ctrl + b上一条命令|下一条命令:ctrl + p/n可以搜索的历史命 ...
计算机组成原理部分(基础词汇扫盲+基本组成)-软考版
计算机基本组成
计算机基组成
输入设备
运算器 控制器 ==》 CPU (其实在这个阶段还有CPU+主存储器被称为主机)还有说法就是CPU其实应该分为(运算器,寄存器组,控制器,内部总线)
存储器
输出设备
其中比较值得记忆的就是运算器和控制器
运算器
模块
功能
算数逻辑单元ALU
进行算式计算和逻辑运算
累加寄存器(有的设备没有累加寄存器直接用数据缓冲寄存器替代)
存放数据运算的一个操作数或者结果如31+1=32中的32.也有可能是其中的31。因为它只能存一个。
数据缓冲寄存器
保存cpu的运算数和运算结果。这个存的多一些
状态条件寄存器
在计算机中,它主要用来保存运算过程中的状态信息,比如运算结果、运算过程中的逻辑状态等。当运算出现异区状态时,它能够及时标识出来,帮助计算机更好地进行下一步的运算。
控制器
模块
功能
程序计数器PC
用于记录下一个需要运行的指令。
指令寄存器IR
存放当前运行的任务指令
指令译码器
将指令译码为计算机能执行内容
时序部件
实际上就是控制cpu 频率的
并发并行并发性并发就是一时间段内运行的任 ...
计算机组成原理指令存储-软考版
指令+存储软考版本指令一条指令就是机器语言的一个语句,是一组有意义的二进制代码
一条指令其实包含如下内容:”操作码字段” ,”地址码字段”
操作码字段 - 指出计算机要执行什么性质的操作。
地址码字段 - 包含各操作数的地址与结果存放地址。
如果没有A1 A2 A3只有OP就是0地址指令符
寻址方式
立即寻址:地址码部分存放的就是操作数
直接寻址:地址码存放的是操作数的地址
间接寻址:地址码存放的是记录操作数地址的地址。
寄存器寻址:地址码部分告诉我们数据存在哪一个寄存器
寄存器间接寻址:数据存在哪一个寄存器的地址
———————–上面软考常考
下面这三个基本上就是加偏移量进行寻址
相对寻址-一般个电脑就这个
基址寻址
变址寻址
计算机体系结构分类
体系结构类型
结构
关键特性
代表
单指令流,单数据流,SISD
控制部分:1处理部件:1
单处理器系统
单指令流,多数据流 SIMD
控制部分:1处理部件:多个
以同步的形式执行同一条指令
阵列处理机,超级向量处理机
多指令流,单数据流 MISD
控制部分:多个处理部分:1
不可能且不实际
...
计算机硬件基础-cache-校验码
计算机基础硬件-cache + 校验码cache功能:提高cpu数据输入输出的速率,突破冯诺依曼瓶颈
速度:在计算机存储体系中,cache是访问速度较快的层次
原理: 在使用cache改善系统性能的一居室程序的局部性原理。
组成:cache由控制部分和存储部分组成
输入输出
校验码-奇偶校验码 ,CRC,海明校验码
奇偶校验码 - 只能检错,可检验1(奇数)位错
CRC - 只能检错,可检多位
海明码:可以检错纠错,和1位多位
奇偶校验很简单比如:
1|00 0 这样子这个就有一个奇数校验
0|01 1
0|10 2
1|11 3
假如出现一个 0|11 这种就在奇数校验下非法了
CRC 就是k个数据位+r个校验位没啥好说的
海明码假设由48个数据位
那么由公式 2^k >= 48 + k 得出k = 6 6个校验位
LLama2大模型量化部署
Llama模型量化模型cpp部署部署步骤wsl下部署没啥装个Ubuntu22.04先。
然后git clone两个项目。
首先是llama的git项目
1git clone https://github.com/facebookresearch/llama.git
然后是cpp
1git clone https://github.com/ggerganov/llama.cpp.git
然后进入llama的项目
1cd llama
然后去官网https://ai.meta.com/resources/models-and-libraries/llama-downloads/
申请下载到邮箱
1./download.sh
然后就是这样子
等待模型下载完毕以后,进入llama.cpp
12cd llama.cpp
先安装gcc环境
1sudo apt install build-essential
编译等待编译完成
1make
安装python依赖
1python3 -m pip install -r requirements.txt
转换模型,当然还有其他参数我们可以直接 ...
Hello World
失語時代下的喃喃自語纪念2017年愚人节,reddit网站发起一项为期三天的社会实验(2017年4月1日-4月3日),号召所有注册用户在一块100万像素的画布上作画(1000*1000),用户有16种像素颜色选择,生成一次后需要等待20分钟到5分钟之后才可以进行下一次编辑。凭借大家的协作创造出得一幅伟大的作品并载入互联网史册。
在混乱中建立秩序,文明也在一次次破坏重建中焕发了新的面貌,当资源有限的情况下,一个群体想要生存势必要蚕食别的群体,生存还是毁灭的问题在短短的72小时内在一块小小的帆布画版上不断上演。虽然这个活动在几年前就已经结束了,但现实中比Reddit这场社会实验残酷百倍的故事却从未停歇。国家之间的冲突,族群之间的恶意。在更大纬度的战场,渗透于各个领域的对垒,甚至已经关乎到十几亿几十亿人们的幸福生活。
活动地址参见:reddit/r/place活动详情参见:维基百科画板元素详解:The /r/place Atlas变化过程参见:bilibil
活动结束时最终快照[高清]:






























![Langchain系列[01]介绍](/img/langchain/cover.png)







