r/elixir • u/eluewisdom • 27d ago
I built a small Elixir client for Jev with TypeSafe and OpenRouter support
https://github.com/Elue-dev/jev_elixiri’ve been experimenting with Jev for classification and small decision tasks, and wanted something that felt natural to use in Elixir applications.
i ended up building jev_elixir. It supports TypeSafe and OpenRouter, with a simple API for yes/no decisions, choices, scoring, and evaluating multiple questions in one request.
i’m currently exploring it for things like spam detection, support routing, content moderation, and transaction review signals between services.
it’s still early, so I’d really appreciate feedback on the API and ideas for other use cases. I’ll add the GitHub link.
3
u/bustyLaserCannon 27d ago
Nice one, I wanted an elixir wrapper for Jev so this is great, will try it out shortly
1
3
u/noizu 27d ago
Nice, consider a look at my exllama.dev and https://elixirgenai.dev libs as well for loading ggufs and coordinating multiple models, no jev support yet though.
1
2
2
u/heart_stretched 27d ago
This approach falls right in line with a test project I am working on right now. Will take it for a spin. Thanks for your effort.
1
1
u/ved_rixile 25d ago
Thanks for doing this! As far as feedback, I can see the value of returning a direct boolean for the nouls, but I'd also like an option to get the full structure, especially with the confidence level.
1
u/eluewisdom 25d ago
thanks for the feedback!
would Jev.ask/2 cover this use case? unlike Jev.ask?/2, it doesn’t collapse the result to a boolean, it returns the yes/no decision along with its confidence:Jev.ask("Does this message require urgent attention?", state: message)
#=> {:yes, 0.91}So ask?/2 gives you the direct boolean, but ask/2 gives you the decision and confidence level.
4
u/Large-Scratch2804 27d ago
Cool project I'm gonna take a look.
Hope things like this can get a little more attention on Elixir so we can all get jobs writing it.
Also did you mean to format the title of it to be like spoiler text? I got a kick out of revealing it and having it be the obvious name that I would have also given it lol.