Hacker News new | ask | show | jobs
by iLemming 1138 days ago
There are so many Emacs chat-gpt packages already. How does this one differ from xenodium/chatgpt-shell? That one too, has org-mode integration.
2 comments

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:

   org-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

[1] https://github.com/rksm/org-ai
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.