| Name | reling JSON |
| Version |
1.5.3
JSON |
| download |
| home_page | https://github.com/danmysak/reling |
| Summary | Command-line tool for learning foreign languages through iterative translation with AI-generated feedback |
| upload_time | 2024-10-20 20:34:55 |
| maintainer | None |
| docs_url | None |
| author | Danylo Mysak |
| requires_python | >=3.12 |
| license | None |
| keywords |
|
| VCS |
 |
| bugtrack_url |
|
| requirements |
No requirements were recorded.
|
| Travis-CI |
No Travis.
|
| coveralls test coverage |
No coveralls.
|
# ReLing: Command-line Tool for Learning Foreign Languages
ReLing allows you to learn or enhance your knowledge of any [major world language](#languages) supported by [GPT models](https://platform.openai.com/docs/models). To use this tool, you must have a paid [OpenAI account](https://platform.openai.com/) with an [API key created](https://platform.openai.com/api-keys).
The program operates as follows:
- [Select a GPT model](#setting-models-and-api-key) to generate a [text](#generating-texts) or [dialogue](#generating-dialogues) on a chosen or random topic.
- View or translate the generated content into any [supported language](#languages).
- Take an [exam](#taking-exams) to translate the text from one language to another and receive:
- A score for each sentence on a 10-point scale;
- Suggestions for improving your translations;
- The program’s own translation of the sentence.
You can retake exams at your preferred frequency until you achieve perfect scores.
ReLing also enables you to view a [list](#listing-content) of all generated texts and dialogues and their associated [exam histories](#exam-history).
Optionally, the system can vocalize sentences in both the source and target languages and accept your responses via voice.
## Table of Contents<a id="table-of-contents"></a>
- [Installation](#installation)
- [Generating Texts](#generating-texts)
- [Generating Dialogues](#generating-dialogues)
- [Displaying Content](#displaying-content)
- [Taking Exams](#taking-exams)
- [Exam History](#exam-history)
- [Learning Statistics](#learning-statistics)
- [Listing Content](#listing-content)
- [Archiving Content](#archiving-content)
- [Unarchiving Content](#unarchiving-content)
- [Renaming Content](#renaming-content)
- [Deleting Content](#deleting-content)
- [Exporting Data](#exporting-data)
- [Automatic Content ID](#automatic-content-id)
- [Languages](#languages)
- [Setting Models and API Key](#setting-models-and-api-key)
- [Specifying Genders](#specifying-genders)
## Installation<a id="installation"></a>
Install [Python](https://www.python.org/downloads/) 3.12 or higher and [pipx](https://pipx.pypa.io/stable/installation/), then proceed based on your audio and grammar preferences:
### Without Audio or Grammar Support
```bash
pipx install reling
```
### With Audio Support
On macOS, first install [Homebrew](https://brew.sh/), then:
```bash
brew install portaudio
```
On Ubuntu, run:
```bash
sudo apt install python3-pyaudio
```
Install the tool with the `audio` extra:
```bash
pipx install "reling[audio]"
```
### With Grammar Support
If you want to track grammar-related [learning statistics](#learning-statistics), install the tool with the `grammar` extra:
```bash
pipx install "reling[grammar]"
```
### With Both Audio and Grammar Support
Follow the instructions above to install the necessary dependencies, then run the following command:
```bash
pipx install "reling[audio,grammar]"
```
### Finalizing Setup
You may need to restart your terminal for the `reling` command to be recognized.
Additionally, to enable command-line completions, execute:
```bash
reling --install-completion
```
For Mac users, you may also need to append `compinit -D` to the end of your `~/.zshrc` file.
## Generating Texts<a id="generating-texts"></a>
`reling create text`
The command format is:
```bash
reling create text en [--level basic] [--topic food] [--style news] [--size 5] [--include "cook: a person"] [--model <GPT-MODEL>] [--api-key <OPENAI-KEY>]
```
### Language
Specify a [supported language](#languages) as the only positional argument. The text will be in that language but can be translated later.
### `level`
Choose from three complexity levels:
- `basic`;
- `intermediate` (default);
- `advanced`.
### `topic`
You may select a topic for the text. If unspecified, a random topic from [100 predefined options](src/reling/data/topics.csv) will be chosen.
### `style`
You may also choose a style for the text. If unspecified, a random style from [25 predefined options](src/reling/data/styles.csv) will be chosen.
### `size`
This sets the number of sentences in the text. By default, 10 sentences are generated.
### `include`
This parameter allows you to ensure the inclusion of specific vocabulary in the text. You can specify a simple word (`--include cook`), a word with a specific meaning (`--include "cook: a person"`), or several words or phrases (`--include "cook: a person" --include soup --include "mac and cheese"`).
### `model` & `api-key`
Refer to [Setting Models and API Key](#setting-models-and-api-key).
## Generating Dialogues<a id="generating-dialogues"></a>
`reling create dialogue`
The command format is:
```bash
reling create dialogue en [--level advanced] [--speaker waiter] [--topic food] [--size 5] [--include "cook: a person"] [--speaker-gender male] [--user-gender female] [--model <GPT-MODEL>] [--api-key <OPENAI-KEY>]
```
### Language
Specify a [supported language](#languages) as the only positional argument. The dialogue will be generated in this language and can be translated later.
### `level`
Choose from three complexity levels:
- `basic`;
- `intermediate` (default);
- `advanced`.
### `speaker`
Specify an interlocutor or let the system choose randomly from [20 predefined options](src/reling/data/speakers.csv).
### `topic`
Choose a topic for the dialogue or let it be automatically determined.
### `size`
This parameter sets the number of sentence pairs in the dialogue. The default is 10.
### `include`
This parameter allows you to ensure the inclusion of specific vocabulary in the dialogue. You can specify a simple word (`--include cook`), a word with a specific meaning (`--include "cook: a person"`), or several words or phrases (`--include "cook: a person" --include soup --include "mac and cheese"`).
### `speaker-gender` & `user-gender`
Refer to [Specifying Genders](#specifying-genders).
If the interlocutor’s gender is not specified, it will be randomly chosen as either `male` or `female`.
### `model` & `api-key`
Refer to [Setting Models and API Key](#setting-models-and-api-key).
## Displaying Content<a id="displaying-content"></a>
`reling show`
View or listen to a text or dialogue with:
```bash
reling show <CONTENT-ID> [en] [--read] [--model <GPT-MODEL>] [--tts-model <TTS-MODEL>] [--api-key <OPENAI-KEY>]
```
### Content ID
Specify the identifier of the content to view. This ID is provided when content is created and [listed](#listing-content).
### Language
Optionally, specify a language to view the content in that language, translating if necessary.
### `read`
If enabled, the content will be read aloud. You can stop the reading at any time by pressing `Ctrl + C`.
### `model`, `tts-model` & `api-key`
Refer to [Setting Models and API Key](#setting-models-and-api-key).
## Taking Exams<a id="taking-exams"></a>
`reling exam`
To translate a text or dialogue and receive feedback, run:
```bash
reling exam <CONTENT-ID> [--from en] [--to fr] [--read fr] [--listen] [--hide-prompts] [--model <GPT-MODEL>] [--tts-model <TTS-MODEL>] [--asr-model <ASR-MODEL>] [--api-key <OPENAI-KEY>]
```
### Content ID
Specify the content identifier for the exam. This ID is provided when content is created and [listed](#listing-content).
### `from` & `to`
Specify the languages from which and to which you would like to translate the text or dialogue. If one of the languages is not specified, the original language of the selected text or dialogue will be used.
### `read`
Optionally, you can specify one or both of the selected source and target languages to have the text read aloud. For example, use `--read en --read fr` to hear the content in English and French. You can stop the reading at any time by pressing `Ctrl + C`.
### `listen`
When this flag is enabled, ReLing will accept your responses via voice. You also have the option to switch to manual input mode if needed.
### `hide-prompts`
This flag allows you to hide the original language text as well as the interlocutor’s turn (if in a dialogue). It can help train recall or listening skills (when the `listen` flag is enabled).
### `model`, `tts-model`, `asr-model` & `api-key`
Refer to [Setting Models and API Key](#setting-models-and-api-key).
## Exam History<a id="exam-history"></a>
`reling history`
To view your exam history, use the command:
```bash
reling history <CONTENT-ID> [--from en] [--to fr]
```
### Content ID
Specify the identifier of the text or dialogue whose exam history you wish to review.
### `from` & `to`
Limit the display of exam results to translations between specified source and target languages.
## Learning Statistics<a id="learning-statistics"></a>
`reling stats`
The `stats` command provides detailed statistics about your learning progress in specific languages. The command format is:
```bash
reling stats en [--grammar] [--comprehension] [--production] [--checkpoint 2024-12-01] [--checkpoint "2025-01-01, 15:00"]
```
### Language
Specify a [supported language](#languages) as the only positional argument. The statistics will be shown for this language.
### `grammar`
Use this flag to view statistics on learned word forms and lemmas, classified by part of speech. If this flag is not used, general statistics, such as total time spent in exams, will be displayed. Note that to use this flag, you must [install](#installation) the tool with the `grammar` extra.
### `comprehension` & `production`
You can request statistics related to either comprehension or production, or both. By default, both are displayed unless one is specifically requested.
### `checkpoint`
Optionally, provide one or more date checkpoints (in `YYYY-MM-DD` or `YYYY-MM-DD, HH:MM` format) to see progress since those points in time.
## Listing Content<a id="listing-content"></a>
`reling list`
To view a list of all generated texts and dialogues, execute:
```bash
reling list [--category dialogue] [--level intermediate] [--language en] [--search <REGEX>] [--archive] [--ids-only]
```
### `category`
Choose to display either `text`s or `dialogue`s.
### `level`
Filter content by complexity level: `basic`, `intermediate`, or `advanced`.
### `language`
Display content generated in a specific language.
### `search`
Use a regular expression to search content IDs, text, topics, styles, or interlocutors.
### `archive`
Toggle to view content from the [archive](#archiving-content).
### `ids-only`
Display only the identifiers of texts and dialogues without full details.
## Archiving Content<a id="archiving-content"></a>
`reling archive`
To archive texts and dialogues:
```bash
reling archive <CONTENT-ID>
```
### Content ID
Provide the identifier of the content you wish to archive.
## Unarchiving Content<a id="unarchiving-content"></a>
`reling unarchive`
To restore archived content to the main list:
```bash
reling unarchive <CONTENT-ID>
```
### Content ID
Specify the identifier of the content to be restored from the archive.
## Renaming Content<a id="renaming-content"></a>
`reling rename`
To rename a specific text or dialogue:
```bash
reling rename <CONTENT-ID> <NEW-ID>
```
### Content ID
Enter the identifier of the content you want to rename.
### New ID
Provide the new identifier for the content.
## Deleting Content<a id="deleting-content"></a>
`reling delete`
To remove texts or dialogues permanently:
```bash
reling delete <CONTENT-ID> [--force]
```
### Content ID
Specify the identifier of the content you intend to delete.
### `force`
Enable immediate deletion without confirmation.
## Exporting Data<a id="exporting-data"></a>
`reling db`
To access the data storage file for transferring or backing up content and exam results:
```bash
reling db
```
## Automatic Content ID<a id="automatic-content-id"></a>
If a dot (`.`) is provided in place of a content ID in any command, the system will assume that you are referring to the last text or dialogue you interacted with.
## Languages<a id="languages"></a>
ReLing supports over **180 major languages** [sourced from Wikipedia](https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes) under the [CC BY-SA 4.0 license](https://creativecommons.org/licenses/by-sa/4.0/deed.en).
To specify a language in a command argument, you can either write its full name (e.g., `English` or `english`) or use the 2-character or 3-character code for that language (e.g., `en` or `eng` for English).
## Setting Models and API Key<a id="setting-models-and-api-key"></a>
To avoid specifying [model names](https://platform.openai.com/docs/models) and entering the [API key](https://platform.openai.com/api-keys) separately for each command, you can set the following environment variables:
- `RELING_API_KEY`: a pre-generated API key for OpenAI’s web API.
- `RELING_MODEL`: the name of the GPT model used for generating text and taking exams (e.g., `gpt-4o`).
- `RELING_TTS_MODEL`: the name of the text-to-speech (TTS) model (e.g., `tts-1`). Since current OpenAI TTS models primarily focus on English and may not perform well in other languages, you can use the additional model `_gtts` (Google Text-to-Speech) for better voice output in other languages (note the leading underscore).
- `RELING_ASR_MODEL`: the name of the automatic speech recognition (ASR) model for voice response recognition (e.g., `whisper-1`).
Parameter values specified in individual commands will take precedence over these environment variables.
If a model or key is not specified in either the command or the environment variable, the program will prompt you to enter it directly.
## Specifying Genders<a id="specifying-genders"></a>
The system requires knowledge of your gender and the gender of your interlocutor to accurately generate dialogues in languages with grammatical gender and to provide voice outputs with appropriate voices.
To avoid specifying your gender each time you generate a new dialogue, you can set the environment variable `RELING_USER_GENDER`.
The system accepts one of the following values for gender: `male`, `female`, or `nonbinary`.
Raw data
{
"_id": null,
"home_page": "https://github.com/danmysak/reling",
"name": "reling",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.12",
"maintainer_email": null,
"keywords": null,
"author": "Danylo Mysak",
"author_email": "danmysak@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/55/ae/a2971be622f4257870ed29b0716ba163f679428a199f3211f413424c1a6b/reling-1.5.3.tar.gz",
"platform": null,
"description": "# ReLing: Command-line Tool for Learning Foreign Languages\n\nReLing allows you to learn or enhance your knowledge of any [major world language](#languages) supported by [GPT models](https://platform.openai.com/docs/models). To use this tool, you must have a paid [OpenAI account](https://platform.openai.com/) with an [API key created](https://platform.openai.com/api-keys).\n\nThe program operates as follows:\n\n- [Select a GPT model](#setting-models-and-api-key) to generate a [text](#generating-texts) or [dialogue](#generating-dialogues) on a chosen or random topic.\n- View or translate the generated content into any [supported language](#languages).\n- Take an [exam](#taking-exams) to translate the text from one language to another and receive:\n - A score for each sentence on a 10-point scale;\n - Suggestions for improving your translations;\n - The program\u2019s own translation of the sentence.\n\nYou can retake exams at your preferred frequency until you achieve perfect scores.\n\nReLing also enables you to view a [list](#listing-content) of all generated texts and dialogues and their associated [exam histories](#exam-history).\n\nOptionally, the system can vocalize sentences in both the source and target languages and accept your responses via voice.\n\n\n## Table of Contents<a id=\"table-of-contents\"></a>\n\n- [Installation](#installation)\n- [Generating Texts](#generating-texts)\n- [Generating Dialogues](#generating-dialogues)\n- [Displaying Content](#displaying-content)\n- [Taking Exams](#taking-exams)\n- [Exam History](#exam-history)\n- [Learning Statistics](#learning-statistics)\n- [Listing Content](#listing-content)\n- [Archiving Content](#archiving-content)\n- [Unarchiving Content](#unarchiving-content)\n- [Renaming Content](#renaming-content)\n- [Deleting Content](#deleting-content)\n- [Exporting Data](#exporting-data)\n- [Automatic Content ID](#automatic-content-id)\n- [Languages](#languages)\n- [Setting Models and API Key](#setting-models-and-api-key)\n- [Specifying Genders](#specifying-genders)\n\n\n## Installation<a id=\"installation\"></a>\n\nInstall [Python](https://www.python.org/downloads/) 3.12 or higher and [pipx](https://pipx.pypa.io/stable/installation/), then proceed based on your audio and grammar preferences:\n\n### Without Audio or Grammar Support\n\n```bash\npipx install reling\n```\n\n### With Audio Support\n\nOn macOS, first install [Homebrew](https://brew.sh/), then:\n\n```bash\nbrew install portaudio\n```\n\nOn Ubuntu, run:\n\n```bash\nsudo apt install python3-pyaudio\n```\n\nInstall the tool with the `audio` extra:\n\n```bash\npipx install \"reling[audio]\"\n```\n\n### With Grammar Support\n\nIf you want to track grammar-related [learning statistics](#learning-statistics), install the tool with the `grammar` extra:\n\n```bash\npipx install \"reling[grammar]\"\n```\n\n### With Both Audio and Grammar Support\n\nFollow the instructions above to install the necessary dependencies, then run the following command:\n\n```bash\npipx install \"reling[audio,grammar]\"\n```\n\n### Finalizing Setup\n\nYou may need to restart your terminal for the `reling` command to be recognized.\n\nAdditionally, to enable command-line completions, execute:\n\n```bash\nreling --install-completion\n```\n\nFor Mac users, you may also need to append `compinit -D` to the end of your `~/.zshrc` file.\n\n\n## Generating Texts<a id=\"generating-texts\"></a>\n`reling create text`\n\nThe command format is:\n\n```bash\nreling create text en [--level basic] [--topic food] [--style news] [--size 5] [--include \"cook: a person\"] [--model <GPT-MODEL>] [--api-key <OPENAI-KEY>]\n```\n\n### Language\n\nSpecify a [supported language](#languages) as the only positional argument. The text will be in that language but can be translated later.\n\n### `level`\n\nChoose from three complexity levels:\n\n- `basic`;\n- `intermediate` (default);\n- `advanced`.\n\n### `topic`\n\nYou may select a topic for the text. If unspecified, a random topic from [100 predefined options](src/reling/data/topics.csv) will be chosen.\n\n### `style`\n\nYou may also choose a style for the text. If unspecified, a random style from [25 predefined options](src/reling/data/styles.csv) will be chosen.\n\n### `size`\n\nThis sets the number of sentences in the text. By default, 10 sentences are generated.\n\n### `include`\n\nThis parameter allows you to ensure the inclusion of specific vocabulary in the text. You can specify a simple word (`--include cook`), a word with a specific meaning (`--include \"cook: a person\"`), or several words or phrases (`--include \"cook: a person\" --include soup --include \"mac and cheese\"`).\n\n### `model` & `api-key`\n\nRefer to [Setting Models and API Key](#setting-models-and-api-key).\n\n\n## Generating Dialogues<a id=\"generating-dialogues\"></a>\n`reling create dialogue`\n\nThe command format is:\n\n```bash\nreling create dialogue en [--level advanced] [--speaker waiter] [--topic food] [--size 5] [--include \"cook: a person\"] [--speaker-gender male] [--user-gender female] [--model <GPT-MODEL>] [--api-key <OPENAI-KEY>]\n```\n\n### Language\n\nSpecify a [supported language](#languages) as the only positional argument. The dialogue will be generated in this language and can be translated later.\n\n### `level`\n\nChoose from three complexity levels:\n\n- `basic`;\n- `intermediate` (default);\n- `advanced`.\n\n### `speaker`\n\nSpecify an interlocutor or let the system choose randomly from [20 predefined options](src/reling/data/speakers.csv).\n\n### `topic`\n\nChoose a topic for the dialogue or let it be automatically determined.\n\n### `size`\n\nThis parameter sets the number of sentence pairs in the dialogue. The default is 10.\n\n### `include`\n\nThis parameter allows you to ensure the inclusion of specific vocabulary in the dialogue. You can specify a simple word (`--include cook`), a word with a specific meaning (`--include \"cook: a person\"`), or several words or phrases (`--include \"cook: a person\" --include soup --include \"mac and cheese\"`).\n\n### `speaker-gender` & `user-gender`\n\nRefer to [Specifying Genders](#specifying-genders).\n\nIf the interlocutor\u2019s gender is not specified, it will be randomly chosen as either `male` or `female`.\n\n### `model` & `api-key`\n\nRefer to [Setting Models and API Key](#setting-models-and-api-key).\n\n\n## Displaying Content<a id=\"displaying-content\"></a>\n`reling show`\n\nView or listen to a text or dialogue with:\n\n```bash\nreling show <CONTENT-ID> [en] [--read] [--model <GPT-MODEL>] [--tts-model <TTS-MODEL>] [--api-key <OPENAI-KEY>]\n```\n\n### Content ID\n\nSpecify the identifier of the content to view. This ID is provided when content is created and [listed](#listing-content).\n\n### Language\n\nOptionally, specify a language to view the content in that language, translating if necessary.\n\n### `read`\n\nIf enabled, the content will be read aloud. You can stop the reading at any time by pressing `Ctrl + C`.\n\n### `model`, `tts-model` & `api-key`\n\nRefer to [Setting Models and API Key](#setting-models-and-api-key).\n\n\n## Taking Exams<a id=\"taking-exams\"></a>\n`reling exam`\n\nTo translate a text or dialogue and receive feedback, run:\n\n```bash\nreling exam <CONTENT-ID> [--from en] [--to fr] [--read fr] [--listen] [--hide-prompts] [--model <GPT-MODEL>] [--tts-model <TTS-MODEL>] [--asr-model <ASR-MODEL>] [--api-key <OPENAI-KEY>]\n```\n\n### Content ID\n\nSpecify the content identifier for the exam. This ID is provided when content is created and [listed](#listing-content).\n\n### `from` & `to`\n\nSpecify the languages from which and to which you would like to translate the text or dialogue. If one of the languages is not specified, the original language of the selected text or dialogue will be used.\n\n### `read`\n\nOptionally, you can specify one or both of the selected source and target languages to have the text read aloud. For example, use `--read en --read fr` to hear the content in English and French. You can stop the reading at any time by pressing `Ctrl + C`.\n\n### `listen`\n\nWhen this flag is enabled, ReLing will accept your responses via voice. You also have the option to switch to manual input mode if needed.\n\n### `hide-prompts`\n\nThis flag allows you to hide the original language text as well as the interlocutor\u2019s turn (if in a dialogue). It can help train recall or listening skills (when the `listen` flag is enabled).\n\n### `model`, `tts-model`, `asr-model` & `api-key`\n\nRefer to [Setting Models and API Key](#setting-models-and-api-key).\n\n\n## Exam History<a id=\"exam-history\"></a>\n`reling history`\n\nTo view your exam history, use the command:\n\n```bash\nreling history <CONTENT-ID> [--from en] [--to fr]\n```\n\n### Content ID\n\nSpecify the identifier of the text or dialogue whose exam history you wish to review.\n\n### `from` & `to`\n\nLimit the display of exam results to translations between specified source and target languages.\n\n\n## Learning Statistics<a id=\"learning-statistics\"></a>\n`reling stats`\n\nThe `stats` command provides detailed statistics about your learning progress in specific languages. The command format is:\n\n```bash\nreling stats en [--grammar] [--comprehension] [--production] [--checkpoint 2024-12-01] [--checkpoint \"2025-01-01, 15:00\"]\n```\n\n### Language\n\nSpecify a [supported language](#languages) as the only positional argument. The statistics will be shown for this language.\n\n### `grammar`\n\nUse this flag to view statistics on learned word forms and lemmas, classified by part of speech. If this flag is not used, general statistics, such as total time spent in exams, will be displayed. Note that to use this flag, you must [install](#installation) the tool with the `grammar` extra.\n\n### `comprehension` & `production`\n\nYou can request statistics related to either comprehension or production, or both. By default, both are displayed unless one is specifically requested.\n\n### `checkpoint`\n\nOptionally, provide one or more date checkpoints (in `YYYY-MM-DD` or `YYYY-MM-DD, HH:MM` format) to see progress since those points in time.\n\n\n## Listing Content<a id=\"listing-content\"></a>\n`reling list`\n\nTo view a list of all generated texts and dialogues, execute:\n\n```bash\nreling list [--category dialogue] [--level intermediate] [--language en] [--search <REGEX>] [--archive] [--ids-only]\n```\n\n### `category`\n\nChoose to display either `text`s or `dialogue`s.\n\n### `level`\n\nFilter content by complexity level: `basic`, `intermediate`, or `advanced`.\n\n### `language`\n\nDisplay content generated in a specific language.\n\n### `search`\n\nUse a regular expression to search content IDs, text, topics, styles, or interlocutors.\n\n### `archive`\n\nToggle to view content from the [archive](#archiving-content).\n\n### `ids-only`\n\nDisplay only the identifiers of texts and dialogues without full details.\n\n\n## Archiving Content<a id=\"archiving-content\"></a>\n`reling archive`\n\nTo archive texts and dialogues:\n\n```bash\nreling archive <CONTENT-ID>\n```\n\n### Content ID\n\nProvide the identifier of the content you wish to archive.\n\n\n## Unarchiving Content<a id=\"unarchiving-content\"></a>\n`reling unarchive`\n\nTo restore archived content to the main list:\n\n```bash\nreling unarchive <CONTENT-ID>\n```\n\n### Content ID\n\nSpecify the identifier of the content to be restored from the archive.\n\n\n## Renaming Content<a id=\"renaming-content\"></a>\n`reling rename`\n\nTo rename a specific text or dialogue:\n\n```bash\nreling rename <CONTENT-ID> <NEW-ID>\n```\n\n### Content ID\n\nEnter the identifier of the content you want to rename.\n\n### New ID\n\nProvide the new identifier for the content.\n\n\n## Deleting Content<a id=\"deleting-content\"></a>\n`reling delete`\n\nTo remove texts or dialogues permanently:\n\n```bash\nreling delete <CONTENT-ID> [--force]\n```\n\n### Content ID\n\nSpecify the identifier of the content you intend to delete.\n\n### `force`\n\nEnable immediate deletion without confirmation.\n\n\n## Exporting Data<a id=\"exporting-data\"></a>\n`reling db`\n\nTo access the data storage file for transferring or backing up content and exam results:\n\n```bash\nreling db\n```\n\n\n## Automatic Content ID<a id=\"automatic-content-id\"></a>\n\nIf a dot (`.`) is provided in place of a content ID in any command, the system will assume that you are referring to the last text or dialogue you interacted with.\n\n\n## Languages<a id=\"languages\"></a>\n\nReLing supports over **180 major languages** [sourced from Wikipedia](https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes) under the [CC BY-SA 4.0 license](https://creativecommons.org/licenses/by-sa/4.0/deed.en).\n\nTo specify a language in a command argument, you can either write its full name (e.g., `English` or `english`) or use the 2-character or 3-character code for that language (e.g., `en` or `eng` for English).\n\n\n## Setting Models and API Key<a id=\"setting-models-and-api-key\"></a>\n\nTo avoid specifying [model names](https://platform.openai.com/docs/models) and entering the [API key](https://platform.openai.com/api-keys) separately for each command, you can set the following environment variables:\n\n- `RELING_API_KEY`: a pre-generated API key for OpenAI\u2019s web API.\n- `RELING_MODEL`: the name of the GPT model used for generating text and taking exams (e.g., `gpt-4o`).\n- `RELING_TTS_MODEL`: the name of the text-to-speech (TTS) model (e.g., `tts-1`). Since current OpenAI TTS models primarily focus on English and may not perform well in other languages, you can use the additional model `_gtts` (Google Text-to-Speech) for better voice output in other languages (note the leading underscore).\n- `RELING_ASR_MODEL`: the name of the automatic speech recognition (ASR) model for voice response recognition (e.g., `whisper-1`).\n\nParameter values specified in individual commands will take precedence over these environment variables.\n\nIf a model or key is not specified in either the command or the environment variable, the program will prompt you to enter it directly.\n\n\n## Specifying Genders<a id=\"specifying-genders\"></a>\n\nThe system requires knowledge of your gender and the gender of your interlocutor to accurately generate dialogues in languages with grammatical gender and to provide voice outputs with appropriate voices.\n\nTo avoid specifying your gender each time you generate a new dialogue, you can set the environment variable `RELING_USER_GENDER`.\n\nThe system accepts one of the following values for gender: `male`, `female`, or `nonbinary`.\n",
"bugtrack_url": null,
"license": null,
"summary": "Command-line tool for learning foreign languages through iterative translation with AI-generated feedback",
"version": "1.5.3",
"project_urls": {
"Bug Tracker": "https://github.com/danmysak/reling/issues",
"Homepage": "https://github.com/danmysak/reling"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "ba45f9f70b166bdf9042e502482db215ea2c92178b7bf96902cf7d8097c541ea",
"md5": "c7fbfb6546630d9c5b54faf5c365d4c3",
"sha256": "c384d059281618d002d5771a34b0ddc0767237cbcd817f4e8914e9c918fac986"
},
"downloads": -1,
"filename": "reling-1.5.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c7fbfb6546630d9c5b54faf5c365d4c3",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.12",
"size": 78676,
"upload_time": "2024-10-20T20:34:49",
"upload_time_iso_8601": "2024-10-20T20:34:49.042225Z",
"url": "https://files.pythonhosted.org/packages/ba/45/f9f70b166bdf9042e502482db215ea2c92178b7bf96902cf7d8097c541ea/reling-1.5.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "55aea2971be622f4257870ed29b0716ba163f679428a199f3211f413424c1a6b",
"md5": "ef6c204cb71eb038f51da7bc00494fe5",
"sha256": "bd72f2c1704dd0dd68624fe75453c25228b4fd6dcd2790b710887cbd533556f9"
},
"downloads": -1,
"filename": "reling-1.5.3.tar.gz",
"has_sig": false,
"md5_digest": "ef6c204cb71eb038f51da7bc00494fe5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.12",
"size": 58680,
"upload_time": "2024-10-20T20:34:55",
"upload_time_iso_8601": "2024-10-20T20:34:55.049325Z",
"url": "https://files.pythonhosted.org/packages/55/ae/a2971be622f4257870ed29b0716ba163f679428a199f3211f413424c1a6b/reling-1.5.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-20 20:34:55",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "danmysak",
"github_project": "reling",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "reling"
}