spyder-ide / spyder

Official repository for Spyder - The Scientific Python Development Environment
https://www.spyder-ide.org
MIT License
8.32k stars 1.61k forks source link

Can you add an AI code helper like Tabnine or Copilot to Spyder? #20632

Open river7816 opened 1 year ago

river7816 commented 1 year ago

Spyder is the best IDE I've ever used, better than jupyter lab, Pycharm, vscode...But since spyder 5, it no longer support Kite. I know it is not spyder's fault (Kite closed their service), but there are so many other alternatives, like Tabnine which I used a lot. Can you make them available in spyder 5

ccordoba12 commented 1 year ago

Hey @river7816, thanks for reporting. You said:

Spyder is the best IDE I've ever used, better than jupyter lab, Pycharm, vscode

Thanks for your kind words! They are really important for us.

But since spyder 5, it no longer support Kite. I know it is not spyder's fault (Kite closed their service), but there are so many other alternatives, like Tabnine which I used a lot. Can you make them available in spyder 5

You'll be happy to know that we just asked for funding precisely to add support for another AI-based completion service. If we are granted the funds, we'll have an initial prototype for Tabnine or Copilot by the end of the year.

JTiagoValente commented 1 year ago

I came here to say, please add copilot to the IDE.

I don't really want to switch to VS Code to use copilot....

yxmnjxzx commented 1 year ago

As the best IDE, please add copilot to the IDE.

Alecampoy commented 1 year ago

I aggree with @river7816 in everything

ccordoba12 commented 1 year ago

Then you guys will be glad to know that we received the funding to work on an AI-based code completion client. An initial prototype should be ready by the end of the year.

haukot commented 1 year ago

HI! I've done research and reverse-engineered the Github Copilot protocol between IDE plugin and agent.js, and have tried to document it. This is based on Github Copilot plugin version for JetBrains and some parts of agent.js. You can see the specs in this repo https://github.com/haukot/copilot_specifications Hope this could help in plugin development!

ccordoba12 commented 1 year ago

That's great @haukot! Thanks a lot for sharing your work!

Bill16881688 commented 1 year ago

Then you guys will be glad to know that we received the funding to work on an AI-based code completion client. An initial prototype should be ready by the end of the year.

Hi, thank you for make this happen! U get enough funds?

zeplaz commented 1 year ago

here to say id prefer Tabnine support.
i like supporting other companies not google, and the rust support is better in tabnine for other IDE. so, im not intrested in having copilot. plus, i think tabnine works better as a system when it pickup on your own style over time. much more organic.

ccordoba12 commented 1 year ago

Hi, thank you for make this happen! U get enough funds?

We got funding for an initial prototype.

baskew commented 1 year ago

That's great news!

Can you also think about how spyder w/copilot can be used in organizations that are concerned about sharing sensitive content online.

sp8rks commented 1 year ago

switching to vscode until spyder has this.

abhilashmathewsvow commented 1 year ago

Hi there! Just following up on the status of adding Copilot to Spyder? Super excited for it!

dalthviz commented 1 year ago

Hi @abhilashmathewsvow ! The proposal details can be checked here: https://github.com/spyder-ide/spyder/wiki/NumFOCUS-Small-Development-Grant-Spring-2023 . Following the plan we have some PRs open already:

Building an external completion provider proptotype that uses some service as Tabnine or Copilot/Open AI models is something will be working on in the last few months of the proposal :)

arefks commented 1 year ago

Yes please add the copilot to spyder.

crystaltaggart commented 1 year ago

I am also here to vote for copilot or direct Chat GPT integration. So far Spyder is THE BEST IDE for coding. I haven't found it's equivalent. I tried using DataSpell which is Jetbrains' half-baked attempt at mimicking the functionality that Spyder provides specifically because copilot was supported but DataSpell is no Spyder and there are many things that Spyder does that DataSpell does not. I know you are open source, but I'd pay for an IDE for this.

arefks commented 1 year ago

I also vote for an integrated copilot in spider.

carlmannix-mup commented 11 months ago

+1 Git's Co Pilot would make Spyder unbeatable. I have subscribed

sepjc96 commented 11 months ago

+1 to adding Co-Pilot on Spyder

kiltcheck commented 11 months ago

Adding my voice to upvoting Copilot on Spyder! Definitely my favorite Python IDE by far!

jds33 commented 11 months ago

I would love to use Copilot in Spyder as well. Please make this happen, otherwise i'll have to switch to vscode or something else. Which I don't want to do because Spyder is pretty good otherwise.

