microsoft / aici

AICI: Prompts as (Wasm) Programs
MIT License
1.92k stars 78 forks source link

promptlib is broken #105

Closed renatolfc closed 3 months ago

renatolfc commented 4 months ago

bfbc4c3 deprecated the ast module, but promptlib wasn't updated accordingly.

Because of that, importing promptlib fails.

Minimal example to reproduce the issue:

  1. Install aici:

    # pip install 'git+https://github.com/microsoft/aici.git@v0.2.1#egg=pyaici&subdirectory=py'
    Collecting pyaici
    Cloning https://github.com/microsoft/aici.git (to revision v0.2.1) to ./pip-install-k3x4xa7d/pyaici_d72d87c10d2a44caac4ddc24c482f7b7
    Running command git clone --filter=blob:none --quiet https://github.com/microsoft/aici.git /tmp/pip-install-k3x4xa7d/pyaici_d72d87c10d2a44caac4ddc24c482f7b7
    Running command git checkout -q 017179c935cd25309271052e9d5983181b85eb1b
    Resolved https://github.com/microsoft/aici.git to commit 017179c935cd25309271052e9d5983181b85eb1b
    Running command git submodule update --init --recursive -q
    Installing build dependencies ... done
    Getting requirements to build wheel ... done
    Installing backend dependencies ... done
    Preparing metadata (pyproject.toml) ... done
    Collecting requests (from pyaici)
    Using cached requests-2.31.0-py3-none-any.whl.metadata (4.6 kB)
    Collecting charset-normalizer<4,>=2 (from requests->pyaici)
    Using cached charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (33 kB)
    Collecting idna<4,>=2.5 (from requests->pyaici)
    Using cached idna-3.7-py3-none-any.whl.metadata (9.9 kB)
    Collecting urllib3<3,>=1.21.1 (from requests->pyaici)
    Using cached urllib3-2.2.1-py3-none-any.whl.metadata (6.4 kB)
    Collecting certifi>=2017.4.17 (from requests->pyaici)
    Using cached certifi-2024.2.2-py3-none-any.whl.metadata (2.2 kB)
    Using cached requests-2.31.0-py3-none-any.whl (62 kB)
    Using cached certifi-2024.2.2-py3-none-any.whl (163 kB)
    Using cached charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (141 kB)
    Using cached idna-3.7-py3-none-any.whl (66 kB)
    Using cached urllib3-2.2.1-py3-none-any.whl (121 kB)
    Building wheels for collected packages: pyaici
    Building wheel for pyaici (pyproject.toml) ... done
    Created wheel for pyaici: filename=pyaici-0.1-py3-none-any.whl size=31019 sha256=23c1ae5e1723dc7b79fd0492d7773c5ad421d2bf1abafc1f7b6a717237a15f4e
    Stored in directory: /tmp/pip-ephem-wheel-cache-cwd6d_ij/wheels/c4/83/43/d78271a43eb24be746456fb053eb7c97e1956da461d3dc7a07
    Successfully built pyaici
    Installing collected packages: urllib3, idna, charset-normalizer, certifi, requests, pyaici
    Successfully installed certifi-2024.2.2 charset-normalizer-3.3.2 idna-3.7 pyaici-0.1 requests-2.31.0 urllib3-2.2.1
  2. Try to import promptlib

# python -c "import promptlib"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/root/.venv/src/pyaici/py/promptlib/__init__.py", line 1, in <module>
    from .promptlib import PromptNode, append, begin, end
  File "/root/.venv/src/pyaici/py/promptlib/promptlib/__init__.py", line 2, in <module>
    from .prompt import PromptNode, append, begin, end, PromptProgram
  File "/root/.venv/src/pyaici/py/promptlib/promptlib/prompt.py", line 5, in <module>
    from pyaici import ast
ImportError: cannot import name 'ast' from 'pyaici' (/root/.venv/src/pyaici/py/pyaici/__init__.py)