LangChain 摘要 和问答示例
在Azure上的OpenAI端点
注意 OpenAI key 可以用微软 用例【1. 嵌入 ,2. 问答】
1.
import os
import openai
from langchain.embeddings import OpenAIEmbeddings
os.environ["OPENAI_API_KEY"] = "****" # Azure 的密钥
os.environ["OPENAI_API_BASE"] = "https://z****/" # Azure 的终结点
os.environ["OPENAI_API_TYPE"] = "azure"
os.environ["OPENAI_API_VERSION"] = "****" # API 版本,未来可能会变
model = "***" # 模型的部署名
embeddings = OpenAIEmbeddings(engine=model)#text-embedding-ada-002 最好用相同的
text = "你是"
query_result = embeddings.embed_query(text)
doc_result = embeddings.embed_documents([text])
print(doc_result)
2.
import os
import openai
from langchain.embeddings import OpenAIEmbeddings
os.environ["OPENAI_API_KEY"] = "****" # Azure 的密钥
os.environ["OPENAI_API_BASE"] = "https://z****/" # Azure 的终结点
os.environ["OPENAI_API_TYPE"] = "azure"
os.environ["OPENAI_API_VERSION"] = "****" # API 版本,未来可能会变
model = "***" # 模型的部署名
llm = AzureOpenAI(deployment_name=model,model_name="gpt-35-turbo",
)
print(llm("你好"))
LangChain 和 LLM 最常见的用例之一是摘要。您可以总结任何一段文本,但用例包括总结电话、文章、书籍、学术论文、法律文件、用户历史、表格或财务文件。拥有一个可以快速汇总信息的工具非常有帮助。
- 深潜- (即将推出)
- 示例-总结 B2B 销售电话
- 用例- 总结文章、成绩单、聊天记录、Slack/Discord、客户互动、医学论文、法律文件、播客、推文线程、代码库、产品评论、财务文件
短文本摘要
对于短文的摘要,方法很简单,其实你不需要做任何花哨的事情,只需简单的提示说明即可
from langchain.llms import OpenAI
from langchain import PromptTemplate# 请注意,默认模型已经是,但我在这里明确指出它,以便您以后知道在何处更改它(如果需要)
llm = AzureOpenAI(deployment_name=model,model_name="gpt-35-turbo",
)template = """
%指示:
请总结下面的一段文字。
以 5 岁儿童能理解的方式回答。%文本:
{text}
"""
prompt = PromptTemplate(input_variables=["text"],template=template,
)confusing_text = """
近日深圳市人民政府办公厅正式印发了《深圳市数字孪生先锋城市建设行动计划(2023)》(简称:“计划”),其中对于如何建设城市级数字孪生底座、如何打造万亿级核心产业增加值数字经济高地都列出了执行方式。深圳市一直是国内数字孪生城市建设的“排头兵”,此次“计划”的发布,表明深圳市将在打造“标杆性”数字孪生城市方面继续布局发力,并给出了更加具体的执行措施。在该“计划”发布之前,已有多项数字孪生相关国家级、省级、市级政策文件发布,包括《数字中国建设整体布局规划》、《国务院关于加强数字政府建设的指导意见》(国发〔2022〕14号)、《广东省数字政府改革建设“十四五”规划》(粤府〔2021〕44号)、《深圳市数字政府和智慧城市“十四五”发展规划》。此次“计划”的总体目标是相对量化具体的,总共分为四个大的方向:建设一个一体协同的数字孪生底座、构建不少于十类数据相融合的孪生数据底板、上线承载超百个场景、超千项指标的数字孪生应用、打造万亿级核心产业增加值数字经济高地。接着,“计划”详细阐释了要如何完成这四大目标,具体要做哪些事,同时,“计划”明确了完成每项目标的牵头单位和责任单位,整体来看,牵头单位和责任单位主要以政府部门和国企为主。在建设一体协同的城市级数字孪生底座方面,深圳将建设市区协同、统分结合的全市域时空信息平台(CIM平台),要按照“两级平台、四级应用”架构,打造“1+11+N”CIM平台体系,建设11个区级平台,N个部门级、行业级、重点片区级平台。为了构建泛在实时、全域覆盖的物联感知体系,深圳将实现城市管理、交通、水务、生态环境、应急安全等领域不少于30万个物联感知终端接入,逐步推进28万路摄像头信息融入CIM平台。在上线承载超百个场景、超千项指标的多跨协同数字孪生应用方面,深圳将建设城市级智能网联汽车统一监管平台,推动智能网联汽车高质量集聚发展;深圳将围绕政务服务、出行、住房、医疗、教育、养老等民生服务场景,深度挖掘数字孪生应用场景,让市民群众在智慧城市和数字政府建设中更有获得感。最后,在打造信创驱动、数字赋能的万亿级核心产业增加值数字经济高地方面,深圳将加快推进数字孪生城市建设所需软硬件和底层技术国产化适配,探索鹏城云脑为城市级仿真推演和人工智能应用提供海量图形渲染及AI算力支撑。"""
final_prompt = prompt.format(text=confusing_text)
print(final_prompt)
print ("------- Prompt End -------")
output = llm(final_prompt)
print(output)
较长文本的摘要
此方法也适用于短文本
摘要涉及创建多个较长文档的较小摘要。这对于将长文档提炼成核心信息很有用。
llm = AzureOpenAI(deployment_name=model,model_name="gpt-35-turbo",
)
with open('D:\操作系统\开通openAI embeding.md','r',encoding="utf-8") as file:text = file.read()
print(text[:285])
num_tokens = llm.get_num_tokens(text)
print (f"您的文件中有{num_tokens}个令牌")
text_splitter = RecursiveCharacterTextSplitter(separators=["\n\n", "\n"], chunk_size=4000, chunk_overlap=350)
docs = text_splitter.create_documents([text])
print (f"您现在拥有 {len(docs)} 文档包含段文本")
chain = load_summarize_chain(llm=llm, chain_type='map_reduce',verbose=True) # verbose=True 可选,以查看发送到 LLM 的内容
# 这将运行 3 个文档,总结块,然后得到摘要的摘要。
output = chain.run(docs)
print (output)
使用文档作为上下文的问答
为了使用 LLM 进行问答,我们必须:
1.通过LLM相关上下文它需要回答一个问题
2.将我们想要回答的问题传递给它
简化后,这个过程看起来像这样“llm(你的背景+你的问题)=你的答案”
简单问答示例
llm = AzureOpenAI(temperature=0,deployment_name=model,model_name="gpt-35-turbo",
)
context = """
1:可口可乐,价格4元
2:百事可乐,价格4.5元
3:雪碧,价格3.5元
4:脉动,价格6元
5:果趣,价格7元
6:果粒橙,价格5元
"""question = "从中找一个最贵的饮料 给出答案"
output = llm(context + question)
# 我剥离文本以删除前导和尾随空格
print (output.strip())
随着我们提高我们的复杂性,我们将更多地利用这个约定。
当您需要选择将哪些数据放入上下文中时,困难的部分就出现了。这个研究领域被称为“文档检索”,并与 AI Memory 紧密结合。
相关文章:

