ChatGPTWizard
An AI plug-in for Embarcadero RAD Studio IDE.
First Plugin Ever to support Online(ChatGPT, Writesonic, and YouChat) and Offline(Ollama) AI servers!
PLEASE NOTE THAT You will need an API key (just in Online mode) to use this plugin. see the API section to Generate an API key
Some API Keys are Limited to a certain usage, after that, you will need to purchase credits to keep using them.
Key Features:
- Free text question form.
- Dockable question form.
- Inline questions(in the editor).
- Context menu options to help you to find bugs, write tests, optimize code, add comments, etc...
- Class view(Code conversion, code optimizing, test units, and other options per class).
- Predefined Questions for class view.
- History to save your tokens on OpenAI!
- Fuzzy string match searches in the history.
- Animated letters(Like the website).
- AI Code Translator
- Proxy server options.
- Supports OpenAI ChatGPT as the main AI service.
- Supports Writesonic AI as the second AI service.
- Supports YouChat AI as the third AI service.
- Supports Ollama(Offline)
Supported IDE Versions
Delphi 10.x (10.1 Berlin, 10.2 Tokyo, 10.3 Rio, 10.4 Sydney)
Delphi 11.x Alexandria
Delphi 12.x Athens
Older IDE versions (XE2 to XE8)
If you are using Delphi XE2 to XE8, there is a limited version of this plug-in available, which has the main functionality. Please have a look at that version here.
Disclaimer
As a user of the API key, it is important to understand that you are solely responsible for all content generated through the prompt. Please note that there is no text moderation with this plugin, and your prompt will be sent directly to the AI Server through the API. While mistakes can happen while using browsers, mobile apps, or this plugin, it remains the responsibility of the user to ensure the accuracy and appropriateness of the content generated(prompts).
The plugin serves as a bridge between the user's IDE and the AI Server, enabling faster and smarter development. Please note that the plugin is intended for programming purposes only, and users should use it accordingly. For more information, please refer to the Terms of Use defined by OpenAI: Terms of use
🟢🟢🟢 How to use it in Offline mode 🟢🟢🟢
🟢 Set up an Offline AI server 👈👈👈
In order to use this plug-in with a local host follow these steps:
1- Download and Install Ollama : here
2- Check if the server is running by opening it in your browser: http://localhost:11434
You should see something like this screenshot:
3- Then you need at least one trained model to be attached to your new AI server, there are a lot of models here, so choose one (codellama is a good one, I suggest that for now) and install it with this command in command-line:
ollama run codellama
After pulling the model is finished you can ask some questions in CMD right away.
4- Now use this URL instead of the OpenAPI's URL in the setting form of the Plugin in RAD Studio:
http://localhost:11434/api/generate
You don't need an Accesskey, no need to change or even clear it, just leave it.
5- Tick the checkbox called Ollama(Offline) and add your model name in the text box in front of the checkbox, in my case, I use "codellama" as the model name.
6- Congratulations! you did it, now enjoy forever free AI assistance.
Note: depending on the hardware resources, the model size, and the parameter count of the model you can experience different speeds and performance, so do not open any issues about the Offline solution's speed or performance, there is nothing to do about that with the Plug-in itself, Plug-in is just a bridge between AI server and RAD Studio.
Good luck!
Demo videos
Platforms
This Plugin Supports the following AI Services:
ChatGPT
Writesonic
YouChat
NOTE: ChatGPT is working with Rad Studio 10.1 and above but Other(non-ChatGPT) AI Services are enabled in Rad Studio 10.2 and above!
Remarks
- This plugin is free but some AI Services are not free forever.
- It's compatible with Delphi 10.1 Berlin and later versions.
- Uses the XSuperObject library which is included in the project files. you can also find the latest version here
- Settings are stored in the registry which can be found here:
Computer\HKEY_CURRENT_USER\Software\ChatGPTWizard
How to Install
2- Delphinus package manager - you can install Delphinus package manager and install ChatGPTWizard there. (Delphinus-Support)
3- Direct installation - Open the project in Delphi, right-click on the project node in the project manager, build, and install.
How to Use
Plug-in's main form
You can use the ChatGPT menu from the IDE's main menu directly to ask questions and get the answer. Click on the newly added ChatGPT menu on the IDE(or press Ctrl+Shidt+Alt+C) to open the wizard, type the question, and press the Ask button(or Ctrl+Enter).
Two New Tabs has been added to get separate results for Writesonic and YouChat.
So now you can get multiple different answers based on any question, compare, merge, and get the best quality and accuracy for your code.
Settings
"Other AI Services" Tab is responsible for setting up Other AI service's tokens including Writesonic's credentials.
Inline Questions
如果您需要在编辑器中使用 ChatGPT,您需要直接在代码编辑器中输入一个问题,并在问题的开头加上 cpt:
,在问题的结尾加上 :cpt
,然后按 Ctrl+Shift+Alt+A
,或者直接右键单击选定的文本,从编辑器的上下文菜单中选择“询问”。
内联问题的使用示例
打开一个新的 vcl
应用程序项目,添加一个新单元,并删除其中的所有代码!然后输入以下行,全部选中并按 Ctrl+Shift+Alt+A
。
cpt:在 Delphi 中创建一个包含创建 XML 文件类的完整单元。:cpt
可停靠的窗体
使用主菜单中的 "ChatGPT 可停靠" 菜单来显示可停靠窗体,并尝试将窗体停靠到 IDE 的左侧或右侧面板,并享受您新的 Google 杀手助手!
上下文菜单
选定文本或代码块的上下文菜单。结果将作为多行注释插入选定文本后,在两个括号 {}
之间。
选项
- 询问
- 添加测试 – 将尝试为选定的文本创建单元测试。
- 查找错误 – 查找选定文本中的错误。
- 优化 – 将优化选定文本。
- 添加注释 – 将为选定代码添加必要的注释。
- 完成代码 – 将尝试为选定的代码添加任何缺失的代码。
- 解释代码 – 将解释选定代码在 Delphi 中的作用。
类视图
使用类视图,您可以通过弹出菜单查看类列表并执行一些功能。也可以在 TreeView 中选定某个类并基于您的自定义命令使用该类,在这种情况下,@Class
将代表您自定义命令中选定的类,如果您不使用 @Class
,选定类的源代码将附加到您的命令末尾,请注意,由于当前无法通过 API 请求发送数千行的限制,请在小类的情况下使用此功能。
请注意,由于 API 限制,最好将此功能用于小型类,您不能在问题中发送包含数千行代码的类。
历史记录
如果在设置表单中启用历史记录,将可用,它使用 SQLite 作为简单的基于文件的数据库。您可以在 Resource\DB
中找到一个名为 "History.sdb"
的空数据库,将此文件复制到磁盘中的任何位置,并在设置中将其地址到文件夹。
在历史记录中搜索
右键单击历史记录网格,在出现的搜索栏中选中搜索项,它默认不可见以节省空间,最后输入关键字进行搜索和过滤,有两个复选框作为额外选项,分别是区分大小写和模糊匹配字符串搜索。
SSL 问题
如果您将 SSL 库(可以在资源文件夹中找到)放在 bds.exe
旁边或 Bpl 文件夹中,可以解决此问题(我的路径是 C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl
)或者您可以在项目的属性中使用构建事件来复制这些两个类库,如果它们不存在的话。另一个办法是不需要这样做,因为当你在 IDE 中打开任何项目时,这个插件就能正常工作!我不确定这种行为是否取决于安装的组件或库,或者在打开新应用程序时 IDE 是否加载 SSL 库。不过,无论如何,在工作项目时使用这个插件似乎更有用。
其他
演示文稿: ChatGPT wizard.pptx
贡献者
特别感谢
如果您喜欢它,请不要犹豫,按下 'Star' 按钮,继续关注存储库以了解最新的更新、调试、功能等。欢迎所有 PR、讨论和问题,但请在打开新问题之前阅读并检查已关闭的问题以避免重复!
好运!