Я работаю над трубопроводом с тряпкой (извлеченным августом), где я сначала предварительно предварительно обрабатываю документ 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
Как получить ограничивающие рамки (BBox) для блоков в конвейере RAG, чтобы выделить 5 самых популярных фрагментов в PDF- ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как преобразовать X AnyLabeling JSON в ограничивающие рамки, ориентированные на YOLOv8
Anonymous » » в форуме Python - 0 Ответы
- 35 Просмотры
-
Последнее сообщение Anonymous
-