Я разрабатываю бота для Telegram, который позволяет пользователям отправлять PDF-файлы. Бот должен извлекать текст из PDF-файлов с помощью pdfminer и отвечать на запросы пользователей. Однако я сталкиваюсь с проблемами зависимостей, особенно с Langchain и pdfminer.
Проблема:
Я хочу извлечь текст из PDF-файла, загруженного пользователем, и ответить на его запросы. При попытке использовать pdfminer с Langchain я сталкиваюсь со следующими ошибками:
Базовый код находится здесь, вы можете найти его https://github.com/RajKKapadia/YouTube- ... T-Telegram /tree/main
в этом базовом коде используется OpenAI, я пробовал без использования открытого ключа API, используя pdfminer и langchain для обработки
измененного код
Обновлен create_index.py:
import os
from langchain_community.vectorstores.chroma import Chroma
from langchain.text_splitter import CharacterTextSplitter
from langchain_community.document_loaders import DirectoryLoader, TextLoader
from pdfminer.high_level import extract_text # Import pdfminer to extract text from PDFs
from config import config
def create_index(file_path: str) -> None:
# Use pdfminer to extract text from the PDF file
text = extract_text(file_path)
# Save extracted text to a file
with open(f'{config.OUTPUT_DIR}/output.txt', 'w') as file:
file.write(text)
loader = DirectoryLoader(
config.OUTPUT_DIR,
glob='**/*.txt',
loader_cls=TextLoader
)
documents = loader.load()
text_splitter = CharacterTextSplitter(
separator='\n',
chunk_size=1024,
chunk_overlap=128
)
texts = text_splitter.split_documents(documents)
# Instead of embeddings, we can create an index directly using the text
persist_directory = config.DB_DIR
vectordb = Chroma.from_documents(
documents=texts,
persist_directory=persist_directory
)
vectordb.persist()`
`
обновленный файл разговора.py
from langchain_community.vectorstores import Chroma
from langchain_community.document_loaders import DirectoryLoader, TextLoader
from langchain_community.chat_models import ChatOpenAI
from langchain_community.chains import ConversationalRetrievalChain
from langchain_community.memory import ConversationBufferMemory
from config import config
def create_conversation() -> ConversationalRetrievalChain:
persist_directory = config.DB_DIR
db = Chroma(
persist_directory=persist_directory
)
memory = ConversationBufferMemory(
memory_key='chat_history',
return_messages=False
)
qa = ConversationalRetrievalChain.from_llm(
llm=ChatOpenAI(),
chain_type='stuff',
retriever=db.as_retriever(),
memory=memory,
get_chat_history=lambda h: h,
verbose=True
)
return qa
Я использовал последние версии и библиотеки, во время запуска возникла следующая ошибка
Traceback (most recent call last):File "C:\Users\User\Telegramv1\Telegramv1jeeva\run.py", line 1, in from document_gpt.src.main import appFile "C:\Users\User\Telegramv1\Telegramv1jeeva\document_gpt\src\main.py", line 3, in from document_gpt.helper.utils import process_telegram_data, generate_text_response, generate_file_responseFile "C:\Users\User\Telegramv1\Telegramv1jeeva\document_gpt\helper\utils.py", line 191, in from document_gpt.helper.conversation import create_conversationFile "C:\Users\User\Telegramv1\Telegramv1jeeva\document_gpt\helper\conversation.py", line 77, in from langchain_community.chains import ConversationalRetrievalChainImportError: cannot import name 'ConversationalRetrievalChain' from 'langchain_community.chains' (C:\Users\User\Telegramv1\Telegramv1jeeva\venv\Lib\site-packages\langchain_community\chains_init_.py)
затем я попытался установить langchain 0.0.181 и получил следующую ошибку
Traceback (most recent call last):File "C:\Users\User\Telegramv1\Telegramv1jeeva\run.py", line 1, in from document_gpt.src.main import appFile "C:\Users\User\Telegramv1\Telegramv1jeeva\document_gpt\src\main.py", line 3, in from document_gpt.helper.utils import process_telegram_data, generate_text_response, generate_file_responseFile "C:\Users\User\Telegramv1\Telegramv1jeeva\document_gpt\helper\utils.py", line 191, in from document_gpt.helper.conversation import create_conversationFile "C:\Users\User\Telegramv1\Telegramv1jeeva\document_gpt\helper\conversation.py", line 74, in from langchain_community.vectorstores import ChromaFile "C:\Users\User\Telegramv1\Telegramv1jeeva\venv\Lib\site-packages\langchain_community\vectorstores_init_.py", line 524, in getattrmodule = importlib.import_module(module_lookup[name])^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "C:\Users\Edify Admin\AppData\Local\Programs\Python\Python311\Lib\importlib_init.py", line 126, in import_modulereturn bootstrap.gcd_import(name[level:], package, level)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "C:\Users\User\Telegramv1\Telegramv1jeeva\venv\Lib\site-packages\langchain_community\vectorstores\chroma.py", line 20, in from langchain_core.documents import DocumentFile "C:\Users\User\Telegramv1\Telegramv1jeeva\venv\Lib\site-packages\langchain_core\documents_init.py", line 6, in from langchain_core.documents.base import DocumentFile "C:\Users\User\Telegramv1\Telegramv1jeeva\venv\Lib\site-packages\langchain_core\documents\base.py", line 10, in from pydantic import ConfigDict, Field, field_validator, model_validatorImportError: cannot import name 'field_validator' from 'pydantic' (C:\Users\User\Telegramv1\Telegramv1jeeva\venv\Lib\site-packages\pydantic_init.cp311-win_amd64.pyd)
рядом с этой ошибкой обновлена версия pydantic
после обновления pydantic появляются следующие ошибки
Traceback (most recent call last):File "C:\Users\User\Telegramv1\Telegramv1jeeva\run.py", line 1, in from document_gpt.src.main import appFile "C:\Users\User\Telegramv1\Telegramv1jeeva\document_gpt\src\main.py", line 3, in from document_gpt.helper.utils import process_telegram_data, generate_text_response, generate_file_responseFile "C:\Users\User\Telegramv1\Telegramv1jeeva\document_gpt\helper\utils.py", line 191, in from document_gpt.helper.conversation import create_conversationFile "C:\Users\User\Telegramv1\Telegramv1jeeva\document_gpt\helper\conversation.py", line 74, in from langchain_community.vectorstores import ChromaFile "C:\Users\User\Telegramv1\Telegramv1jeeva\venv\Lib\site-packages\langchain_community\vectorstores_init_.py", line 524, in getattrmodule = importlib.import_module(module_lookup[name])^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "C:\Users\Edify Admin\AppData\Local\Programs\Python\Python311\Lib\importlib_init.py", line 126, in import_modulereturn bootstrap.gcd_import(name[level:], package, level)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "C:\Users\User\Telegramv1\Telegramv1jeeva\venv\Lib\site-packages\langchain_community\vectorstores\chroma.py", line 20, in from langchain_core.documents import DocumentFile "C:\Users\User\Telegramv1\Telegramv1jeeva\venv\Lib\site-packages\langchain_core\documents_init.py", line 6, in from langchain_core.documents.base import DocumentFile "C:\Users\User\Telegramv1\Telegramv1jeeva\venv\Lib\site-packages\langchain_core\documents\base.py", line 10, in from pydantic import ConfigDict, Field, field_validator, model_validatorImportError: cannot import name 'field_validator' from 'pydantic' (C:\Users\User\Telegramv1\Telegramv1jeeva\venv\Lib\site-packages\pydantic_init.cp311-win_amd64.pyd)
Подробнее здесь: https://stackoverflow.com/questions/791 ... -langchain
Проблемы с извлечением PDF-файлов с помощью pdfminer в боте Telegram с Langchain ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Проблемы с извлечением PDF-файлов с помощью pdfminer в боте Telegram с Langchain
Anonymous » » в форуме Python - 0 Ответы
- 19 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Проблемы с извлечением PDF-файлов с помощью pdfminer в боте Telegram с Langchain
Anonymous » » в форуме Python - 0 Ответы
- 19 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Проблемы с извлечением PDF-файлов с помощью pdfminer в боте Telegram с Langchain
Anonymous » » в форуме Python - 0 Ответы
- 17 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Проблемы с извлечением PDF-файлов с помощью pdfminer в боте Telegram с Langchain
Anonymous » » в форуме Python - 0 Ответы
- 16 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Проблемы с извлечением PDF-файлов с помощью pdfminer в боте Telegram с Langchain
Anonymous » » в форуме Python - 0 Ответы
- 26 Просмотры
-
Последнее сообщение Anonymous
-