• Graham King's avatar
    feat: Bring-your-own engine for dynemo-run (#43) · 1b96c2c4
    Graham King authored
    1. Create `my_engine.py`
    
    ```
    import asyncio
    
    async def generate(request):
        yield {"id":"1","choices":[{"index":0,"delta":{"content":"The","role":"assistant"}}],"created":1841762283,"model":"Llama-3.2-1B-Instruct","system_fingerprint":"local","object":"chat.completion.chunk"}
        await asyncio.sleep(0.1)
        yield {"id":"1","choices":[{"index":0,"delta":{"content":" capital","role":"assistant"}}],"created":1841762283,"model":"Llama-3.2-1B-Instruct","system_fingerprint":"local","object":"chat.completion.chunk"}
        await asyncio.sleep(0.1)
        yield {"id":"1","choices":[{"index":0,"delta":{"content":" of","role":"assistant"}}],"created":1841762283,"model":"Llama-3.2-1B-Instruct","system_fingerprint":"local","object":"chat.completion.chunk"}
        await asyncio.sleep(0.1)
        yield {"id":"1","choices":[{"index":0,"delta":{"content":" France","role":"assistant"}}],"created":1841762283,"model":"Llama-3.2-1B-Instruct","system_fingerprint":"local","object":"chat.completion.chunk"}
        await asyncio.sleep(0.1)
        yield {"id":"1","choices":[{"index":0,"delta":{"content":" is","role":"assistant"}}],"created":1841762283,"model":"Llama-3.2-1B-Instruct","system_fingerprint":"local","object":"chat.completion.chunk"}
        await asyncio.sleep(0.1)
        yield {"id":"1","choices":[{"index":0,"delta":{"content":" Paris","role":"assistant"}}],"created":1841762283,"model":"Llama-3.2-1B-Instruct","system_fingerprint":"local","object":"chat.completion.chunk"}
        await asyncio.sleep(0.1)
        yield {"id":"1","choices":[{"index":0,"delta":{"content":".","role":"assistant"}}],"created":1841762283,"model":"Llama-3.2-1B-Instruct","system_fingerprint":"local","object":"chat.completion.chunk"}
        await asyncio.sleep(0.1)
        yield {"id":"1","choices":[{"index":0,"delta":{"content":"","role":"assistant"},"finish_reason":"stop"}],"created":1841762283,"model":"Llama-3.2-1B-Instruct","system_fingerprint":"local","object":"chat.completion.chunk"}
    ```
    
    2. Build
    
    ```
    cargo build --release --feature python
    ```
    
    3. Run
    
    ```
    dynemo-run out=pystr:my_engine.py --name test
    ```
    
    And here's a distributed system, with your engine:
    
    - Node 1: `dynemo-run in=http out=dyn://test`
    - Node 2: `dynemo-run in=dyn://test out=pystr:my_engine.py`
    1b96c2c4
Cargo.lock 161 KB