-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update README files, adding some images
- Loading branch information
Showing
7 changed files
with
41 additions
and
89 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
/temp |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,54 +1,32 @@ | ||
# AutoDev: LLM-Based Coding Assistance Functions | ||
# AutoDev IntellIJ IDEA Plugin | ||
|
||
This repository contains two projects: | ||
A plugin for IntelliJ IDEA and other JetBrains IDEs. | ||
|
||
* The **AutoDev Python project** providing the core functionality (`./autodev`) | ||
* A Java project implementing the **AutoDev IntellIJ IDEA plugin** which provides access to the coding assistance functions within an IDE (`./idea-plugin`). | ||
## Development Environment | ||
|
||
## AutoDev Python Project | ||
|
||
### Environment | ||
|
||
Use conda to set up your virtual environment: | ||
|
||
conda env create -f environment.yml | ||
|
||
### Packages | ||
|
||
The `autodev` package provides the following Python modules: | ||
* `llm` provides **abstractions for large language models** (LLMs). | ||
* The high-level abstraction, which provides streaming-based queries, is given by the `StreamingLLM` class. | ||
* Instances of `StreamingLLM` can be created via specializations of the `LLMFactory` class. | ||
* `LLMType` constitutes a convenient enumeration of the model types considered in concrete factory implementations. | ||
* `code_functions` contains **code assistant functions** that take code as input and return text/code as output, supporting editor-based | ||
actions where the user selects text in the editor and then uses the context menu to invoke an assistant function. | ||
* `service` implements a **Flask-based service** that provides access to the aforementioned code functions via an HTTP service. | ||
* `stream_formatting` is concerned with the on-the-fly HTML formatting of streamed responses | ||
* `document_qa` provides simple **question answering** functionality (based on a static set of documents) | ||
* further modules (`splitting`, `indexing`, `embedding`) that could prove useful when extending the question answering use case to use fewer non-standard components that are directly provided by the `langchain` library | ||
* `logging` facilitates logging configuration (as a drop-in replacement for Python's `logging` module) | ||
|
||
### Runnable Scripts | ||
|
||
The root folder contains runnable scripts: | ||
* `run_qa_fireface_manual.py` and `run_qa_sensai.py` implement question answering use cases based on the manual of an audio interface and the [sensAI](http://github.com/jambit/sensAI) library source code respectively. | ||
* `run_service.py` starts the HTTP service for remote access to coding assistance functions. | ||
When opening this folder as a project in IntellIJ IDEA; | ||
a gradle project should be detected and the run configuration `Run Plugin` | ||
should be available. | ||
Running this configuration will start an IntellIJ instance with the plugin enabled. | ||
|
||
Notebooks: | ||
* `apply_code_functions.ipynb` can be used to apply code functions to the code snippets in `data/code_snippets` using different LLMs. | ||
### Building Dependencies | ||
|
||
## AutoDev IntellIJ IDEA Plugin | ||
The project depends on components from TabNine. | ||
To build these dependencies and make them available on your local machine, | ||
checkout branch `v1.0.9-autodev` from | ||
[here](https://github.com/opcode81/tabnine-intellij/tree/v1.0.9-autodev). | ||
Then, in folders `Common` and `Tabnine`, run | ||
|
||
Open the folder `idea-plugin/autodev-plugin` as a project in IntellIJ. | ||
../gradlew -x test build publishToMavenLocal | ||
|
||
IntelliJ should detect the gradle project and display the run configuration `Run Plugin`. | ||
Running this configuration will start an IntellIJ instance with the plugin enabled. | ||
By default, it will query the service at `localhost:5000`. | ||
NOTE: Use a newer version of JDK 11 (e.g. 11.0.9), otherwise it may not work | ||
(it didn't work for me with either JDK 17 or JDK 11.0.0). | ||
|
||
### Components | ||
## Components | ||
|
||
* The file `plugin.xml` defines the plugin components that are activated | ||
* The package `de.appliedai.autodev.actions` contains editor actions (available in the editor context menu) | ||
* Class `de.appliedai.autodev.ServiceClient` contains the service client implementation, in which the service URL is configured. | ||
* The file `plugin.xml` defines the plugin components that are activated. | ||
* | ||
* The package `de.appliedai.autodev.actions` contains editor actions (available in the editor context menu). | ||
* Class `de.appliedai.autodev.ServiceClient` contains the service client implementation. | ||
* Class `de.appliedai.autodev.AutoDevToolWindowManager` manages the creation of tool window components/tabs that are displayed in reaction to user queries. | ||
|
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.