-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Preserve newlines and other formatting #43
Comments
fixed in PR #39 |
I don't see anywhere in your change where you escape shell input. I'd much prefer if the prompt was in a file instead |
@bernatvadell There is no way your change made a difference. Try with a single-quote to get it to obviously not work. If you end up closing the quote it does work, sure but try to put anything special like $, `, ", <, etc... it does NOT work and gets passed as is to bash. |
If you need a description, $(ls) ended up just running and the output of ls got sent to the model. This is not what should happen under any circumstances... |
IMHO the most proper way to get around this is to put the prompt in some temp file and have the model read from it (using LLAMA's -f). I recommend against trying to escape because there will always be edge cases you will miss and it might be a hit or miss across different shells, OSes, etc... putting it in a file is a universal fix so to speak |
@bernatvadell Yes that would be ideal, no idea why it is spawning in a shell... |
I imagine it would be possible to import the llama.cpp project as a library, I haven't looked into it, and right now, as far as I know, it's published as a console program. |
Finally, I have needed to escape the characters, the ones that I have verified that give problems are these: The change is in the TypeScript PR #44 |
Why do you escape when you could just call exec directly? You don't need to exec it in a shell .. |
Originally it was like this, I'm going to try what you say. |
Anyway this proposal makes me a bit uneasy because in different shells you need to escape different things. For example if user was using fish, then Edit: also if this was a Windows user then none of your escaping would be relevant. |
Is executing it in a shell still needed? I think you could call node's spawn directly now. |
it works quite well. Now directly spawns the process, the arguments do not need to be sanitized manually. the prompt is stored in a temporary file. You can change default directory to store temporal prompts:
|
Fantastic, thank you. That's a fast pace! |
* Use buffering * Use vector * Minor --------- Co-authored-by: Georgi Gerganov <ggerganov@gmail.com>
When using dalai, it strips newlines among other things. I believe this is so that it works in shell (not that you can't pass arguments with newlines, just needs quoting).
I propose the following:
This has the advantage of not needing to worry about escaping/sanitizing user input and will fix other issues I've observed, like:
The text was updated successfully, but these errors were encountered: