Skip to content
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

Response duplicating many times #65

Open
allenlawson opened this issue Jan 29, 2024 · 4 comments
Open

Response duplicating many times #65

allenlawson opened this issue Jan 29, 2024 · 4 comments

Comments

@allenlawson
Copy link

allenlawson commented Jan 29, 2024

Hi, I love this tool, I hope to help make it better!

One major issue (and sorry if it has already been raised), the response from OpenAI is duplicated many times over before finishing response, usually in the middle of the response.

1. CocoaPods                                                               

If the package was added via CocoaPods, you would remove the package entry 
from the Podfile and then run:                                             

                                                                           
 pod install                                                               
                                                                           

This command will update the project and remove the unused dependencies.   

2. Carthage                                                                

For Carthage, remove the line from the Cartfile that includes the package  
you want to remove, then run:                                              

                                                                           
 carthage update                                                           
                                                                           

After that, you'll also need to manually remove the references from your   
To remove a package from an Xcode project, you typically need to do it     
through the Xcode interface or by editing the project's configuration      
files, depending on how the package was added (e.g., CocoaPods, Carthage,  
Swift Package Manager, or manually).                                       

Here are the general steps to remove a package for each package manager:   

1. CocoaPods                                                               

If the package was added via CocoaPods, you would remove the package entry 
from the Podfile and then run:                                             

                                                                           
 pod install                                                               
                                                                           

This command will update the project and remove the unused dependencies.   

2. Carthage                                                                

For Carthage, remove the line from the Cartfile that includes the package  
you want to remove, then run:                                              

                                                                           
 carthage update                                                           
                                                                           

After that, you'll also need to manually remove the references from your   
To remove a package from an Xcode project, you typically need to do it     
through the Xcode interface or by editing the project's configuration      
files, depending on how the package was added (e.g., CocoaPods, Carthage,  
Swift Package Manager, or manually).                                       

Here are the general steps to remove a package for each package manager:   

1. CocoaPods                                                               

If the package was added via CocoaPods, you would remove the package entry 
from the Podfile and then run:                                             

                                                                           
 pod install                                                               
                                                                           

This command will update the project and remove the unused dependencies.   

2. Carthage                                                                

For Carthage, remove the line from the Cartfile that includes the package  
you want to remove, then run:                                              

                                                                           
 carthage update                                                           
                                                                           

After that, you'll also need to manually remove the references from your   
To remove a package from an Xcode project, you typically need to do it     
through the Xcode interface or by editing the project's configuration      
files, depending on how the package was added (e.g., CocoaPods, Carthage,  
Swift Package Manager, or manually).                                       

Here are the general steps to remove a package for each package manager:   

1. CocoaPods                                                               

If the package was added via CocoaPods, you would remove the package entry 
from the Podfile and then run:                                             

                                                                           
 pod install                                                               
                                                                           

This command will update the project and remove the unused dependencies.   

2. Carthage                                                                

For Carthage, remove the line from the Cartfile that includes the package  
you want to remove, then run:                                              

                                                                           
 carthage update                                                           
                                                                           

After that, you'll also need to manually remove the references from your   
To remove a package from an Xcode project, you typically need to do it     
through the Xcode interface or by editing the project's configuration      
files, depending on how the package was added (e.g., CocoaPods, Carthage,  
Swift Package Manager, or manually).                                       

Here are the general steps to remove a package for each package manager:   

1. CocoaPods                                                               

If the package was added via CocoaPods, you would remove the package entry 
from the Podfile and then run:                                             

                                                                           
 pod install                                                               
                                                                           

This command will update the project and remove the unused dependencies.   

2. Carthage                                                                

For Carthage, remove the line from the Cartfile that includes the package  
you want to remove, then run:                                              

                                                                           
 carthage update                                                           
                                                                           

After that, you'll also need to manually remove the references from your   
To remove a package from an Xcode project, you typically need to do it     
through the Xcode interface or by editing the project's configuration      
files, depending on how the package was added (e.g., CocoaPods, Carthage,  
Swift Package Manager, or manually).                                       

Here are the general steps to remove a package for each package manager:   

