Я работаю над трубопроводом с тряпкой (извлеченным августом), где я сначала предварительно предварительно обрабатываю документ 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
Программы на Python
1737744394
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")
Подробнее здесь: [url]https://stackoverflow.com/questions/79384741/how-to-get-bounding-boxes-bbox-for-chunks-in-a-rag-pipeline-to-highlight-top-5[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия