文档转换器transformer文本切割、特征提取、问答转换、文档翻译、元数据标记器
文本分割这是最基本的将文本切割为不同的文档,可以选择使用换行符、逗号、句号等进行分割
1234567891011121314151617181920212223242526from langchain.text_splitter import CharacterTextSplittertext = """人工智能作为新一轮科技革命和产业变革的核心驱动力,正在对全球经济、社会发展和人类生活产生深刻影响。近年来,中国在人工智能领域取得了举世瞩目的成就,已成为全球人工智能发展的重...
为了llm应用获取外部数据,langchain提供了加载、转换、存储和查询数据的功能
文档加载器:加载不同来源的文档
文档转换器:拆分文档,将文档转换成问答格式、删除冗余文档
文本嵌入模型Embed:将非结构化文本转换为向量
向量存储:存储和搜索嵌入的数据
检索器:查询数据
文档加载器load
csv、html、json、pdf文档加载
加载同一目录下多文档
第三方数据源组件
加载csv文档csv是一种使用逗号来分隔值的文本文件
csv文件加载器允许定制csv解析和加载,可以通过csv_args参数来设置,比如设定分隔符、引用字符和字段名等(跟awk差不多
12345678910...
为什么需要输出解析器,因为调用大模型返回的内容并非给人看的,而是需要以特定的格式输出给其他的应用进行解析
解析器类型
输入示例
输出
适用场景
CommaSeparatedListOutputParser
“苹果,香蕉,橙子”
['苹果', '香蕉', '橙子']
简单列表提取
PydanticOutputParser
{"name": "苹果", "color": "红"}
Fruit(name='苹果', color='...
langchain本身不提供大模型,提供了llms工具与其他大语言模型进行交互
设置内存缓存12345678910111213141516171819202122232425262728293031from langchain_community.cache import InMemoryCacheimport langchainfrom langchain_deepseek import ChatDeepSeekfrom dotenv import load_dotenvimport timeload_dotenv()llm = ChatDeepSeek(model="dee...
prompt template 提示模板
example selectors 示例选择器
language models 语言模型应用
output parsers 输出解析器
prompt与template最简单的使用prompt template12345678910111213141516171819from langchain_deepseek import ChatDeepSeekfrom langchain.prompts import PromptTemplatefrom dotenv import load_dotenvload_dotenv()llm = ChatD...
langchain是一个框架,用以
集成大语言模型、其他数据源(文档、数据库、应用库等)
让不同来源的数据进行交互
支持链,一连串的动作
langchain的基础数据类型
texts 自然语言交互
chat messages 特定消息分类
system:提供背景信息,告诉AI需要做什么
human:用户信息
AI:AI给出的回应
documents 文本和元数据
examples 例子(代表了函数的输入以及预期输出
langchain的组件
模型-IO输入输出
数据连接
文档加载器:加载不同来源的文档
文档转换器:拆分文档,将文档转换为QA格式等
文本嵌入模型:将非结构化的文档...
正在美美摸鱼呢,领导来消息了,让我帮他删一下一台云主机上的文件,要求删除所有/mnt下所有archived开头的目录
这是一个超大nfs挂载,使用的是阿里云的NAS,其中有500T数据被占用,有多大呢,连输入ls都会卡住
12df -Th | grep mntxxx[.cn-hangzhou.nas.aliyuncs.com:/ nfs 10P 502T 9.6P 5% /mnt2
解决思路find与xargs
首先肯定是find,因为我们要的是archived开头的目录,它可以很快帮我们找出哪些目录需要删除
123456789101112131415...
fastapi支持快速搭建api,并且原生支持协程,异步特性
在搭建api这方面比flask更加专精
快速开始123456789101112pip install fastapi uvicorn pydanticvim main.pyfrom fastapi import FastAPIapp = FastAPI()@app.get("/")async def root(): return {"message": "Hello World"} # 启动命令uvicorn main:app --re...
纯纯小众宝藏需求
场景
1.jenkins有多个slave节点,节点可进入2.只需要跑一个任务,这个任务会占用大量CPU资源来编译3.节点性能有限,一次只能编译一个
需求
1.根据任务是否已经通过了编译阶段,来动态调整节点并发数2.如果N个任务都过了编译阶段,则将并发数调整为N+1,随后调整为13.自动化完成,使用shell或python4.检测服务器负载,负载降低才允许新增并发数
思路
1.通过jenkins的节点api/json获取当前任务数2.获取任务ID对应的日志,搜索是否具备编译完成的关键字“100%”3.使用ET修改config.xml,POST来修改并发数
123...
本文将介绍如何将Let’s Encrypt生成免费SSL证书,并且进行自动续期
我之前还傻呆呆的在阿里云花68买了个人证书来着,md
Let’s Encrypt的优势
支持ACME协议,实现了证书申请、安装和续期的自动化
提供的SSL/TLS证书完全免费
安装工具与生成SSL证书12345678910111213141516171819202122232425262728293031323334353637# 环境说明,使用的是CentOS7.9 2C2G 阿里云公有云实例 # 安装Let's Encrypt提供的工具certbot与nginx插件(1)使用ce...