1. CocoaPods                                                               

If the package was added via CocoaPods, you would remove the package entry 
from the Podfile and then run:                                             

                                                                           
 pod install                                                               
                                                                           

This command will update the project and remove the unused dependencies.   

2. Carthage                                                                

For Carthage, remove the line from the Cartfile that includes the package  
you want to remove, then run:                                              

                                                                           
 carthage update                                                           
                                                                           

After that, you'll also need to manually remove the references from your   
Xcode project's linked libraries and frameworks.                           
To remove a package from an Xcode project, you typically need to do it     
through the Xcode interface or by editing the project's configuration      
files, depending on how the package was added (e.g., CocoaPods, Carthage,  
Swift Package Manager, or manually).                                       

Here are the general steps to remove a package for each package manager:   

1. CocoaPods                                                               

If the package was added via CocoaPods, you would remove the package entry 
from the Podfile and then run:                                             

                                                                           
 pod install                                                               
                                                                           

This command will update the project and remove the unused dependencies.   

2. Carthage                                                                

For Carthage, remove the line from the Cartfile that includes the package  
you want to remove, then run:                                              

                                                                           
 carthage update                                                           
                                                                           

After that, you'll also need to manually remove the references from your   
Xcode project's linked libraries and frameworks.                           
To remove a package from an Xcode project, you typically need to do it     
through the Xcode interface or by editing the project's configuration      
files, depending on how the package was added (e.g., CocoaPods, Carthage,  
Swift Package Manager, or manually).                                       

Here are the general steps to remove a package for each package manager:   

1. CocoaPods                                                               

If the package was added via CocoaPods, you would remove the package entry 
from the Podfile and then run:                                             

                                                                           

pod install

This command will update the project and remove the unused dependencies.

  1. Carthage

For Carthage, remove the line from the Cartfile that includes the package
you want to remove, then run:

carthage update

After that, you'll also need to manually remove the references from your
Xcode project's linked libraries and frameworks.
To remove a package from an Xcode project, you typically need to do it
through the Xcode interface or by editing the project's configuration
files, depending on how the package was added (e.g., CocoaPods, Carthage,
Swift Package Manager, or manually).

Here are the general steps to remove a package for each package manager:

  1. CocoaPods

If the package was added via CocoaPods, you would remove the package entry
from the Podfile and then run:

pod install

This command will update the project and remove the unused dependencies.

  1. Carthage

For Carthage, remove the line from the Cartfile that includes the package
you want to remove, then run:

carthage update

After that, you'll also need to manually remove the references from your
Xcode project's linked libraries and frameworks.
To remove a package from an Xcode project, you typically need to do it
through the Xcode interface or by editing the project's configuration
files, depending on how the package was added (e.g., CocoaPods, Carthage,
Swift Package Manager, or manually).

Here are the general steps to remove a package for each package manager:

  1. CocoaPods

If the package was added via CocoaPods, you would remove the package entry
from the Podfile and then run:

pod install

This command will update the project and remove the unused dependencies.

  1. Carthage

For Carthage, remove the line from the Cartfile that includes the package
you want to remove, then run:

carthage update

After that, you'll also need to manually remove the references from your
Xcode project's linked libraries and frameworks.
To remove a package from an Xcode project, you typically need to do it
through the Xcode interface or by editing the project's configuration
files, depending on how the package was added (e.g., CocoaPods, Carthage,
Swift Package Manager, or manually).

Here are the general steps to remove a package for each package manager:

  1. CocoaPods

If the package was added via CocoaPods, you would remove the package entry
from the Podfile and then run:

pod install

This command will update the project and remove the unused dependencies.

  1. Carthage

For Carthage, remove the line from the Cartfile that includes the package
you want to remove, then run:

carthage update

After that, you'll also need to manually remove the references from your
Xcode project's linked libraries and frameworks.
To remove a package from an Xcode project, you typically need to do it
through the Xcode interface or by editing the project's configuration
files, depending on how the package was added (e.g., CocoaPods, Carthage,
Swift Package Manager, or manually).

Here are the general steps to remove a package for each package manager:

  1. CocoaPods

