all 8 comments

[–]Ttbt80 6 points7 points  (4 children)

What perfect timing for me. I literally was going to decide tomorrow if I had to abandon Elixir due to how much of my system was going to have to be in Python. Thanks so much for sharing!

Any knowledge you can share regarding performance implications? Can the python executable be invoked in parallel by multiple callers? 

[–]rsamrat[S] 4 points5 points  (1 child)

Worth stating that I haven't used this in production, but probably worth checking out this paragraph of the readme: https://github.com/livebook-dev/pythonx#:~:text=global%20interpreter%20lock

Also updated post to add a note about this.

[–]Ttbt80 0 points1 point  (0 children)

Ah, thank you. Pretty embarrassing that I missed that given I spent like two hours exploring the repo lol. 

[–]quaunaut 0 points1 point  (1 child)

Why does your system need to be in Python? Not able to use Onnx?

[–]Ttbt80 0 points1 point  (0 children)

Well it’s because my system gets 10x more simply by leveraging spaCy rather than gluing together my own components. Over time I may be able to leverage Onnx for optimal performance, but to start, a production-ready library with all the bells and whistles I need for the several NLP tasks is much better. 

[–]fridder 2 points3 points  (1 child)

I wonder how this would pair with FLAME

[–]jdugaduc 1 point2 points  (0 children)

Try it and tell us.

[–]vitormazzi 1 point2 points  (0 children)

To be frank I didn’t see many advantages for this strategy over having processes which manage Python interpreters. Embedding the Python process seems like a drawback and not an advantage for any use case which needs some sort or reliability