当前位置: 首页 > news >正文

做的网站本溪食品 中企动力提供网站建设

做的网站,本溪食品 中企动力提供网站建设,河北建设厅网站怎么搜索文件,重庆网站设计制作价格Tl;dr: 在这篇文章中#xff0c;我们将使用 MinIO Bucket Notifications 和 Apache Tika 进行文档文本提取#xff0c;这是大型语言模型训练和检索增强生成 LLM和RAG 等关键下游任务的核心。 前提 假设我想构建一个文本数据集#xff0c;然后我可以用它来微调 LLM.为了做… Tl;dr: 在这篇文章中我们将使用 MinIO Bucket Notifications 和 Apache Tika 进行文档文本提取这是大型语言模型训练和检索增强生成 LLM和RAG 等关键下游任务的核心。 前提 假设我想构建一个文本数据集然后我可以用它来微调 LLM.为了做到这一点我们首先需要组装各种文档由于它们的来源这些文档可能采用不同的形式并从中提取文本。数据集安全性和可审计性至关重要因此这些非结构化文档需要存储在对象存储中以进行匹配。MinIO 是针对这些情况以及更多情况构建的对象存储。另一方面Apache Tika 是一个工具包可以“从一千多种不同的文件类型例如 PPT、XLS 和 PDF中检测和提取元数据和文本”。它们共同形成一个可以实现我们目标的系统。 在之前的一篇文章中我们将一个带有 MinIO 的对象检测推理服务器和大约 30 行代码放在一起。我们将再次利用这种高度可移植和可重复的架构这次是文本提取任务。下面是我们将要构建的系统的粗略描述。 设置 Apache Tika 启动并运行 Apache Tika 的最简单方法是使用官方 Docker 映像。检查 Docker Hub 以获取所需的 Tika 映像版本/标记。 在此示例中我允许它使用并公开默认端口 9998。 docker pull apache/tika:version docker run -d -p 127.0.0.1:9998:9998 apache/tika:version 构建文本提取服务器 现在 Tika 正在运行我们需要构建一个服务器该服务器可以通过编程方式对新对象发出 Tika 提取请求。之后我们需要在 MinIO 存储桶上配置 webhook以提醒此服务器新对象的到来换句话说存储桶的 PUT 事件。让我们一步一步地走一遍。 为了保持相对简单并突出这种方法的可移植性文本提取服务器将使用流行的 Flask 框架在 Python 中构建。以下是服务器的代码也可在 MinIO 博客资源存储库的 extraction_server.py 下找到该服务器使用 Tika通过 Tika-Python对添加到存储桶的新文档执行文本提取 This is a simple Flask text extraction server that functions as a webhook service endpoint for PUT events in a MinIO bucket. Apache Tika is used to extract the text from the new objects.from flask import Flask, request, abort, make_response import io import logging from tika import parser from minio import Minio# Make sure the following are populated with your MinIO details # (Best practice is to use environment variables!) MINIO_ENDPOINT MINIO_ACCESS_KEY MINIO_SECRET_KEY # This depends on how you are deploying Tika (and this server): TIKA_SERVER_URL http://localhost:9998/tikaclient Minio(MINIO_ENDPOINT,access_keyMINIO_ACCESS_KEY,secret_keyMINIO_SECRET_KEY, )logger logging.getLogger(__name__)app Flask(__name__)app.route(/, methods[POST]) async def text_extraction_webhook():This endpoint will be called when a new object is placed in the bucketif request.method POST:# Get the request event from the POST callevent request.jsonbucket event[Records][0][s3][bucket][name]obj_name event[Records][0][s3][object][key]obj_response client.get_object(bucket, obj_name)obj_bytes obj_response.read()file_like io.BytesIO(obj_bytes)parsed_file parser.from_buffer(file_like.read(), serverEndpointTIKA_SERVER_URL)text parsed_file[content]metadata parsed_file[metadata]logger.info(text)result {text: text, metadata: metadata}resp make_response(result, 200)return respelse:abort(400)if __name__ __main__:app.run() 让我们启动提取服务器 设置存储桶通知 现在剩下的就是在 MinIO 服务器上为存储桶配置 Webhook以便存储桶中的任何 PUT 事件也称为添加的新对象都将触发对提取终端节点的调用。使用该 mc 工具我们只需几个命令即可完成此操作。 首先我们需要设置一些环境变量以向 MinIO 服务器发出信号表明您正在启用要调用的 Webhook 和相应的端点。替换为您选择的函数名称。为简单起见我选择了“提取”。此外请确保将终端节点环境变量设置为推理服务器的正确主机和端口。在本例中http://localhost:5000 是运行 Flask 应用程序的位置。 export MINIO_NOTIFY_WEBHOOK_ENABLE_YOURFUNCTIONNAMEon export MINIO_NOTIFY_WEBHOOK_ENDPOINT_YOURFUNCTIONNAMEhttp://localhost:5000设置这些环境变量后启动 MinIO 服务器或者如果它已在运行请重新启动它。在以下步骤中我们将需要一个“别名”用于 MinIO 服务器部署。要了解有关别名以及如何设置别名的更多信息请查看文档。我们还将使用 mc MinIO 客户端命令行工具因此请确保您已安装它。 接下来让我们为存储桶配置事件通知以及我们想要收到通知的事件类型。出于这个项目的目的我创建了一个全新的存储桶也命名为“extraction”。您可以通过 MinIO 控制台或 mc 命令执行此操作 由于我们希望在将新对象添加到“提取”存储桶时触发 Webhook因此 PUT 事件是我们的重点。将 ALIAS 替换为 MinIO 服务器部署的别名将 BUCKET 替换为该服务器上所需的存储桶。和以前一样请确保替换为在前面步骤中使用的相同值。 mc event add ALIAS/BUCKET arn:minio:sqs::YOURFUNCTIONNAME:webhook --event put最后您可以通过验证运行此命令时是否输出了存储桶通知来检查是否 s3:ObjectCreated:* 为存储桶通知配置了正确的事件类型 mc event ls ALIAS/BUCKET arn:minio:sqs::YOURFUNCTIONNAME:webhook如果您想了解有关将存储桶事件发布到 Webhook 的更多信息请查看文档以及对事件通知的深入探讨。现在我们准备试用我们的文本提取服务器。 尝试一下 这是我想从中提取文本的文档。这是 2000 年《商品未来现代化法案》的 PDF 文件该法案是美国一项有影响力的金融立法。 我使用 MinIO 控制台将此 PDF 放入我的“提取”存储桶中。 此 PUT 事件会触发存储桶通知然后将该通知发布到提取服务器终端节点。因此文本由 Tika 提取并打印到控制台。 后续步骤 虽然我们现在只是打印出提取的文本但正如 The Premise 中所暗示的那样该文本可以用于许多下游任务。例如 创建用于LLM微调的数据集假设您想要对以各种文件格式即 PDF、DOCX、PPTX、Markdown 等存在的公司文档集合进行微调大型语言模型。要为此任务创建LLM友好的文本数据集您可以将所有这些文档收集到配置了类似 Webhook 的 MinIO 存储桶中并将每个文档提取的文本传递到微调/训练集的数据帧中。此外通过将数据集的源文件放在 MinIO 上可以更轻松地管理、审核和跟踪数据集的组成。 检索增强生成RAG 是LLM应用程序可以利用精确上下文并避免幻觉的一种方式。这种方法的一个核心方面是确保可以提取文档的文本然后将其嵌入到向量中从而实现语义搜索。此外通常最佳做法是将这些向量的实际源文档存储在对象存储中如 MinIO。使用本文中概述的方法您可以轻松实现两者。如果您想了解有关 RAG 及其优势的更多信息请查看这篇之前的文章。 LLM应用通过编程方式从新存储的文档中即时提取文本可能性是无穷无尽的特别是如果您可以使用LLM.想想关键词检测即提示“提到了哪些股票代码”内容评估即提示“根据评分标准这篇论文提交应该得到什么分数或者几乎任何类型的基于文本的分析即提示”根据这个日志输出第一个错误是什么时候发生的“。 除了存储桶通知用于这些任务的实用性之外MinIO 还旨在为任何类型和数量的对象无论是 Powerpoint、图像还是代码片段提供世界一流的容错和性能。
http://www.pierceye.com/news/453638/

