Как получить ограничивающие рамки (BBox) для блоков в конвейере RAG, чтобы выделить 5 самых популярных фрагментов в PDF-Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как получить ограничивающие рамки (BBox) для блоков в конвейере RAG, чтобы выделить 5 самых популярных фрагментов в PDF-

Сообщение Anonymous »

Я работаю над трубопроводом с тряпкой (извлеченным августом), где я сначала предварительно предварительно обрабатываю документ PDF и разделяю его на куски. При запуске процесса тряпки я получаю 5 лучших кусков и создаю ответ. Чтобы предоставить контекст, я хочу выделить эти 5 кусков в оригинальном документе PDF. М. Столкнувшись с двумя проблемами: < /p>
Как подключить ограничивающие ящики к кускам после разделения PDF? > Для контекста я использую AI и Python Haystack AI и Python для тряпичного трубопровода. Любые понимание того, как извлечь ограничительные ящики для этих кусков, было бы действительно полезным!import json
import os
from pathlib import Path

from haystack import Pipeline
from haystack.components.converters import PyPDFToDocument
from haystack.components.embedders import SentenceTransformersDocumentEmbedder
from haystack.components.preprocessors import (
DocumentCleaner,
NLTKDocumentSplitter,
)
from haystack.components.writers import DocumentWriter
from haystack.document_stores.types import DuplicatePolicy
from haystack_integrations.components.embedders.fastembed import (
FastembedSparseDocumentEmbedder,
)
from haystack_integrations.document_stores.qdrant import QdrantDocumentStore
from utils.process_dataset import load_pdfs_config

document_store = QdrantDocumentStore(
":memory:",
use_sparse_embeddings=True,
recreate_index=True,
embedding_dim=1024, # based on the embedding model
return_embedding=False,
wait_result_from_api=True,
)

indexing_pipeline = Pipeline()
indexing_pipeline.add_component("converter", PyPDFToDocument())
indexing_pipeline.add_component("cleaner", DocumentCleaner())
indexing_pipeline.add_component(
"splitter",
NLTKDocumentSplitter(
split_by="word",
respect_sentence_boundary=False,
split_length=200,
split_overlap=40,
),
)

indexing_pipeline.add_component(
"sparse_doc_embedder", FastembedSparseDocumentEmbedder(model="some
model")
)
indexing_pipeline.add_component(
"dense_doc_embedder",
SentenceTransformersDocumentEmbedder(
model="some model"
),
)
indexing_pipeline.add_component(
"writer",
DocumentWriter(document_store=document_store, policy=DuplicatePolicy.OVERWRITE),
)

indexing_pipeline.connect("converter", "splitter")

indexing_pipeline.connect("splitter", "sparse_doc_embedder")
indexing_pipeline.connect("sparse_doc_embedder", "dense_doc_embedder")
indexing_pipeline.connect("dense_doc_embedder", "writer")



Подробнее здесь: https://stackoverflow.com/questions/793 ... ight-top-5
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»