weishanlee commented 10 months ago

Ya! I totally agree with the idea to integrate github copilot into spyder! I don't want to switch back to Visual Studio.

tecbr commented 10 months ago
shihabkhan1 commented 9 months ago

Just here to push for github copilot integration. Very happy if Kite can do the job, but I guess Copilot is the way to go.

Please please please get this done! Really don't want to switch to PyCharm.

AtanasAtanasovIpsos commented 9 months ago

+1 is there a timeline for when can we expect this feature?

backmind commented 9 months ago

+1, please!

puccahwk commented 9 months ago

Any update on this?

oscarfasanchez commented 9 months ago

we desperately need copilot support to keep using Spyder

jlluch commented 8 months ago

I support the integration of Copilot into Spyder; currently, I'm coding with VSCode using Copilot and then debugging in Spyder...It's not the best solution.

river7816 commented 8 months ago

I support the integration of Copilot into Spyder; currently, I'm coding with VSCode using Copilot and then debugging in Spyder...It's not the best solution.

I use Pycharm now, the debug and the integration of copilot is good

jsbautista commented 8 months ago

Hi there, my name is Juan Sebastian and I have been working for the last 4 months on a proposal related to improvements to the code completion external providers support inside Spyder ("Improving external completion plugins development support in Spyder ''). As a result of the various comments/requests here and as part of that proposal , we have been doing a review to find out possible services which could be used to create an external completions provider (using the current completions provider API Spyder offers). From our findings, we decided to divide the tools found into 3 groups. The first group are all the tools that in some way depend on the Language Server Protocol (LSP) to be implemented. After some exploration, for those tools we will need to modify and extend the current Spyder API to allow the possibility to register new classes and configurations through an external provider definition (we actually found that a issue related with extending the LSP support/API already exists at: Provide API to add a new language to the LSP service · Issue #11326 · spyder-ide/spyder (github.com)). Within these tools we have Copilot or Tabnine. The second group corresponds to the tools that can be used via some REST API definition (like the Kite provider definition which code we moved outside Spyder source code as part of the mentioned proposal - spyder-ide/kite-provider: Completion plugin provider implementation for Kite (github.com)). Within these tools we have LangChain (can work with different model providers like OpenAI but also local models), privateGPT or LMStudio. Finally, the last group corresponds to the tools that do not necessarily work as a code completion provider in the sense Spyder currently defines such providers, but more like tools to generate code from the console or to complete tests/get code documentation; within these tools we have Codium.

Following this exploration, and taking into account the proposal scope, as the last part of it we will try to:

Any feedback is appreciated, so let us know!

Christonikos commented 7 months ago

Upvoting this on my side as well. I've been using Spyder for over 8 years, and convinced my whole data science team to do the same, but the comparison with other IDEs where co-pilot is integrated is, unfortunately, inevitable.

wxtomquist commented 7 months ago

Any updates on this? I'm in the same boat as others here. Thanks!

alexdjulin commented 7 months ago

Same here, really hoping to see Copilot integrated into Spider. Best from Berlin ♥

emooney06 commented 7 months ago

Same here! I fell in love with Spyder about 6 years ago, and now have my whole team using Spyder. I make a monthly donation and will continue to do so. I'm looking forward to seeing co-pilot or something similar soon!

csongorbathory commented 6 months ago

+1, please!

jishnuksankar commented 6 months ago

Any updates on this?

bwinsto2 commented 6 months ago

Simple as the fact that I’d have to switch over to another IDE soon… but I love spyder and would love AI integration <3

weishanlee commented 6 months ago

Unfortunately, maybe it is not as important as it looks for the proposal of github-copilot-like integration into spyder. According to my experience, the github copilot is not working properly as expected as per assisting on generating and debugging codes. I would suggest using openai plus plugins, such as Python, Data Analysis, and something alike.

dalthviz commented 6 months ago

Hi there, as an update on the work mentioned at https://github.com/spyder-ide/spyder/issues/20632#issuecomment-1952561607 we released a completion provider which uses Langchain and OpenAI models. For more info you can check the completion provider repo: https://github.com/spyder-ide/langchain-provider

Any feedback is appreciated!

ccordoba12 commented 6 months ago

Besides what @dalthviz said, we're also exploring several possibilities to get funding to implement a Copilot or similar AI-based client for Spyder. We hope to have good news for you in a few weeks.

In the meantime, I'm going to block this issue so both Daniel's and my comment are visible to new people that arrive to it.