相关文章:

  • 自己做网站新手入门淮北论坛招聘网
  • 建网站的意义大学跳蚤市场网站建设
  • 平阳做网站成都网站优化公司哪家好
  • 庆阳北京网站建设广东省建设工程执业中心网站
  • 佛山哪里有做网站的大学生文创产品设计
  • 电商网站建设运城网站图片链接怎么做的
  • 服务器建网站教程宁波网络营销推广制作
  • 微信公众号属于网站建设网站云解析域名解析
  • 网站的建设及推广在哪找可以做网站的
  • 网站经常修改好不好北京互联网公司50强
  • 知识网站有哪些h5用什么制作
  • 广州网站制作联系方式上海共有多少家企业
  • 自己建一个网站需要什么网站关键词分析工具
  • 建三江建设局网站四川省建设厅官方网站电话
  • 福建志佳建设工程发展有限公司网站vi品牌包装
  • 专业门户网站开发公司龙岩正规全网品牌营销招商
  • 网站怎么做qq微信登陆政务网站的建设时期的概述
  • 购物网站的目的和意义西安做网站xamokj
  • 厦门市建设局网站网站开发周记30篇
  • 工业园区门户网站建设方案塘沽网站开发
  • 郑州网站设计 公司驻马店市可以做网站的公司
  • 推荐盐城网站开发安陆网站开发
  • wordpress中文网站模板软件开发者路线图
  • 福清市建设局网站深圳网站制作品牌祥奔科技
  • 工程建设采购有哪些网站做网络销售怎么样
  • wordpress数据库和网站文件下载商业网站成功的原因
  • 30岁转行做网站设计百度秒收网站
  • 网页设计与制作心得体会1000福州网站seo公司
  • 学校网站定位手机网站建设怎么样
  • 苏州科技网站建设模板网站 seo