If the package was added via CocoaPods, you would remove the package entry
from the Podfile and then run:

pod install

This command will update the project and remove the unused dependencies.

  1. Carthage

For Carthage, remove the line from the Cartfile that includes the package
you want to remove, then run:

carthage update

After that, you'll also need to manually remove the references from your
Xcode project's linked libraries and frameworks.
To remove a package from an Xcode project, you typically need to do it
through the Xcode interface or by editing the project's configuration
files, depending on how the package was added (e.g., CocoaPods, Carthage,
Swift Package Manager, or manually).

Here are the general steps to remove a package for each package manager:

  1. CocoaPods

If the package was added via CocoaPods, you would remove the package entry
from the Podfile and then run:

pod install

This command will update the project and remove the unused dependencies.

  1. Carthage

For Carthage, remove the line from the Cartfile that includes the package
you want to remove, then run:

carthage update

After that, you'll also need to manually remove the references from your
Xcode project's linked libraries and frameworks.

  1. Swift Package Manager

If the package was added using Swift Package Manager, you can remove it by
opening the Xcode project and:

• Go to File > Swift Packages > Update Package Versions.
• Select the package you want to remove and click the minus sign (-) to
remove it.

If you want to use the command line, you can manually edit the
Package.swift file and remove the dependency from the dependencies array.
After saving the changes, you can run:

swift package update

  1. Manually Added

For manually added packages (e.g., added as a Git submodule or just copied
into the project), you'll need to:

• Delete the package files from your project directory.
• Remove any references to the package from your Xcode project (targets,
build phases, etc.).

Keep in mind that these are general guidelines. The specific commands and
steps might vary depending on the version of your package management tools
and the configuration of your project. Always make sure to have a backup
before modifying project files or dependencies.


My config file is set to OpenAI GPT-4-preview
@PixelPacker
Copy link

Same issue here using 3.5 turbo. It seems to mainly appear when it outputs large amounts of text.
I am on an M1 Pro using ZSH

@saurik
Copy link

saurik commented May 17, 2024

This is some kind of bug in the terminal handling and happens as soon as you output more than a screen of text. It is using a feature of the rich library called live which I don't think is actually usable for this purpose as it is designed to be used for a subregion of the console. You can--and they did--activate vertical overflow, but my mental model here is that that is only useful for flowing outside of the bounds of a subregion, not off the entire screen.

https://stackoverflow.com/questions/76802944/want-rich-live-display-to-print-everything-live-without-overflowing-or-ellipsis

Honestly, this issue is so bad I don't understand how anyone is using this: the very first query I asked it it just started freaking out trashing my terminal and I couldn't read the answer.

@kharvd
Copy link
Owner

kharvd commented May 17, 2024

I agree it's not great. It would be pretty challenging to render streaming markdown in a TTY while supporting scrolling - happy to accept contributions.

Personally, I just turned off markdown altogether (with markdown: False in the config file), and I recommend doing the same if you find it too annoying.

@saurik
Copy link

saurik commented May 17, 2024

FWIW, the correct solution to that goal is to use a TUI and put the markdown inside of a soft scrollable region. That might be easy as the rich library almost sounds like it was designed to do that, or it might be annoying.

To make it almost always work is trivial, though, as the 99% case won't involve the markup changing text that has always scrolled off the top of the screen: do a diff from the previous output to the new output and only render the diff. This is actually less work than whatever this rich library is already trying to do, because the rich one is trying to restrict itself to a static screen sub-region and thereby is doing something crazy when it overflows and frantically redraws the entire screen again.

Regardless, if turning off the markdown renderer is possible and fixes the issue, that should be the default: these models are often verbose and so the current default just doesn't work, and you are going to be losing people who try it and give up when it is broken.

Like, I am someone who both enjoys and advocates for reading all the configuration options for tools I use, and I simply gave up on this one immediately after trying it as if the default is this broken on the first random question I ask it, probably the rest of the program is broken as well.

Personally, I didn't like that it was even trying to render the markdown--it felt more like a tool aspiring to be a TUI, which I don't want--so if this really fixes things I'll give it another go.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants