Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wolfia-app/gpt-code-search
gpt-code-assistant is an open-source coding assistant leveraging language models to search, retrieve, explore and understand any codebase.
https://github.com/wolfia-app/gpt-code-search
ai code gpt-4 llm search
Last synced: about 2 hours ago
JSON representation
gpt-code-assistant is an open-source coding assistant leveraging language models to search, retrieve, explore and understand any codebase.
- Host: GitHub
- URL: https://github.com/wolfia-app/gpt-code-search
- Owner: narenmanoharan
- License: apache-2.0
- Created: 2023-06-23T17:41:53.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-08-08T15:00:49.000Z (about 1 year ago)
- Last Synced: 2024-10-26T20:34:29.438Z (12 days ago)
- Topics: ai, code, gpt-4, llm, search
- Language: Python
- Homepage:
- Size: 101 MB
- Stars: 200
- Watchers: 5
- Forks: 18
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-ChatGPT-repositories - gpt-code-search - GitHub Action to upload your app for automating the distribution of your app. (Others)
README
gpt-code-assistant
gpt-code-assistant is an AI-based open-source tool for exploring, querying, and understanding any codebase using Language Models (LLMs) and vector embeddings (a technique to convert objects, like text, into vectors).
## Table of Contents
- [Features](#features)
- [Getting Started](#getting-started)
- [Installation](#installation)
- [Usage](#usage)
- [Configuration](#configuration)
- [Problem](#problem)
- [Roadmap](#roadmap)
- [Contributing](#contributing)## Features
- **LLM-based Search & Retrieval**: Uses Language Models for efficient code search, retrieval, and comprehension.
- **File-system Integration**: Designed to work with any codebase and operates directly with any local code on your machine, allowing seamless integration with your existing workflow.
- **Language Agnostic**: Supports multiple programming languages.
- **Privacy-centric Design**: Code snippets are only transmitted when a question is asked and the Language Model requests the relevant code, ensuring privacy. **(Note: Code snippets are shared with OpenAI)**Future plans include supporting local models and the ability to generate code.
## Getting Started
### Installation
```bash
pip install gpt-code-assistant
```### Usage
#### Create a project
First, create a project to index all the files. This step involves creating embeddings for each file and storing them in a local database.
```bash
gpt-code-assistant create-projectgpt-code-assistant create-project gpt-code-assistant .
```#### Ask a question about your codebase
To query about the purpose of your codebase, you can use the `query` command:
```bash
gpt-code-assistant query "What does this codebase do?"
```If you want to generate a test for a specific file, for example analytics.py, you can mention the file name to improve accuracy:
```bash
gpt-code-assistant query gpt-code-assistant "Can you generate a test for analytics.py?"
```For a general usage question about a certain module, like analytics, you can use keywords to search across the codebase:
```bash
gpt-code-assistant query gpt-code-assistant "How do I use the analytics module?"
```**Remember, mentioning the file name or specific keywords improves the accuracy of the search.**
#### List all projects
To get a list of all the projects:
```bash
gpt-code-assistant list-projects
```#### Refresh a project
If you want to reindex a project and update the embeddings to the latest content:
```bash
gpt-code-assistant refresh-project
```#### Delete a project
If you wish to delete a project and all its data (including embeddings):
```bash
gpt-code-assistant delete-project
```#### Select a model to use
You can select which model to use for your queries:
```bash
gpt-code-assistant select-model
```Defaults to `gpt-3.5-turbo-16k`. The selected model is stored in `$HOME/.gpt-code-assistant/config.toml`.
### Configuration
The tool will prompt you to configure the `OPENAI_API_KEY`, if you haven't already.
## Problem
You want to leverage the power of GPT-4 to search your codebase, but you don't want to manually copy and paste code snippets into a prompt nor send your code to another third-party service (other than OpenAI). This tool solves these problems by letting GPT-4 determine the most relevant code snippets within your codebase. It also allows you to perform your queries in your terminal, removing the need for a separate UI.
Examples of the types of questions you might want to ask:
- 🐛 Help debugging errors and finding the relevant code and files
- 📝 Document large files or functionalities formatted as markdown
- 🛠️ Generate new code based on existing files and conventions
- 📨 Ask general questions about any part of the codebase## Roadmap
- [x] Use vector embeddings to improve search and retrieval
- [ ] Add support for additional models (Claude, Bedrock, etc)
- [ ] Add support for local models (Llama2, Starcoder, etc)
- [ ] Add support for generating code and saving it to a file
- [ ] Support for searching across multiple codebases
- [ ] Allow the model to create new functions that it can then execute
- [ ] Use [guidance](https://github.com/microsoft/guidance) to improve prompts## Contributing
We love contributions from the community! ❤️ If you'd like to contribute, feel free to fork the repository and submit a pull request.
Please read our [Code of Conduct](CODE_OF_CONDUCT.md) and [Contributing Guide](CONTRIBUTING.md) for more detailed steps and information.
## Code of Conduct
We are committed to fostering a welcoming community. To ensure that everyone feels safe and welcome, we have a [Code of Conduct](CODE_OF_CONDUCT.md) that all contributors, maintainers, and users of this project are expected to adhere to.
## Support
If you're having trouble using `gpt-code-assistant`, feel free to [open an issue](https://github.com/narenmanoharan/gpt-code-assistant/issues) on our GitHub. You can also reach out to us directly at [[email protected]](mailto:[email protected]). We're always happy to help!
## Feedback
Your feedback is very important to us! If you have ideas for how we can improve `gpt-code-assistant`, we'd love to hear from you. Please [open an issue](https://github.com/narenmanoharan/gpt-code-assistant/issues) or reach out to us directly at [narenkmanoharan@gmail](mailto:narenkmanoharan@gmail) with your feedback or thoughts.
## License
This project is licensed under the terms of the [Apache 2.0](LICENSE).