LangChain 摘要 和问答示例
在Azure上的OpenAI端点 注意 OpenAI key 可以用微软 用例【1. 嵌入 ,2. 问答】 1. import os import openai from langchain.embeddings import OpenAIEmbeddings os.environ["OPENAI_API_KEY"] "****" # Azure 的密钥 os.environ["OP…...

(32)测距仪(声纳、激光雷达、深度摄影机)
文章目录 前言 32.1 单向测距仪 32.2 全向性近距离测距仪 32.3 基于视觉的传感器 前言 旋翼飞机/固定翼/无人车支持多种不同的测距仪,包括激光雷达(使用激光或红外线光束进行距离测量)、360 度激光雷达(可探测多个方向的障碍…...

教你拥有一个自己的QQ机器人!0基础超详细保姆级教学!基于NoneBot2 Windows端搭建QQ机器人
0.序言 原文链接:教你本地化部署一个QQ机器人本教程主要面向Windows系统用户教程从0开始全程详细指导,0基础萌新请放心食用🍕如果你遇到了问题,请仔细检查是否哪一步有遗漏。如果你确定自己的操作没问题,可以到原文链…...

智能银行卡明细筛选与统计,轻松掌握账户总花销!
作为现代生活的重要组成部分,银行卡成为了我们日常消费和收入的主要途径。但是,当我们需要了解自己的银行卡账户的总花销时,繁琐的明细筛选和统计工作常常让人头疼。现在,让我们向您推荐一款智能银行卡明细筛选与统计工具…...

SRT服务器SLS
目前互联网上的视频直播有两种,一种是基于RTMP协议的直播,这种直播方式上行推流使用RTMP协议,下行播放使用RTMP,HTTPFLV或者HLS,直播延时一般大于3秒,广泛应用秀场、游戏、赛事和事件直播,满足了…...
Linux 安装 Android SDK
先安装jdk RUN apt-get install default-jdk 参考:http://t.zoukankan.com/braveym-p-6143356.html mkdir -p $HOME/install/android-sdk wget https://dl.google.com/android/repository/commandlinetools-linux-9123335_latest.zip unzip commandlinetools-linu…...

【QT开发笔记-基础篇】| 第四章 事件QEvent | 4.4 鼠标按下、移动、释放事件
本章要实现的整体效果如下: QEvent::MouseButtonPress 鼠标按下时,触发该事件,它对应的子类是 QMouseEvent QEvent::MouseMove 鼠标移动时,触发该事件,它对应的子类是 QMouseEvent QEvent::MouseButtonRel…...
vue3父子通信+ref,toRef,toRefs使用实例
ref是什么? 生成值类型的响应式数据可用于模板和reactive通过.value修改值可以获取DOM元素 <p ref”elemRef”>{{nameRef}} -- {{state.name}}</p> // 获取dom元素 onMounted(()>{ console.log(elemRef.value); }); toRef是什么? 针对一个响应式对象(rea…...

输入电压转化为电流性 5~20mA方案
输入电压转化为电流性 5~20mA方案 方案一方案二方案三 方案一 XTR111是一款精密的电压-电流转换器是最广泛应用之一。原因有二:一是线性度非常好、二是价格便宜。总结成一点,就是性价比高。 典型电路 最终电路 Z1二极管处输出电流表达式:…...

SpringBoot自带模板引擎Thymeleaf使用详解①
目录 前言 一、SpringBoot静态资源相关目录 二、变量输出 2.1 在templates目录下创建视图index.html 2.2 创建对应的Controller 2.3 在视图展示model中的值 三、操作字符串和时间 3.1 操作字符串 3.2 操作时间 前言 Thymeleaf是一款用于渲染XML/HTML5内容的模板引擎&am…...

推荐算法——Apriori算法原理
0、前言: 首先名字别读错:an pu ruo ao rui 【拼音发音】Apriori是一种推荐算法推荐系统:从海量数据中,帮助用户进行信息的过滤和选择。主要推荐方法有:基于内容的推荐、协同过滤推荐、基于关联规则的推荐、基于知识的…...
vue ant 隐藏 列
vue ant 隐藏 列 如果你使用的是Vue和Ant Design Vue组件库,你可以使用v-if指令来实现条件渲染来隐藏列。以下是一个示例代码: <template><a-table :columns"columns" :data-source"data"><template v-slot:custom…...
java基础之初始化顺序
初始化顺序 在类中变量定义的顺序决定了它们初始化的顺序。在创建任何java对象时,都是依次调用父类非静态初始化块、父类构造器执行初始化、本类的非静态初始化块、本类构造器执行初始化 public class House { // 构造器之前 Window w1 new Window(1); Ho…...

FFmpeg 命令:从入门到精通 | ffmpeg filter(过滤器 / 滤镜)
FFmpeg 命令:从入门到精通 | ffmpeg filter(过滤器 / 滤镜) FFmpeg 命令:从入门到精通 | ffmpeg filter(过滤器 / 滤镜)ffmpeg fliter 基本内置变量视频裁剪文字水印图片水印画中画视频多宫格处理 FFmpeg 命…...
【C语言】23-结构体类型
目录 1. 如何建立结构体类型2. 如何使用结构体2.1 定义结构体变量2.2 结构体变量的初始化和引用2.3 结构体数组2.4 结构体指针2.4.1 指向结构体变量的指针2.4.2 指向结构体数组的指针C 语言提供了一些由系统已定义好的数据类型,如: int、 float、 char 等,用户可以在程序…...

Python小技巧:快速合并字典dict()
文章目录 前言知识点字典合并1. dict.update()基础合并2. 字典推导式 update() 后话 前言 这里是Python小技巧的系列文章。这是第四篇,快速合并字典。 在Python的使用中,有时候需要将两个 dict(字典) 进行合并。 通常我们会借助 dict(字典) 的内置方法 …...
如何使用 React 和 Docusaurus 编写的一些自定义钩子(Hook)
import useRouteContext from @docusaurus/useRouteContext; import {DependencyList, useEffect, useRef, useState, useMemo } from react; import {dequal } from dequal; /* eslint-disable global-require */ // @ts-ignore/*** 用于深度检测依赖的useMemo钩子* @param fa…...

【初识Linux】Linux环境配置、Linux的基本指令 一
Linux基本指令一 一、学习前提(环境配置)①安装Xshell和云服务器推荐②Xshell用途如下图③打开Xshell 二、 Linux基本指令①whoami和who指令②pwd、ls、ls -l三个指令ls指令扩充 ③cd指令前提了解有了上面的认识,我们就可以开始cd指令的学习了 ④tree指令…...
conda常用命令参数,指定版本,依赖库文件,创建虚拟环境,删除,激活,退出,内部安装包,pip通过代理安装包
以下是conda的常用命令和参数: 1. 创建虚拟环境: - 创建一个新的虚拟环境:conda create -n 环境名 pythonx.x - 使用指定的依赖文件创建虚拟环境:conda create -n 环境名 --file requirements.txt 2. 激活虚拟环境&#x…...

【锁的区别】C++线程库和POSIX线程库锁的区别
C线程库和POSIX线程库锁的区别 C线程库代码段的互斥:mutex、recursive_mutex、timed_mutex、recursive_timed_mutex互斥量mutex:直接进行lock()或者unlock()递归互斥锁recursive_mutex:可以多次加锁,意味着加几次锁就需要解几次锁…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill
视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...

iview框架主题色的应用
1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...

Ubuntu Cursor升级成v1.0
0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开,快捷键也不好用,当看到 Cursor 升级后,还是蛮高兴的 1. 下载 Cursor 下载地址:https://www.cursor.com/cn/downloads 点击下载 Linux (x64) ,…...

【大模型】RankRAG:基于大模型的上下文排序与检索增强生成的统一框架
文章目录 A 论文出处B 背景B.1 背景介绍B.2 问题提出B.3 创新点 C 模型结构C.1 指令微调阶段C.2 排名与生成的总和指令微调阶段C.3 RankRAG推理:检索-重排-生成 D 实验设计E 个人总结 A 论文出处 论文题目:RankRAG:Unifying Context Ranking…...

【1】跨越技术栈鸿沟:字节跳动开源TRAE AI编程IDE的实战体验
2024年初,人工智能编程工具领域发生了一次静默的变革。当字节跳动宣布退出其TRAE项目(一款融合大型语言模型能力的云端AI编程IDE)时,技术社区曾短暂叹息。然而这一退场并非终点——通过开源社区的接力,TRAE在WayToAGI等…...
【Ftrace 专栏】Ftrace 参考博文
ftrace、perf、bcc、bpftrace、ply、simple_perf的使用Ftrace 基本用法Linux 利用 ftrace 分析内核调用如何利用ftrace精确跟踪特定进程调度信息使用 ftrace 进行追踪延迟Linux-培训笔记-ftracehttps://www.kernel.org/doc/html/v4.18/trace/events.htmlhttps://blog.csdn.net/…...