--- title: AnkiGen emoji: 📚 app_file: app.py requirements: requirements.txt python: 3.12 sdk: gradio sdk_version: 4.44.0 --- # AnkiGen - Anki Card Generator AnkiGen is a Gradio-based web application that generates Anki-compatible CSV files using Large Language Models (LLMs) based on user-specified subjects and preferences. ## Features - Generate Anki cards for various subjects - Customizable number of topics and cards per topic - User-friendly interface powered by Gradio - Exports to CSV format compatible with Anki import - Utilizes LLMs for high-quality content generation ## TODO - [ ] model dropdown - uses gpt4o-mini by default - [ ] cloze (checkbox?) ## Screenshot ![AnkiGen Screenshot](example.png) ## Installation for Local Use 1. Clone this repository: ``` git clone https://github.com/brickfrog/ankigen.git cd ankigen ``` 2. Install the required dependencies: ``` pip install -r requirements.txt ``` 3. Set up your OpenAI API key (required for LLM functionality). ## Usage 1. Run the application: ``` gradio app.py --demo-name ankigen ``` 2. Open your web browser and navigate to the provided local URL (typically `http://127.0.0.1:7860`). 3. In the application interface: - Enter your OpenAI API key - Specify the subject you want to create cards for - Adjust the number of topics and cards per topic - (Optional) Add any preference prompts - Click "Generate Cards" 4. Review the generated cards in the interface. 5. Click "Export to CSV" to download the Anki-compatible file. ## CSV Format The generated CSV file includes the following fields: - Index - Topic - Question - Answer - Explanation - Example You can create a new note type in Anki with these fields to handle importing. ## Development This project is built with: - Python 3.12 - Gradio 4.44.0 To contribute or modify: 1. Make your changes in `app.py` 2. Update `requirements.txt` if you add new dependencies 3. Test thoroughly before submitting pull requests ## License BSD 2.0 ## Acknowledgments - This project uses the Gradio library (https://gradio.app/) for the web interface - Card generation is powered by OpenAI's language models