[HN Gopher] Show HN: A ChatGPT TUI with custom bots
___________________________________________________________________
Show HN: A ChatGPT TUI with custom bots
Hi HN! We just shipped a full-featured TUI (Text User Interface)
for chatting with your Marvin bots, powered by GPT 4 or GPT-3.5.
Like all of Marvin, it's fully open-source and we hope you find it
useful. To launch it, upgrade and run `marvin chat`. The TUI is
built with Textual (https://github.com/textualize/textual/) and
uses some of its newest features including background workers and
modals. We've made base TUIs before but this is the first one
that's a true "app" with many screens and coordinated global state.
Happy to answer any questions about working with Textual - once it
"clicked" it was surprisingly similar to building a traditional
front end! Small note: Terminal.app on MacOS isn't great for TUIs,
so while it'll work, we suggest an alternative terminal. One of
our goals with the TUI was to integrate Marvin's bots into the
familiar chat UX. Bots can have distinct personalities,
instructions, and use plugins, so each one is like a mini
"conversational application." You might know about Marvin because
of AI Functions, but at its core Marvin is a library for building
and deploying bots (in fact, AI functions are actually a bot!). We
started building the TUI as a way to quickly explore and assess our
bots' capabilities. It quickly became so useful that we decided to
make it a first-class experience. We've preloaded several bots,
including one that can guide you through an RPG and another that is
obsessed with explaining regex, and will add many more. You can
even create your own bots just by asking the default bot (Marvin)
to help you. We hope the TUI is a fun way to quickly interact with
your bots and it was a great way for us to learn Textual. Please
check out the code and let us know what enhancements we can add!
Author : jlowin
Score : 57 points
Date : 2023-04-08 19:10 UTC (3 hours ago)
(HTM) web link (www.askmarvin.ai)
(TXT) w3m dump (www.askmarvin.ai)
| lee101 wrote:
| [dead]
| darkteflon wrote:
| I hadn't heard of Marvin before but it looks interesting. At
| first I thought this TUI was just a convenience interface on top
| of the ChatGPT web service but it's quite a bit more than that.
|
| Having dug into the docs for ten minutes, the library as a whole
| seems to be in the same space as langchain. Some of the starting
| abstractions are similar but overall it seems to take a higher-
| level approach with a focus on clarity and convenience. Will
| definitely try this out. Would also love to hear more about the
| origins and philosophy if any maintainers are about!
|
| Edit: As an aside: I have found Textual quite difficult to get to
| grips with in the past. Too much magic, maybe. Does anyone know
| of any good alternatives at a similar level of abstraction? I
| don't want to get down in the weeds to knock up a simple TUI.
| jlowin wrote:
| Sure! We wrote a little bit about the origins in an announce
| post a couple weeks ago
| (https://news.ycombinator.com/item?id=35366838).
|
| Marvin (https://www.github.com/prefecthq/marvin) powers our AI
| efforts at Prefect (https://www.github.com/prefecthq/prefect).
|
| The first version of Marvin was an internal framework that
| powered our Slackbot. There are close to 30,000 members of our
| open-source community and we rely heavily on automation to
| deliver support. Then, as more of our customers started
| building AI stacks, we began to view Marvin as a platform to
| experiment with high-level UX for deploying AI. We have a few
| internal use cases, but it was the diversity of customer
| objectives that gave us confidence.
|
| Historically, we've always focused on data engineering, but the
| more we worked with LLMs, the more we saw the same set of
| issues, basically driven by the need to integrate brittle, non-
| deterministic APIs that are heavily influenced by external
| state into well-structured traditional engineering and
| pipelines. We started using Marvin to codify the high-level
| patterns we were repeatedly deploying, including getting
| structured outputs from the LLM and building effective
| conversational agents for B2B use.
|
| The lightbulb moment was when we designed AI functions, which
| have no source code and essentially use the LLM as a runtime.
| It's one of those ideas that feels too simple to actually
| work... but it actually works incredibly well. It was the first
| time we felt like we weren't building tools to use AI, but
| rather using AI to build our tools. We open-sourced with AI
| functions as the headline and the response has been amazing!
| Now we're focused on releasing the "core" of Marvin -- the
| bots, plugins, and knowledge handling -- with a similar focus
| on usability.
|
| Hope that's what you were looking for!
| darkteflon wrote:
| Superb, that's very helpful, thanks! I'm going to add this to
| our toolkit and use it alongside our langchain experiments.
| The space has a real "thousand flowers" feel to it atm.
|
| At risk of running out my question quota: we use dagster at
| the moment but have found that it has some unexpected rough
| edges. Would you be able to point me in the direction of your
| preferred comparison against Prefect?
| evo_9 wrote:
| I'm surprised nobody has yet that I've seen made a talking ui for
| ChatGPT.
|
| Aka you speak to it your question and it speaks back its answer
| while writing to the screen. Or maybe I've missed something like
| that?
| tacone wrote:
| Bing (based on ChatGPT) does that, at least on mobile, if you
| talk to it then it will talk back to you.
| aymeric wrote:
| How would you use it?
|
| I built such voice assistant for myself, but found that audio
| is a limiting medium.
| darkteflon wrote:
| I played around with this, looks good:
| https://news.ycombinator.com/item?id=35358873
|
| I realised though that for most of my use cases I actually want
| it to respond with text.
| dror wrote:
| I created one, focused on language skills, but can be used for
| anything. https://github.com/drorm/leah
| refulgentis wrote:
| Yeah, quite a few out there. As long as you can write an OpenAI
| API integration and integrate with browser apis for TTS &
| transcription, you're set. Probably 20-30 hours total for an
| implementation.
| rpastuszak wrote:
| I was reviewing my old projects recently and found one, a
| voice assistant from 9-10 years ago, where I used voice
| recognition and TTS plus a bit of NLP to communicate with
| Wolfram Alpha as a sort of more nerdy Siri. It was pretty
| trivial, just a bunch of open APIs put together.
|
| The funny part about it (at least to me) was that I called it
| a *HTML5* voice assistant, because _that_ was the cool and
| trendy tech then, no mention of AI /ML anywhere.
| marcusbuffett wrote:
| As someone who loves to stay in the terminal when possible, this
| looks awesome. The lack of multi-line input is a bit of a bummer
| but I guess I can c+p from my editor or something
| jlowin wrote:
| Thanks! And I agree - as soon as Textual has multi-line inputs,
| we'll include them.
| hyperfuturism wrote:
| I think TUI tends to be overrated. They're not very practical,
| and mostly end up as a novelty application.
|
| Regardless, I respect the effort in building this - great work.
| dror wrote:
| Well, if you're interested in something more lite-weight, I
| wrote
|
| https://github.com/drorm/gish
|
| which is a shell command that lets you interact with GPT with
| flags, pipes, etc. in a much more unixy way.
|
| This TUI has some impressive features, like the bots and
| plugins, but I feel gish covers most of the use cases,
| specifically for software development.
| breakfastduck wrote:
| I disagree. I'm not a huge user, but there are many people I
| work with who want to work as exclusively with keyboard /
| inside a terminal pane as possible.
|
| So there are definitely plenty of people out there for whom
| this stuff isn't just a novelty.
|
| It also then simplifies workflow for those who are SSHing into
| a machine they have control over etc..
| aymeric wrote:
| Personally I find the idea of having a Bot Manager quite
| interesting. I imagine future APIs could be boys that talk to
| each other, and this Bot Manager would allow humans to join the
| conversation
| jlowin wrote:
| Exactly! Threads in Marvin are designed to support multiple
| bots and users. Two key user stories:
|
| - multiple users in a Slack thread talking to the same bot.
| This is something we want to deliver soon, as Marvin powers our
| existing Slack bots
|
| - one user addressing multiple bots, each of which is designed
| for a specific purpose (because bots do way better with reduced
| scope than when you have one bot try to do everything)
| darkteflon wrote:
| > bots do way better with reduced scope than when you have
| one bot try to do everything
|
| Absolutely true and something that perhaps doesn't get
| mentioned enough. Context constraints are a superpower.
| mymountaingoat wrote:
| what i really want to find is a dead simple program simple
| chatgpt api interfaces that let you store conversations on the
| filesystem such that they can be easily resumed.
|
| like it just reads from stdin, parses an optional header data,
| and then parses alternating user and system messages. such that
| you can just pipe the whole shebang in from any text editor and
| get the same thing back with output appended
| jacquesm wrote:
| https://github.com/marcolardera/chatgpt-cli
| kulikalov wrote:
| Could you describe a scenario where you need to resume a
| conversation?
| mymountaingoat wrote:
| i tend to dump a handful of source files related to a project
| i'm working on and ask about making changes. i like to keep
| an ongoing conversation where i ask about different ways i
| might implement the changes. keeping the conversation on the
| filesystem makes it easier to think on stuff and come back to
| them later.
| shikaan wrote:
| https://gist.github.com/shikaan/b978c5553a5545f5a48e2b8a6f42...
|
| You can store conversations somewhere else than /tmp using an
| argument, for example
| mymountaingoat wrote:
| brilliant, thank you, that's perfect. i knew this had to be
| out there
| stkai wrote:
| The TUI looks great! I would love if it could also work with the
| Azure OpenAI API.
| jaimehrubiks wrote:
| Does it work with chatgpt plus credentials, or does it need an
| API token?
| rpastuszak wrote:
| I just got a ChatGPT subscription and quickly realised that it
| might be much cheaper for me to use the API with an alternative
| client. Is there any downside to using the API besides not
| being able to access the default UI?
|
| (when Dall-e 2 came out I save 7-8x by writing a custom front-
| end and using the API keys instead of buying tokens, I'm a
| cheap bastard)
| shakabrah wrote:
| for gpt3.5-turbo this may be true, depending on your use
| rate. but in my experience for gpt-4 it is more expensive to
| use my key.
| jlowin wrote:
| It does need an API token - it will ask you for it when you
| start if you haven't stored one already.
___________________________________________________________________
(page generated 2023-04-08 23:00 UTC)