This repository houses a GPT-powered AI assistant designed to integrate smoothly into software development workflows. Leveraging OpenAI’s models, the assistant aids in a variety of development and maintenance tasks such as executing shell commands, searching files, and managing GitHub issues directly through the repository.
- Interactive Assistant: Communicate interactively with the assistant to run shell commands, fetch configurations, etc.
- Automated Workflows: GitHub Actions workflows for creating, configuring, and updating the assistant.
- File Management: Scripts for loading, cleaning, and managing files in the assistant's vector store for efficient data handling.
-
Clone the Repository:
git clone https://github.com/your_username/ai_assistant.git cd ai_assistant
-
Set Up Python Environment:
python3 -m pip install --upgrade pip pip3 install -r requirements.txt
-
Install the Package:
pip install .
-
Set Up Environment Variables: Set up your OpenAI API key in the environment variables:
export OPENAI_API_KEY=<your_openai_api_key>
With the package installed, you can interact with the AI assistant using the provided CLI commands.
-
Run the Assistant:
ai_assistant --message "Your message here"
-
Using Specific Assistants:
ai_assistant --message "Your message here" --assistant <assistant_name>
-
Storing and Loading Threads:
- Save Thread ID:
ai_assistant --message "Your message here" --save-thread-id <path_to_save_thread_id>
- Load Thread ID:
ai_assistant --message "Your message here" --load-thread-id <path_to_load_thread_id>
- Save Thread ID:
-
Load Files into Assistant: This action updates the files in your assistant's vector store.
-
Run Assistant on Issue: This workflow triggers the assistant whenever a new issue is created in the repository.
.github/
├── workflows/
│ ├── clean_before_merge.yaml
│ ├── create_repo_assistant.yml
│ ├── handle_branch_deletion.yml
│ ├── run_assistant_on_issue.yaml
│ ├── update_assistant.yml
│ └── update_assistant_files.yml
ai_assistant/
├── utils/
│ ├── generate_repo_structure.py
│ └── utils.py
├── __init__.py
├── assistant_config.json
├── assistant_functions.py
├── assistant_gpt.py
├── create_repo_assistant.py
├── delete_repo_assistant.py
├── generate_commit.py
├── run_assistant.py
├── squash_branch.py
├── update_assistant.py
└── update_files.py
ai_assistant.egg-info/
├── dependency_links.txt
├── entry_points.txt
├── PKG-INFO
├── requires.txt
├── SOURCES.txt
└── top_level.txt
build/
├── bdist.linux-x86_64/
└── lib/
└── ai_assistant/
├── utils/
│ ├── generate_repo_structure.py
│ └── utils.py
├── __init__.py
├── assistant_config.json
├── assistant_functions.py
├── assistant_gpt.py
├── create_repo_assistant.py
├── delete_repo_assistant.py
├── generate_commit.py
├── run_assistant.py
├── squash_branch.py
├── update_assistant.py
└── update_files.py
scripts/
└── clean_backup_files.sh
tools/
├── open_ai_configuration/
│ ├── configure_assistant.py
│ ├── delete_all_open_ai_files.py
│ ├── dump_assistant_config.py
│ └── initial_config.json
└── workflow_specific/
└── fetch_ids_from_names.py
.gitignore
LICENSE
README.md
repo_assistant_config.json
requirements.txt
setup.py
thread-id
Contributions are welcome! Please create a pull request to propose any changes or improvements.
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.
- Python 3.x
- OpenAI Python SDK
- Pydantic
If you encounter issues, ensure that:
- Your OpenAI API key is correctly set in your environment variables.
- All dependencies are installed as specified in the
requirements.txt
.