.vscode | ||
.gitignore | ||
ankiai.py | ||
images2text.py | ||
json2deck.py | ||
prompt4cards.py | ||
README.md | ||
requirements.txt | ||
server.py |
json2ankicards
A comprehensive toolkit that offers:
- Conversion of JSON files into Anki deck packages (.apkg files).
- Conversion of image files in a directory to a text file using Optical Character Recognition (OCR).
- Generation of JSON format question-answer pairs from textual content using OpenAI's GPT-3 model.
- RESTful API endpoint to upload and convert multiple images directly into an Anki deck package.
Features
- Converts a JSON file with questions and answers into an Anki deck package.
- Converts image files from a specified directory to a single text file using OCR.
- Generates JSON formatted question-answer pairs based on a given text content, ideal for studying or summarization.
- For JSON: there are only two columns in the JSON file, separated by the first comma encountered.
- JSON files should have a "Front" column for questions and a "Back" column for answers.
- API endpoint that accepts multiple image uploads, processes them through the pipeline, and returns an Anki deck package.
Installation
-
Clone this repository:
git clone https://git.rudefox.io/bj/anki-json2ankicards.git cd json2ankicards
-
Set up a virtual environment and activate it:
python3 -m venv venv source venv/bin/activate
-
Install the required packages:
pip install -r requirements.txt
Configuration
Before using the text2jsondeck.py
script, ensure that you have set the OPENAI_API_KEY
environment variable:
export OPENAI_API_KEY=your_openai_api_key_here
Remember to replace your_openai_api_key_here
with your actual OpenAI API key.
Usage
REST API Usage
To start the server:
python server.py
Endpoint: /deck-from-images
Method: POST
Description: Accepts multiple image uploads, processes them through the pipeline, and returns an Anki deck package.
Body:
- form-data with key
image
and multiple image files as values.
Response:
- An
output.apkg
file ready for import into Anki.
Pipeline Usage
To convert a directory of images directly to an Anki deck package:
python pipeline.py /path/to/your/image_directory/
This will process the images, extract text, convert text to a set of questions and answers in JSON format, and then produce an output.apkg
file ready for import into Anki.
Image to Text Conversion
To convert images from a directory to a single text file using OCR:
python images2text.py /path/to/your/image_directory/
This will produce a final.txt
file which contains the text extracted from the images.
Supported Image Formats
Currently supported formats for the images are: .png
, .jpg
, and .jpeg
.
Text to JSON Deck Generation
To generate a JSON deck of question-answer pairs from a given text file:
python text2jsondeck.py /path/to/your/textfile.txt
This will analyze the content of the given text file and generate a corresponding _deck.json
file with questions and answers that capture the main points and themes of the text.
Note: This script uses the OpenAI GPT-3 model. Ensure you have the necessary API key and OpenAI Python client installed.
JSON to Anki Conversion
To convert a JSON file into an Anki deck package:
python json2ankicards.py /path/to/your/jsonfile.json output.apkg
This will produce an output.apkg
file which can then be imported into Anki.
JSON Format
The JSON file should follow this format:
Front,Back
Your question here,Your answer here
Another question,list of: answer1, answer2, answer3
...
Note: If your answers contain commas, they will be considered as part of the answer. Only the first comma is used to separate the question from the answer.