acrolink

acrolink

Libraries for AI driven chat-bot?

Hello,

I am looking for Elixir libraries to build a chat / recommendations bot. It should be AI driven (Open AI or Gemini) accelerated by data (about locations and businesses) stored in RDBMS.

Thank you.

Marked As Solved

martosaur

martosaur

I’m aware of 3 libraries at the moment:

  • langchain | Hex - I didn’t try this one myself, but looking at the docs it has a lot of stuff that’ll help with tools calls. That’d be my first choice.
  • instructor | Hex - This one is mostly for structured outputs, but can be useful nonetheless. Make sure to check out the main branch, as all the juicy recent changes haven’t been published yet
  • instructor_lite | Hex my fork of instructor. I’d say if you find yourself struggling to write custom stuff with instructor, take a look at this one. It’s simpler and easier to embed into your own code.

Also Liked

arcyfelix

arcyfelix

I just Googled Elixir chatgpt and got this:

Seems like it suits your requirements.

al2o3cr

al2o3cr

Check out instructor_ex - even if it doesn’t do quite what you want it should provide some inspiration / examples:

https://github.com/thmsmlr/instructor_ex

acrolink

acrolink

@martosaur @al2o3cr @arcyfelix

Thanks for sharing, all helpful. I will tell you more about our needs so you can hopefully help me to choose better between the different libraries.

We are building a chat-bot which should help people choose a restaurant to dine at or to order food delivery. Users will be authenticated and data from previous chats will be stored in RDBMS in order to fine-tune future suggestions by the chat-bot.

The chat session will have stages:

A. Understand if users want to dine at a restaurant or want to order delivery.
B. Understand cuisine type / preference of user.
C. Provider suggestions based on AI or/and data about restaurants we have at RDBMS.
D. Help user make an order online using 3rd party API’s

What do you think, which library can suit these needs better? Thank you.

Where Next?

Popular in Questions Top

chrisalley
ExUnit now has describe blocks which is a welcome addition coming from RSpec. In the docs, it states that nested hierarchies of describe ...
New
greenz1
I have a phoenix application from which a user can download multiple(5-6) files of size 1MB. I couldn’t find anything related to sending ...
New
dokuzbir
I want to highlight html closing tags when i click a html tag. That works in .html files but doesnt work for html.eex templates. How can...
New
pmjoe
I have a relationship of love and hate with Elixir. Lots of things are just absolutely right, but there are some things that are kind of ...
New
lucidguppy
I have a super simple question about elixir - how would I take a file like this foo bar baz and output a new file that enumerates th...
New
itssasanka
Hi all, Trying to get some more clarity over utc_datetime and naive_datetime for Ecto: The documentation above suggests that while ...
New
fayddelight
I tried installing elixir 1.11.2 erlang 23.3.4 via asdf in my zsh shell. Enabled the versions locally and globally. When I list them ...
New
bsollish-terakeet
Credo is smart enough to check for (something like) this: assert length(the_list) == 0 with this response: Checking if an enum is empt...
New
shijith.k
I am trying to start a new phoenix project with elixir 1.9, but mix phx.new does not work. It says that ** (Mix) The task "phx.new" could...
New
jononomo
For some reason my phoenix channels are working for me in my local dev environment, but as soon as I deploy via Docker, I get a 403 error...
New

Other popular topics Top

malloryerik
Hi, this is for people who, like me, have had some friction using .html.heex templates in VSCode. The solution seems to be, in a hyphena...
New
Darmani72
If I have a post route which an argument: post /my_post_route/:my_param1, MyController.my_post_handler How would get the post params ...
New
New
JeremM34
Hello, how can I check the Phoenix version ? Thanks !
New
hariharasudhan94
lets say i have a sample like a = 20; b = 10; if (a > b) do {:ok, "a"} end if (a < b) do {:ok, b} end if (a == b) do {:ok, "equa...
New
jay1
Why is it that the mnesia database isn’t the most preferred database for use in Elixir/Phoenix?
New
aalberti333
As the title describes, I’m trying to run Enum.map() over a list of key/value pairs, where the value is a map. My data looks like this: ...
New
klo
Got a question about when to concat vs. prepending items to list then reversing to achieve appending. So i know lists boil down to [1 | ...
New
joaquinalcerro
Hi there, I am working with Ecto-Postgresql and I need to call all of the records from a specific table but the table has 40,000 records...
New
AstonJ
Seen any cool LiveView demos, sample apps or examples? Please post them here! :003:
New

We're in Beta

About us Mission Statement