无法导入LlamaParse

-1 投票
1 回答
24 浏览
提问于 2025-04-11 23:04

我在Google Colab笔记本里做了一个简单的Python应用,运行得很好。现在我想把这个应用从Google Colab转移到本地的Docker-Python应用里。

但是每当我用Docker运行这个应用,并把它放在一个.py文件里

from llama_parse import LlamaParse

我的应用就会出现以下错误:

pdf-compare-mvp1-web-1  |   File "/usr/local/lib/python3.8/site-packages/llama_parse/base.py", line 386, in LlamaParse
pdf-compare-mvp1-web-1  |     def get_images(self, json_result: list[dict], download_path: str) -> List[dict]:
pdf-compare-mvp1-web-1  | TypeError: 'type' object is not subscriptable

这是功能正常的笔记本代码:

!pip install -q llama-index
!pip install -q openai
!pip install -q transformers
!pip install -q accelerate

import os
os.environ["OPENAI_API_KEY"] = "..."

from IPython.display import Markdown, display
from llama_index.llms.openai import OpenAI
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
from llama_parse import LlamaParse

parser = LlamaParse(
    api_key="...",  
    result_type="markdown"  
)
document1 = await parser.aload_data("data/some.pdf")

# some more code

以下是无法正常工作的本地Docker应用:

为了在我自己的电脑上构建和运行这个应用,我创建了一个Python Flask应用,并准备了以下相关文件:

Dockerfile

# Use an official Python runtime as a parent image
FROM python:3.8-slim

# Set the working directory in the container
WORKDIR /app

# Copy the current directory contents into the container at /app
COPY . /app

# Install any needed packages specified in requirements.txt
RUN pip install --no-cache-dir -r requirements.txt

# Make port 5000 available to the world outside this container
EXPOSE 5000

# Define environment variable
ENV FLASK_APP=app.py

# Run app.py when the container launches
CMD ["flask", "run", "--host=0.0.0.0"]

docker-compose.yml

version: '3.8'
services:
  web:
    build: .
    volumes:
      - .:/app
    ports:
      - "5002:5000"
    environment:
      - FLASK_ENV=development

requirements.txt

Flask==2.1.2
python-dotenv==0.20.0
boto3==1.24.12
Werkzeug==2.2.0
PyMuPDF
llama-index
openai
llama-parse
# transformers
# accelerate

processor.py

import fitz  # PyMuPDF
import os
from config import Config

# from llama_parse import LlamaParse
# import nest_asyncio
# nest_asyncio.apply()


from llama_index.llms.openai import OpenAI
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
from llama_parse import LlamaParse

从 llama_parse 导入 LlamaParse 这一行导致了错误。每当这一行存在或不存在时,应用就会正常或不正常

1 个回答

0

根据这个回答

list[dict] 从 Python 3.9 版本开始支持。所以你需要把你的 Python 版本升级一下。

你可以在你的 Dockerfile 中把 FROM python:3.8-slim 改成 FROM python:3.9-slim 或者更高的版本。

撰写回答