microsoft / aici

AICI: Prompts as (Wasm) Programs
MIT License
1.87k stars 76 forks source link

better folder structure #56

Closed mmoskal closed 5 months ago

mmoskal commented 5 months ago

Proposed structure:

top
    README.md
    aici.sh

top (compliance)
    CODE_OF_CONDUCT.md
    LICENSE
    NOTICE.md
    SECURITY.md
    SUPPORT.md
    TRANSPARENCY.md

top (rust)
    Cargo.lock
    Cargo.toml
    rustfmt.toml
    target/

top (python)
    pytest.ini

docs/ ?
    REST.md
    proxy.md (move to README.md)

aici/
    aici_abi/
    aicirt/

controllers/
    declctrl/
    jsctrl/
    pyctrl/
    uppercase/

rllm/
    rllm-cpp/ -> rllm-llama-cpp/
    rllm-cuda/
    rllm-lib/
    llama-cpp-low/
    tch-cuda/

scripts/
    harness/ -> py/

py/
    promptlib/
    pyaici/
    tests/
    vllm/
    setup.py
emrekiciman commented 5 months ago

1) Should the py/ folder be a client/ folder? 2) Where do unit tests go? is there a tests/ subfolder for rllm/rllm-* or do all tests go in py/tests/ ? if so, maybe py/tests should be a top-level tests folder

mmoskal commented 5 months ago

pyaici has stuff for vLLM and HuggingFace (server)

Current tests folder is for pytest specifically (and in fact it only has declctrl tests), so I would put it under py; then we have ./scripts/test-jsctrl.sh and ./scripts/test-pyctrl.sh - maybe better to extend ./aici.sh with these or have pyctrl/test.sh etc? on top of that there are rLLM tests (that check if the model works properly) under rllm-cuda/test.sh - it's all a bit confusing and the fact I can't run most of this stuff in gh actions is a problem...