Intuitive to use? Or has intuition?
Intuitive to use? Or has intuition?
Google and Amazon have tried to sell theirs for a long time. And none were actually selling much. Amazon admitted to be selling theirs at a loss. Facebook has tried their own - and quickly cancelled them. Google's is in every Android device - and yet pretty much nobody uses them. Even Apple's Siri is more annoyance than help.
That something can be built doesn't mean it will sell or that people will actually want to use it. If you create a solution looking for an imaginary problem that your marketing thinks is what people want instead of a solution that solves a real existing problem, you do get a solution looking for a problem ...
Also, answering questions and communicating in natural language is the easy part of such assistant. For the thing to be useful it must be able to actually do something too. Which is incredibly difficult beyond the (closed) ecosystem of its vendor. Thirdparty integrations are usually driven by who pays the manufacturer for the SDK and partner contract (seen as a marketing opportunity), not by what the users actually want it to integrate with. Hoping for one of these with an open API that anyone could integrate whatever they want with, I am not holding my breath here.
OpenAI is already on it. The latest gen of GPT-3 and -4 are finetuned to respond to "do this thing" commands with JSON structured to:
- provide the name of a given function call
- provide arguments to that function call
it's "early stage", which in this case probably means "good enough to be useful within a month or two", given the rate at which these things have been developing.
Anecdotally, I've been playing with giving the models instructions like:
"When asked to perform a task that you need a tool to accomplish, you will call the tool according to its documentation by this format:
TOOL_NAME(*args)
Below you will find the documentation for your tools."
...and I've gotten it working pretty damn well (not even with the JSON-finetuned models, mind you). All you really need is python-style docstrings and a minimal parser and you're off to the races. I recommend anyone interested play with it a bit.
Dream on.
This is not a technical problem, this is a business problem. Sadly a lot of engineers don't understand that.
The thing is, I've managed to get this working as an interface for a whole segment of stuff that was a pain in the ass before. My task list is all in one place for the first time, and it talks! With words! I have a pair programmer, who is excited to do stuff, on the command line, 24/7. They also have encyclopedic knowledge of anything that isn't a super deep cut, so I can move through more spaces and find solutions that I never would have dreamed of due to the cognitive load of sifting through textbooks and documentation just to create a [ insert more or less anything here].
If you're looking at the folks here who are getting excited and wondering "What's up with *them*?, this is it. It's not about the Next Big Thing so much as it's about "Holy shit, computers are magic again". For themselves.
Of course, I can speak for some of us. For sure, the hungry lets-make-a-startup folks exist and are currently working on doing that - and that's fine. But to me that's boring. Commerce and markets and economies are toxic to creativity. I've tried Bing-with-GPT and it's AWFUL compared to GPT-4, despite being sorta the same underlying thing.
I'm perfectly happy paying OpenAI to use the thing they built, for myself, for now. I am seriously looking forward to migrating to locally run models, once we get there (and we will).
They couldn't have released this at a better time, I have about 30 plugins and i'd say it manages to get the right one about 90% of the time as opposed to about 70 with my hacked together version (but I guess I wrote it and know what to say so maybe that's a bit skewed)
@Tool
def add_todo(title, project=None) -> str:
"""
Add a new TODO.
Args:
title (str): A brief description of the task
project (str, optional): A project to add the todo to, if requested
"""
logger.debug(f"Adding task: {title}")
task = Task(tw, description=title, project=project)
task.save()
return f"Added [ {title} ] to the { project + ' ' if project else '' }TODO list."“Intuitive to use” roughly means that it is easy for a human to interact with.
“Intuition” is the ability to understand something immediately, without the need for conscious reasoning.
I don't really see either of those things as a real possibility. Within my lifetime, anyway.