auto-dev
π§βAutoDev: The AI-powered coding wizardοΌAI ι©±ε¨ηΌη¨ε©ζοΌwith multilingual support π, auto code generation ποΈ, and a helpful bug-slaying assistant π! Customizable prompts π¨ and a magic Auto Dev/Testing/Document/Agent feature π§ͺ included! π
Top Related Projects
Examples and guides for using the OpenAI API
Integrate cutting-edge LLM technology quickly and easily into your apps
π¦π Build context-aware reasoning applications
A guidance language for controlling large language models.
AutoGPT is the vision of accessible AI for everyone, to use and to build on. Our mission is to provide the tools, so that you can focus on what matters.
π The Multi-Agent Framework: First AI Software Company, Towards Natural Language Programming
Quick Overview
Auto-dev is an AI-powered coding assistant and team intelligence platform. It aims to enhance developer productivity by integrating AI capabilities into the software development lifecycle, offering features like code generation, refactoring, and team collaboration tools.
Pros
- Seamless integration with popular IDEs and development tools
- Utilizes advanced AI models for code generation and analysis
- Supports multiple programming languages and frameworks
- Offers team collaboration features for improved productivity
Cons
- May require a learning curve for developers to fully utilize its capabilities
- Potential privacy concerns when sharing code with AI models
- Dependency on external AI services could impact reliability
- May not be suitable for all types of projects or development workflows
Code Examples
// Generate a Java class using Auto-dev
@AutoDev.generate("Create a simple User class with name and email fields")
public class User {
private String name;
private String email;
// Constructor, getters, and setters will be generated
}
# Refactor Python code using Auto-dev
@AutoDev.refactor("Optimize this function for better performance")
def fibonacci(n):
if n <= 1:
return n
else:
return fibonacci(n-1) + fibonacci(n-2)
// Get code suggestions in JavaScript
const suggestedCode = AutoDev.suggest("Implement a debounce function");
console.log(suggestedCode);
Getting Started
To start using Auto-dev in your project:
- Install the Auto-dev extension for your IDE (e.g., VS Code, IntelliJ)
- Sign up for an Auto-dev account and obtain an API key
- Configure the extension with your API key
- Start using Auto-dev features in your code:
import com.unitmesh.autodev.AutoDev;
public class Example {
public static void main(String[] args) {
AutoDev.initialize("YOUR_API_KEY");
String generatedCode = AutoDev.generate("Create a REST API endpoint for user registration");
System.out.println(generatedCode);
}
}
Competitor Comparisons
Examples and guides for using the OpenAI API
Pros of openai-cookbook
- Comprehensive collection of OpenAI API usage examples and best practices
- Well-organized and regularly updated with new features and techniques
- Extensive documentation and explanations for each example
Cons of openai-cookbook
- Focused solely on OpenAI's offerings, limiting its scope compared to auto-dev
- Less emphasis on automated development workflows and AI-assisted coding
- May require more manual integration into existing development processes
Code Comparison
openai-cookbook:
import openai
response = openai.Completion.create(
engine="text-davinci-002",
prompt="Translate the following English text to French: '{}'",
max_tokens=60
)
auto-dev:
from autodev import AutoDev
auto_dev = AutoDev()
translated_text = auto_dev.translate("Hello, world!", source_lang="en", target_lang="fr")
The openai-cookbook example demonstrates direct API usage, while auto-dev provides a higher-level abstraction for AI-assisted development tasks.
Integrate cutting-edge LLM technology quickly and easily into your apps
Pros of Semantic Kernel
- More mature and widely adopted project with extensive documentation
- Supports multiple programming languages (C#, Python, Java)
- Backed by Microsoft, ensuring long-term support and development
Cons of Semantic Kernel
- Steeper learning curve due to its more complex architecture
- Primarily focused on integrating AI capabilities into existing applications
- Less emphasis on autonomous development and code generation
Code Comparison
Semantic Kernel (C#):
var kernel = Kernel.Builder.Build();
var function = kernel.CreateSemanticFunction("Generate a haiku about {{$input}}");
var result = await function.InvokeAsync("artificial intelligence");
Auto-Dev (Java):
AutoDevEngine engine = new AutoDevEngine();
String prompt = "Generate a haiku about artificial intelligence";
String result = engine.generateCode(prompt);
Key Differences
- Auto-Dev focuses on autonomous development and code generation, while Semantic Kernel provides a framework for integrating AI capabilities into applications
- Semantic Kernel offers more flexibility in terms of supported programming languages and integration options
- Auto-Dev appears to have a simpler API, potentially making it easier to get started for specific code generation tasks
π¦π Build context-aware reasoning applications
Pros of LangChain
- More mature and widely adopted project with a larger community
- Extensive documentation and examples for various use cases
- Supports multiple programming languages (Python, JavaScript)
Cons of LangChain
- Can be complex for beginners due to its extensive features
- May have more overhead for simple projects
- Requires more setup and configuration for basic tasks
Code Comparison
LangChain:
from langchain import OpenAI, LLMChain, PromptTemplate
llm = OpenAI(temperature=0.9)
prompt = PromptTemplate(input_variables=["product"], template="What is a good name for a company that makes {product}?")
chain = LLMChain(llm=llm, prompt=prompt)
print(chain.run("colorful socks"))
Auto-dev:
from auto_dev import AutoDev
auto_dev = AutoDev()
result = auto_dev.generate_code("Create a function to calculate the factorial of a number")
print(result)
The code examples show that LangChain focuses on creating chains of language models and prompts, while Auto-dev appears to be more oriented towards code generation tasks. LangChain's example demonstrates its flexibility in creating custom prompts and chains, whereas Auto-dev's example showcases its simplicity for code generation tasks.
A guidance language for controlling large language models.
Pros of guidance
- More focused on providing a structured approach to prompt engineering and LLM interactions
- Offers a declarative API for defining complex language tasks
- Supports multiple LLM backends, including OpenAI, Anthropic, and Hugging Face
Cons of guidance
- Less emphasis on full-stack development automation
- May require more manual configuration for specific development tasks
- Limited integration with existing development workflows and tools
Code Comparison
guidance:
with guidance.models.OpenAI('text-davinci-002') as model:
prompt = guidance('''
Human: Write a function to calculate the factorial of a number.
AI: Here's a Python function to calculate the factorial of a number:
{{gen 'code' stop='Human:'}}
''')
executed = prompt()
print(executed['code'])
auto-dev:
@AutoDev(type = AutoDevType.CODE_REVIEW)
public class CodeReviewExample {
public void reviewCode(String code) {
// Auto-dev will automatically review the code
}
}
AutoGPT is the vision of accessible AI for everyone, to use and to build on. Our mission is to provide the tools, so that you can focus on what matters.
Pros of AutoGPT
- More extensive and feature-rich, with a broader range of capabilities
- Larger community and more active development
- Supports multiple AI models and has a web interface
Cons of AutoGPT
- More complex setup and configuration process
- Higher resource requirements and potentially slower execution
- Less focused on specific development tasks compared to auto-dev
Code Comparison
AutoGPT:
def get_command(
response: str,
prompt: str,
command_name: str = "COMMAND",
arguments_name: str = "ARGUMENTS",
):
command_regex = f"{command_name}:\s*(.+)"
arguments_regex = f"{arguments_name}:\s*(.+)"
command_match = re.search(command_regex, response, re.DOTALL)
arguments_match = re.search(arguments_regex, response, re.DOTALL)
command = command_match.group(1).strip() if command_match else ""
arguments = arguments_match.group(1).strip() if arguments_match else ""
auto-dev:
fun generateCode(prompt: String): String {
val response = openAI.chatCompletion {
model = ModelId("gpt-3.5-turbo")
message { role = ChatRole.User; content = prompt }
}
return response.choices.first().message?.content ?: ""
}
π The Multi-Agent Framework: First AI Software Company, Towards Natural Language Programming
Pros of MetaGPT
- More comprehensive project management features, including task breakdown and role assignments
- Stronger focus on software engineering principles and best practices
- Better suited for larger, more complex projects with multiple components
Cons of MetaGPT
- Steeper learning curve due to its more complex architecture
- May be overkill for smaller, simpler projects
- Less flexibility in terms of customization and integration with existing workflows
Code Comparison
MetaGPT:
from metagpt.roles import ProjectManager, Architect, Engineer
from metagpt.team import Team
team = Team()
team.hire([ProjectManager(), Architect(), Engineer()])
team.run("Create a web application for task management")
auto-dev:
import com.unitmesh.autodev.AutoDev;
AutoDev autoDev = new AutoDev();
autoDev.generateProject("Task Management Web App");
While MetaGPT offers a more structured approach with defined roles and team management, auto-dev provides a simpler, more straightforward interface for project generation. MetaGPT's code reflects its focus on team collaboration and software engineering practices, while auto-dev's code emphasizes ease of use and quick project setup.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
AutoDev for Intellij
Γ°ΒΒ§ΒΓ’ΒΒAutoDev: The AI-powered coding wizard with multilingual support Γ°ΒΒΒ, auto code generation Γ°ΒΒΒΓ―ΒΈΒ, and a helpful bug-slaying assistant Γ°ΒΒΒ! Customizable prompts Γ°ΒΒΒ¨ and a magic Auto Dev/Testing/Document/Agent feature Γ°ΒΒ§Βͺ included! Γ°ΒΒΒ
VSCode Version: https://github.com/unit-mesh/auto-dev-vscode
DevIns Γ’ΒΒ AI Agent language for AutoDevelopment Γ’ΒΒ which you can use follow syntax as bridges for Human-AI-IDE:
/write:src/main/java/cc/unitmesh/Controller.java#L1-L12
```java
public class Controller {
public void method() {
System.out.println("Hello, World!");
}
}
```
With built-in syntax highlighting and auto-completion, you can use DevIns as next-generation AI Agent language.
AutoDev Architecture
Here is the AutoDev architecture:
AutoDev Feature Overview
Features:
- Languages support: Java, Kotlin, JavaScript/TypeScript, Rust, Python, Golang, C/C++/OC, or others...
- Auto development mode
- AutoCRUD (Spring frameworkΓ―ΒΌΒ. With DevTi Protocol (like
devti://story/github/1102
) will auto generate Model-Controller-Service-Repository code. - AutoSQL (required Database plugin). Context-aware SQL generation.
- AutoPage (React). Context-aware Web Page generation.
- AutoArkUI (HarmonyOS). Auto generate HarmonyOS ArkUI code.
- AutoTesting. create unit test intention, auto run unit test and try to fix test.
- AutoDocument. Auto generate document.
- AutoCRUD (Spring frameworkΓ―ΒΌΒ. With DevTi Protocol (like
- Copilot mode
- AutoDev will help you find bug, explain code, trace exception, generate commits, and more.
- Pattern specific. Based on your code context like (Controller, Service
import
), AutoDev will suggest the best code to you. - Related code. Based on recent file changes, AutoDev will call calculate similar chunk to generate the best code.
- Chat with AI. Chat with selection code and context-aware code.
- Customize.
- Custom specification of prompt. For example, Controller, Service, Repository, Model, etc.
- Custom intention action. You can add your own intention action.
- Custom LLM Server. You can customize your LLM Server in
Settings
->Tools
->AutoDev
- Custom Living documentation. Customize your own living documentation, like annotation.
- Team AI. Customize your team prompts in codebase, and distribute to your team.
- Prompt override. You can override AutoDev's prompt in your codebase.
- SDLC
- VCS. Generate/improve commit message, release note, and more.
- Code Review. Generate code-review content.
- Smart Refactoring. AI based Rename, refactoring with code smell, refactoring suggetion and more.
- Dockerfile. Based on your project, generate Dockerfile.
- CI/CD config. Based on build tool, generate CI/CD config file, like
.github/workflows/build.yml
. - Terminal. In Terminal ToolWindow, you can use custom input to generate shell/command
- Custom AI Agent
- Executable AI Agent language: DevIns.
- Custom AI Agent. You can integrate your own AI Agent into AutoDev.
- Model
AutoDev fine-tune models:
download from HuggingFace
name | model download (HuggingFace) | model download (OpenBayes) |
---|---|---|
DeepSeek 6.7B | AutoDev Coder | AutoDev Coder](https://openbayes.com/console/phodal/models/rCmer1KQSgp/9/overview) |
Language Features
Language Support
We follow Chapi AST analysis engine for language support tier.
Features | Java | Python | Go | Kotlin | JS/TS | C/C++ | C# | Scala | Rust | ArkTS |
---|---|---|---|---|---|---|---|---|---|---|
Chat Language Context | Γ’ΒΒ | Γ’ΒΒ | Γ’ΒΒ | Γ’ΒΒ | Γ’ΒΒ | Γ’ΒΒ | Γ’ΒΒ | Γ’ΒΒ | ||
Structure AST | Γ’ΒΒ | Γ’ΒΒ | Γ’ΒΒ | Γ’ΒΒ | Γ’ΒΒ | |||||
Doc Generation | Γ’ΒΒ | Γ’ΒΒ | Γ’ΒΒ | Γ’ΒΒ | Γ’ΒΒ | Γ’ΒΒ | Γ’ΒΒ | |||
Precision Test Generation | Γ’ΒΒ | Γ’ΒΒ | Γ’ΒΒ | Γ’ΒΒ | Γ’ΒΒ | Γ’ΒΒ | ||||
Precision Code Generation | Γ’ΒΒ | Γ’ΒΒ | ||||||||
AutoCRUD | Γ’ΒΒ | Γ’ΒΒ |
Extensions
see in exts
Demo
DevIns Language demo (Bilibili) - À¸ΒΓ¦ΒΒ
Video demo (YouTube) Γ’ΒΒ English
Video demo (Bilibili) - À¸ΒΓ¦ΒΒ
Useful Links
- Copilot-Explorer Hacky repo to see what the Copilot extension sends to the server.
- GitHub Copilot a small part of Copilot Performance logs.
- è±ÀºΒΓ₯ۤΓ₯ΒΒÀ¸ΒͺΓ¦ΒΒΓ―ΒΌΒΓ¦ΒΒç»Β˼ΒΓ©ΒΒΓ₯ΒΒΓ₯ΒΒΓ¦ΒΒ˼ΒGithub Copilot
Who is using AutoDev?
Welcome to add your company here.
- Thoughtworks, a leading technology consultancy.
License
Regarding the matter discussed in the LICENSE issue at the project's outset, we want to address the complexity of JetBrain plugin development. In the process, we referenced certain code and API designs from the JetBrains Community version and the JetBrains AI Assistant plugin. JetBrains understandably reserves the right to view this as potential infringement on their intellectual property.
Therefore, as of April 2024, AutoDev is no longer available on the JetBrains Plugin Marketplace. However, for older versions' AutoDev, you can access downloads from our Releases page.
Additionally, we extend a warm invitation to participate in the development of the VSCode version. Your contributions are greatly appreciated.
- ChatUI based on: https://github.com/Cspeisman/chatgpt-intellij-plugin
- Multiple target inspired by: https://github.com/intellij-rust/intellij-rust
- SimilarFile inspired by: JetBrains and GitHub Copilot
- DevIn Language refs on JetBrains' Markdown Util, which is licensed under the Apache 2.0 license.
Known License issues: JetBrain plugin development is no walk in the park! Oops, we cheekily borrowed some code from the JetBrains Community version and the super cool JetBrains AI Assistant plugin in our codebase. But fret not, we are working our magic to clean it up diligently! Γ°ΒΒ§ΒΓ’ΒΒΓ’ΒΒΓ―ΒΈΒΓ’ΒΒ¨.
Those codes will be removed in the future, you
can check it in src/main/kotlin/com/intellij/temporary
, if you want to use this plugin in your company,
please remove those codes to avoid any legal issues.
This code is distributed under the MPL 2.0 license. See LICENSE
in this directory.
Top Related Projects
Examples and guides for using the OpenAI API
Integrate cutting-edge LLM technology quickly and easily into your apps
π¦π Build context-aware reasoning applications
A guidance language for controlling large language models.
AutoGPT is the vision of accessible AI for everyone, to use and to build on. Our mission is to provide the tools, so that you can focus on what matters.
π The Multi-Agent Framework: First AI Software Company, Towards Natural Language Programming
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot