构建LangChain应用程序的示例代码:24、使用OpenAI工具进行文本提取教程(Extraction with OpenAI Tools)

本文主要是介绍构建LangChain应用程序的示例代码:24、使用OpenAI工具进行文本提取教程(Extraction with OpenAI Tools),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

使用OpenAI工具进行文本提取教程

执行提取任务从未如此简单!OpenAI的工具调用功能是完美的选择,因为它允许从文本中提取多种不同类型的元素。

使用支持工具的模型

1106版本之后的模型使用工具,并支持“并行函数调用”,这使得任务变得非常容易。

from typing import List, Optionalfrom langchain.chains.openai_tools import create_extraction_chain_pydantic
from langchain_core.pydantic_v1 import BaseModel
from langchain_openai import ChatOpenAI
# 确保使用支持工具的最近模型
model = ChatOpenAI(model="gpt-3.5-turbo-1106")
# Pydantic是定义模式的一种简单方式
class Person(BaseModel):"""要提取的人的信息。"""
# 创建提取链
chain = create_extraction_chain_pydantic(Person, model)# 调用链
chain.invoke({"input": "jane is 2 and bob is 3"})
# 定义另一个元素
class Class(BaseModel):"""要提取的课程信息。"""
# 创建提取链
chain = create_extraction_chain_pydantic([Person, Class], model)# 调用链
chain.invoke({"input": "jane is 2 and bob is 3 and they are in Mrs Sampson's class"})

内部工作原理

在内部,这是一个简单的链:

from typing import Union, List, Type, Optionalfrom langchain.output_parsers.openai_tools import PydanticToolsParser
from langchain.utils.openai_functions import convert_pydantic_to_openai_tool
from langchain_core.runnables import Runnable
from langchain_core.pydantic_v1 import BaseModel
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.messages import SystemMessage
from langchain_core.language_models import BaseLanguageModel_EXTRACTION_TEMPLATE = """提取并保存以下段落中提到的相关实体及其属性。如果属性不存在且在函数参数中不需要,则不要在输出中包含它。"""  # noqa: E501def create_extraction_chain_pydantic(pydantic_schemas: Union[List[Type[BaseModel]], Type[BaseModel]],llm: BaseLanguageModel,system_message: str = _EXTRACTION_TEMPLATE,
) -> Runnable:if not isinstance(pydantic_schemas, list):pydantic_schemas = [pydantic_schemas]prompt = ChatPromptTemplate.from_messages([("system", system_message),("user", "{input}")])tools = [convert_pydantic_to_openai_tool(p) for p in pydantic_schemas]model = llm.bind(tools=tools)chain = prompt | model | PydanticToolsParser(tools=pydantic_schemas)return chain

总结

本文介绍了如何使用OpenAI的工具调用功能来执行文本提取任务。通过定义Pydantic模式,可以轻松创建提取链,该链可以提取和保存文本中提到的相关实体及其属性。代码示例展示了如何设置模型、定义数据模式、创建提取链以及如何调用该链来执行提取任务。内部工作原理的代码展示了如何构建提示模板、转换工具、绑定语言模型,并最终创建一个可运行的提取链。

这篇关于构建LangChain应用程序的示例代码:24、使用OpenAI工具进行文本提取教程(Extraction with OpenAI Tools)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1044541

相关文章

如何使用 Python 读取 Excel 数据

《如何使用Python读取Excel数据》:本文主要介绍使用Python读取Excel数据的详细教程,通过pandas和openpyxl,你可以轻松读取Excel文件,并进行各种数据处理操... 目录使用 python 读取 Excel 数据的详细教程1. 安装必要的依赖2. 读取 Excel 文件3. 读

利用Python调试串口的示例代码

《利用Python调试串口的示例代码》在嵌入式开发、物联网设备调试过程中,串口通信是最基础的调试手段本文将带你用Python+ttkbootstrap打造一款高颜值、多功能的串口调试助手,需要的可以了... 目录概述:为什么需要专业的串口调试工具项目架构设计1.1 技术栈选型1.2 关键类说明1.3 线程模

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

解决Maven项目idea找不到本地仓库jar包问题以及使用mvn install:install-file

《解决Maven项目idea找不到本地仓库jar包问题以及使用mvninstall:install-file》:本文主要介绍解决Maven项目idea找不到本地仓库jar包问题以及使用mvnin... 目录Maven项目idea找不到本地仓库jar包以及使用mvn install:install-file基

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

C 语言中enum枚举的定义和使用小结

《C语言中enum枚举的定义和使用小结》在C语言里,enum(枚举)是一种用户自定义的数据类型,它能够让你创建一组具名的整数常量,下面我会从定义、使用、特性等方面详细介绍enum,感兴趣的朋友一起看... 目录1、引言2、基本定义3、定义枚举变量4、自定义枚举常量的值5、枚举与switch语句结合使用6、枚

Java的栈与队列实现代码解析

《Java的栈与队列实现代码解析》栈是常见的线性数据结构,栈的特点是以先进后出的形式,后进先出,先进后出,分为栈底和栈顶,栈应用于内存的分配,表达式求值,存储临时的数据和方法的调用等,本文给大家介绍J... 目录栈的概念(Stack)栈的实现代码队列(Queue)模拟实现队列(双链表实现)循环队列(循环数组

使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)

《使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)》PPT是一种高效的信息展示工具,广泛应用于教育、商务和设计等多个领域,PPT文档中常常包含丰富的图片内容,这些图片不仅提升了... 目录一、引言二、环境与工具三、python 提取PPT背景图片3.1 提取幻灯片背景图片3.2 提取

Android实现在线预览office文档的示例详解

《Android实现在线预览office文档的示例详解》在移动端展示在线Office文档(如Word、Excel、PPT)是一项常见需求,这篇文章为大家重点介绍了两种方案的实现方法,希望对大家有一定的... 目录一、项目概述二、相关技术知识三、实现思路3.1 方案一:WebView + Office Onl