Org-assistant.el – Org Babel extension for Chat Assistant APIs
github.comThere are so many Emacs chat-gpt packages already. How does this one differ from xenodium/chatgpt-shell? That one too, has org-mode integration.
How many of them specifically integrate with org-babel? I agree that there are a ton of Emacs packages trying to take advantage of ChatGPT, but I don't remember any particular ones that integrate with org-babel to give you a sort of "AI-assisted notebooks" software.
> How many of them specifically integrate with org-babel?
The one I asked about. It does integrate with babel. I simply didn't know to what extent.
org-ai does and was recommended here before[1]. The readme mentions the differences:
[1] https://github.com/rksm/org-aiorg-assistant.el and org-ai.el org-ai.el is focused more on runtime interaction with AI org-assistant.el is focused more on reproducible sessions via org babel org-assistant.el supports branching conversations org-assistant.el is not meant to be used downstream as a library for AI endpoint interactions. In org-assistant.el, all interaction is async using org-babel, which allows for notebook style prompt development In org-ai.el, interaction is synchronous and inline, which is better for in-editor use cases org-ai.el supports a lot of other AI use cases like text to speech
chatgpt-shell in org-mode does not support chaining together multiple messages whereas org-assistant supports:
#+BEGIN_SRC ?
A
#+END_SRC
#+BEGIN_EXAMPLE
A-response
#+END_EXAMPLE
#+BEGIN_SRC ?
B
#+END_SRC
Where if you run Ctrl-c Ctrl-C on the block it sends the conversation to chatgpt:
User: A
Assistant: A-response
User: B
This enables notebook style development if you are tinkering with a prompt and want to see how the responses cascade based on further input.
Oh, that's cool. I'll give it a try. Thank you!
Clarification question: When you press C-c C-c on the B block, what is sent to ChatGPT, only B or the whole previous conversation? If the latter, this would break Org Babel semantics. Not necessarily a dealbreaker, but something to be aware of.
It's the whole previous conversation prior to the top level headline containing the block.
Makes sense, I won't be changing it from the current way. I think chatgpt-shell works more idiomatically in the org way in that context so that can be an alternative for people who prefer the former variant.
Wonder which package will replace M-x doctor.