instructor_ex
instructor_ex copied to clipboard
Structured outputs for LLMs in Elixir
I've been looking for local-only solutions to reliably extract structured data from invoices/receipts. No API/cloud solutions for obvious privacy reasons (those receipts can sometimes include credentials or account identifiers, and...
Hi, thanks for creating this nice library :blush: I recently came accros [GroqCloud](https://groq.com/). It seems like an alternative to OpenAI and is powered by open source moduls like Mixtral, Llama2...
When trying to run [the quickstart example](https://hexdocs.pm/instructor/quickstart.html) in my local livebook, I get this error: ``` Could not compile :instructor, no "mix.exs", "rebar.config" or "Makefile" (pass :compile as an option...
@thmsmlr Thank you for this very cool library! I started experimenting with it a few days ago and noticed that the feature added in #23 didn't work when I tried...
Jaxon is used in a couple of places in the library. The thing is this library has not seen any commit in the last 2.5 years (https://github.com/boudra/jaxon). I would suggest...
We have a need for ipv6 (fly.io flycast) to connect to ollama. Would you be up for a PR that allows passing through Req options to the adapter? (Much like...
I upgraded to Ecto 3.12, and now `Instructor.completion` fails immediately with an ArgumentError: ``` ** (ArgumentError) errors were found at the given arguments: * 1st argument: not an atom (erts...
# Context OpenAI [blog post](https://openai.com/index/introducing-structured-outputs-in-the-api/) introduces the "Structured Outputs" feature to their API. This Structured Output feature expands the JSON model by guaranteeing that the JSON output will conform to...
- As described in https://github.com/thmsmlr/instructor_ex/pull/56, it is necessary to be able to control the full request path. The current implementation always adds `/v1/chat/completions` at the end, which doesn't work for...
FIxes #32 `echo_response` is being called every time despite it only matching for calls made of type `:tool`, so this just adds a catch also it doesn't get a match...