-
Notifications
You must be signed in to change notification settings - Fork 17
Update README.md #310
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
base: main
Are you sure you want to change the base?
Update README.md #310
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,13 +5,13 @@ | |
|
||
# DevChat Visual Studio Code Extension | ||
|
||
**An effective, down-to-earth AI coding assistant that blends AI power and manual control.** | ||
**The Truly Collaboartive AI Coding Assistant. The Best of AI. The Best of You. Integrated Seamlessly.** | ||
|
||
🛠️ No excessive automation, just right AI where it works. | ||
🛠️ AI integrated where you want it, when you need it, with no disruption to your flow. | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The emphasis is not about "disruption". Actually, the opposite. Humans must be involved. Some steps should not be automated or AI'ed at all. That's why I wrote No excessive automation. Also, the problem now is most users are not sure where or when AI is needed. But if you use our tool, our design will frame your way to use AI and only use it where it really works. |
||
☕ Simple to use, without complicated prompt engineering. | ||
☕ Intuitive and simple to use, no more wrestling with complicated prompt engineering. | ||
|
||
🍻 Designed for extensibility. | ||
🍻 Designed with extensibility and personalization prioritized. | ||
|
||
</div> | ||
<br> | ||
|
@@ -30,30 +30,30 @@ | |
|
||
## What is DevChat? | ||
|
||
DevChat is an open-source platform that empowers developers to leverage AI for code generation and documentation. We aim to go beyond simple code auto-completion and limited operations on code snippets. DevChat offers a highly *practical* and *effective* way for developers to interact and collaborate with large language models (LLMs). | ||
DevChat is an open-source platform that empowers developers to more naturally and effectively integrate AI into code generation and documentation. DevChat aims to go beyond simple auto-completion and limited operations on code snippets. DevChat offers a highly *practical* and *effective* way for developers to interact and collaborate with large language models (LLMs), DevChat is the tool that works for you, no need to change your workflow. | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I guess "naturally" and "no need to change your workflow" come from your understanding of "no disruption". As aforementioned, it is not like that. Let's tune these. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Hi @MaximDub and @basicthinker I was thinking of a two liner introduction as shown below.
|
||
## Why DevChat? | ||
|
||
While there are many AI coding tools available, we developed DevChat based on our practical insights from generating tens of thousands of lines of code. DevChat makes the following distinctive design choices: | ||
We spent years on code analysis, static-analysis, and DevOps improvements, working with hundreds of companies around the world. The insights we have picked up in this process are all incorporated into DevChat. The techniques, approaches, and decisions that drive success for companies large and small inform every detail of DevChat. You'll find some distinctive design choices: | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Hmm... Code analysis makes sense. Most others are not that relevant so it may sound over selling. Maybe we can position us as dev tool builders like creators of Apache DevLake? In addition, the amount of code we generate is anyway better evidence of our experience as this is much more closely related. Tens of thousands lines of code is not a small number -- most developers should know this. |
||
- **Precise manual control over the context embedded in a prompt**. Precise control over context is the key to effective AI use. We find that most other "intelligent" or "automatic" tools tend to over-guess what a user needs to put into a prompt. That typically introduces more noise than LLMs can effectively manage. | ||
- **A simple, extensible prompt directory**. This enables developers or teams to easily integrate their own prompt templates into DevChat, avoiding significant engineering effort or a steep learning curve. You don't need a complex framework to make AI work for you. All it takes is a standard editor operating on your filesystem. | ||
- **Precise manual control over the context embedded in a prompt**. DevChat won't create new work for you, because it ensures that context drives everything. Precise control over context is the key to effective AI use. We find that most other "intelligent" or "automatic" tools tend to over-guess what a user needs to put into a prompt. That typically introduces more noise than LLMs can effectively manage. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The point is not that the context drives everything. We actually require humans do a little bit more work in specifying the right context but makes AI much more effective as return. |
||
- **A simple, extensible prompt directory**. Bring your own prompts, and build a library of what works for you and your team. Easily integrate your own prompt templates into DevChat, avoiding significant engineering effort or a steep learning curve. You don't need a complex framework to make AI work for you. All it takes is a standard editor operating on your filesystem. No more redundant work. No more re-inventing the wheel. | ||
|
||
## Feature Overview | ||
|
||
### Context Building | ||
|
||
Great output requires great input. To maximize the power of AI, DevChat assists you seamlessly to **provide the right context** to the AI. | ||
Great output requires great input. To maximize the power of AI, DevChat assists you seamlessly to **provide the most effective context** to AI to ensure you get impactful outcomes. | ||
|
||
- For instance, to generate test cases for a function, you can add to the prompt the function along with an existing test case. The test case serves as a useful reference for DevChat, enabling it to understand how to write a valid test case in your environment, thus eliminating the need for you to specify every requirement in your prompt. | ||
- For instance, to generate test cases for a function, you can add to the prompt the function along with an existing test case. The test case serves as a useful reference for DevChat, enabling it to understand how to write a valid test case specific to your environment, thus eliminating the need for you to specify every requirement in your prompt. DevChat just "gets it." | ||
|
||
 | ||
