I recently published a new package on npm that brings the OpenAI APIs to React Native Expo without polyfills.
Today the library supports chat streaming, normal chat completions and file upload with more endpoints coming soon. The goal of the library is to follow the OpenAI Node SDK wherever possible while taking advantage of React Native SSE and Expo FileSystem with streaming and file upload support where the OpenAI Node SDK does not work. Lmk what you think or what you would like to see!
I'm not sure I agree with the fact that an abstraction is always the answer, but your last sentence outlines precisely one of our motivations behind Marsha. You can specify an imperative set of steps in the description of a function/program, or you can (in the future) write a Python function that you use from Marsha
The first sentence was a little tongue in cheek, so I'm glad that you didn't 100% agree with it. :) But it was a all-too-common paradigm in my early years as a Java developer.
I would say that it depends. Python and JS, two of the most used programming languages, abstract away memory management and threading details that most of the time you don't need, but you can "drop down" to write code that does pay attention to that within the language (building an object pool and reusing it, or memoization, etc) and if that's not enough, go to the "deeper" language like C/Rust to handle those cases with first-class primitives.
one of the contributors here. we have a statistical test script we can run on our branches to test the compile time, cost and reliability. we want to try tree of thought and also something like https://www.reddit.com/r/ChatGPT/comments/14d7pfz/become_god.... that said, we found that when we asked GPT to first explain why a test case is failing and then to correct that failure instead of just asking it to correct the failure, unexpectedly costs went up and reliability went down
It's a funny interaction. While I was mad initially, GPT-4 creating the issue actually solved problem for the user, so yeah I don't know if this should be counted as a positive or negative example of AI.
Here it's not really blowing past a guardrail, but rather it's a sharp corner the end user didn't expect.
End user set it up with tools that told ChatGPT -- If you need to open an issue, here's how: zzzzzzzzzz. Then he asked ChatGPT a question and was surprised that it did zzzzzzzzzzz and opened an issue without asking.
Said tools may want to clarify their instructions to ChatGPT-- that users will usually want to be consulted before taking these kinds of actions.
“Human in the loop” is meant to be “a human is always in positive control of the system’s actions.”
It does not mean “system will sometimes do things unexpectedly and against user’s intention but upon generous interpretation we might say the human offered their input at some point during the system’s operation.”
Exactly, this is not human in the loop. The plugin was created without guard rails. A human in the loop guard rail would be "here is an issue template, please confirm to post this". It's really a simple change and this is the sort of thing that regulation should address, it shouldn't try to ban the technology outright, but rather require safe implementation.
At the same time, the degree of guard-rail necessary in the plugin is unclear. Is opening a GitHub issue something that should require user confirmation before the fact? Probably, but you could convince me the other way-- especially if GPT4 gets a little better.
We decide how much safety scaffolding is necessary depending upon the potential scale of consequences, the quality of surrounding systems, and the evolving set of user expectations.
I'm not sure regulators should be enforcing guard-rail on these types of items-- or at least not yet.
Assign blame wherever you want, the fact of the matter is this is not what most people mean when they say “human in the loop.” The “AI will always have HITL” argument was always weak, but now plainly disproven.
The logged behavior would surprise many totally sensible people, as you’re seeing in this comment thread.
What exactly was the user error? Are we to believe that if you authenticate a plug-in into your session you are okaying it to do any of its supported operations, even at wildly unexpected times, and this is considered “in the loop?”
> Are we to believe that if you authenticate a plug-in into your session you are okaying it to do any of its supported operations, even at wildly unexpected times, and this is considered “in the loop?”
Here, someone chose to run code and give it credentials. The code was designed, among other things, to let ChatGPT open issues. They were surprised when the code opened an issue on behalf of ChatGPT using the user's credential.
When you run code on a computer designed to do X and give it credentials sufficient to do X, you may expect that X may occur. This isn't really an AI issue.
Code hooked to a LLM that does durable actions in the real world should probably ask for human confirmation. It's probably a good practice of plugin developers to have some distinction similar to GET vs. POST.
Most code that would automatically open issues on GitHub should probably ask for human confirmation. There's some good use cases that shouldn't, including some with LLMs involved -- but asking is a sane default.
I remember being surprised when I ran a program and it sent a few hundred emails once.
> Code hooked to a LLM that does durable actions in the real world should probably ask for human confirmation.
Right, and until this happens these systems are not HITL. The argument provided as recently as a few months ago that these systems are safe because humans will always be in the loop is now clearly dismissible.
> Right, and until this happens these systems are not HITL.
You're drawing the system line strangely and making the choice about "in the loop" strangely.
A human decided to hook it up to a plugin with their Github credentials and to allow it to do actions without pre-approval. A human was still in the loop because the human then didn't like what it did and disconnected it. It only did a single action, rather than the kinds of scripting mistakes that I've seen that can do hundreds, but it still wasn't a very sane default for that plugin.
Is my cruise control HITL? It does not ask for my pre-approval before speeding up or slowing down.
Sometimes, yes. The radar my old Infiniti G35 used would sometimes get confused when facing into the sun in the late or early day and do bad things (in either direction: losing the car in front of it or decelerating unnecessarily). It was still HITL: I'd tap the brake and mitigate the bad thing it was doing.
HITL doesn't mean that a human never has to intervene or is never surprised by what the system does. It just means that a human initiates actions and can exercise genuine oversight and control.
Traction by Weinberg. Understanding the distribution of your product, how to think about it and how much resources to devote to it was a missing piece for me as a technical founder. I easily fall into the fallacy of "build it and they will come" even when I don't think I do.
I'm fully on the Apple ecosystem nowadays so don't feel this pain anymore, but I would have used this before. Not sure if I would have paid for it though
It doesn't matter which ecosystem, just try to send a list of tasks \ shopping list from Apple to Android without registration. This app solves the 1-2-3 problem easily.
I fully agree with this. Our dashboard cues you into which tables have rows in them and you can click on them to visualize the rows much like any SQL editor. I find this to be much better than using the AWS console/UI to understand what is in an AWS account. A few people in the community are interested in making cloud visualizations and we will definitely post about those when they happen. The great part of encoding infrastructure in PostgreSQL is that relations between pieces of infrastructure like an EC2 instance, a security group, and a load balancer are encoded naturally as foreign key relations that you can make sense of in a familiar when compared to the AWS console or `depends` clauses in IaC tools.
Today the library supports chat streaming, normal chat completions and file upload with more endpoints coming soon. The goal of the library is to follow the OpenAI Node SDK wherever possible while taking advantage of React Native SSE and Expo FileSystem with streaming and file upload support where the OpenAI Node SDK does not work. Lmk what you think or what you would like to see!