|
||
- You can incorporate the output of any command, such as `tree ./src`, into a prompt with DevChat. For example, you can add the output of `git diff --cached` to DevChat, which can then generate a commit message for you. | ||
- You can incorporate the output of any command, such as `tree ./src`, into a prompt with DevChat. For example, you can add the output of `git diff --cached` to DevChat, which can then generate a useful commit message for you. | ||
|
||
 | ||
|
||
- Program analysis can assist in building the necessary context. Suppose you want DevChat to explain some code to you. DevChat can perform better if it's aware of the dependent functions that the code calls. In this scenario, you select the target code to explain and add "symbol definitions" to the context (by clicking the plus button). DevChat will then generate a prompt that explains the target code, taking into account the dependent functions. | ||
- Program analysis can assist in building the necessary context. Suppose you want DevChat to explain some code to you. DevChat can perform better if it's aware of the dependent functions that the code is calling. In this scenario, you can select the target code with DevChat to explain and add "symbol definitions" to the context (by clicking the plus button). DevChat will then generate a prompt that explains the target code, taking into account the dependent functions. No generic explainers. | ||
|
||
### Prompt Extension | ||
|
||
|
@@ -75,7 +75,7 @@ The `workflows` directory typically contains three subdirectories, `sys`, `org`, | |
└── prompt.txt | ||
``` | ||
|
||
The `org` directory is useful for maintain team-wise conventions or requirements. Your team can share a Git repository to store prompts in `org`, and every team member can locally sync `~/.chat/workflows/org` with the repository. The `org` prompts will overwrite those in `sys`, while an individual developer can further customize them in `usr`. | ||
The `org` directory is useful for cleanly maintaining team-wise conventions or requirements. Your team can share a Git repository to store prompts in `org`, and every team member can locally sync `~/.chat/workflows/org` with the repository. The `org` prompts will overwrite those in `sys`, while an individual developer can then further customize them in `usr`. | ||
|
||
You can incorporate a template in your prompt by typing a "command" with the corresponding name in the DevChat input. Type `/` followed by the command name, as shown below. The `/`-separated path to the prompt directory corresponds to a `.`-separated command name. For instance, if you want to embed the 'prompt.txt' file located in `path/to/dir` into your current prompt, you should type `/path.to.dir` into the DevChat input field, along with the other content of the prompt. Note that `sys`, `org`, or `usr` do not need to be included in a command name. DevChat will first look up the corresponding path under `usr`, then `org`, and finally `sys`. | ||
|
||
|
@@ -84,8 +84,6 @@ You can incorporate a template in your prompt by typing a "command" with the cor | |
|
||
## Quick Start | ||
|
||
> Chinese: [中文安装配置指南](https://zh.devchat.blog/devchat-vscode-installation-guide). | ||
|
||
- Install [Visual Studio Code](https://code.visualstudio.com/download). | ||
- Open the Extensions view (⇧⌘X), search for DevChat, and install the extension: | ||
|
||
|
@@ -97,22 +95,25 @@ You can incorporate a template in your prompt by typing a "command" with the cor | |
|
||
- We recommend dragging the DevChat logo from the left sidebar to **the right sidebar** to avoid overlapping with the Explorer. | ||
|
||
- > Chinese Instructions (DevChat is global!): [中文安装配置指南](https://zh.devchat.blog/devchat-vscode-installation-guide). | ||
|
||
|
||
## Community | ||
|
||
- Join our [Discord](https://discord.gg/9t3yrbBUXD)! | ||
- Participate in [discussions](https://github.com/devchat-ai/devchat/discussions)! | ||
|
||
## What is Prompt-Centric Software Development (PCSD)? | ||
|
||
- The traditional code-centric paradigm is evolving. | ||
- The traditional code-centric paradigm is evolving and changing rapidly, stay ahead of the curve with DevChat. | ||
|
||
- Write prompts to create code. Transform prompts into all the artifacts in software engineering. | ||
- Write prompts to create code. Transform prompts into all the artifacts you'll need in your engineering process. | ||
|
||
<img width="600" alt="image" src="https://github.com/devchat-ai/devchat/assets/592493/dd32e900-92fd-4fa4-8489-96ed17ab5e0e"> | ||
|
||
<sub>(This image is licensed by devchat.ai under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>.)</sub> | ||
|
||
- We like to call it DevPromptOps | ||
- We like to call it "DevPromptOps" (we know, it rolls right off the tongue ;-) ) | ||
|
||
<img width="500" alt="image" src="https://github.com/devchat-ai/devchat/assets/592493/e8e1215b-53b0-4473-ab00-0665d33f204a"> | ||
|
||
|
@@ -128,4 +129,4 @@ Issues and pull request are welcome: | |
|
||
[email protected] | ||
|
||
We are creators of [Apache DevLake](https://devlake.apache.org/). | ||
Made by the same team that created and maintains [Apache DevLake](https://devlake.apache.org/). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we somehow point "collaborative" to collaboration between humans and AI? Now most readers may take it as a regular meaning which is not our unique feature.
"The Best of AI. The Best of You. Integrated Seamlessly." I don't think most readers can really understand what this is about. If not, pretty wording itself wouldn't be strong. Can we emphasize our pragmatic approach to AI? That means we should manually control the context and other processes when necessary so that the AI power can be made really effective. Most other tools go too far in leveraging AI or automation that actually harms its effectiveness. We are not building an imaginary or experimental tool. We are building a truly productive assistant, but the precondition is that we humans do our job.