Metadata-Version: 2.1
Name: learning-assistant
Version: 3.2.0
Summary: Plugin for a learning assistant backend, intended for use within edx-platform
Home-page: https://github.com/openedx/learning-assistant
Author: edX
Author-email: team-cosmonauts@edx.org
License: AGPL 3.0
Keywords: Python edx
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: Django
Classifier: Framework :: Django :: 3.2
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Requires-Python: >=3.8
License-File: LICENSE.txt
Requires-Dist: Django
Requires-Dist: django-model-utils
Requires-Dist: djangorestframework
Requires-Dist: edx-drf-extensions
Requires-Dist: edx-opaque-keys
Requires-Dist: edx-rest-api-client
Requires-Dist: jinja2

learning-assistant
#############################

|pypi-badge| |ci-badge| |codecov-badge| |doc-badge| |pyversions-badge|
|license-badge| |status-badge|

Purpose
*******

Plugin for a learning assistant backend, intended for use within edx-platform.

This library contains data models and logic for a platform wide learning assistant.

Dependencies
************
In addition to the edx-platform repository in which this library is installed, this plugin also
leverages the `frontend-lib-learning-assistant`_ as a frontend interface for the learning assistant.

Getting Started
***************

Developing
==========

One Time Setup
--------------
.. code-block::

  # Clone the repository
  git clone git@github.com:openedx/learning-assistant.git
  cd learning-assistant

  # Set up a virtualenv with the same name as the repo and activate it
  # Here's how you might do that if you have virtualenvwrapper setup.
  mkvirtualenv -p python3.8 learning-assistant

Every time you develop something in this repo
---------------------------------------------
.. code-block::

  # Activate the virtualenv
  # Here's how you might do that if you're using virtualenvwrapper.
  workon learning-assistant

  # Grab the latest code
  git checkout main
  git pull

  # Install/update the dev requirements
  make requirements

  # Run the tests and quality checks (to verify the status before you make any changes)
  make validate

  # Make a new branch for your changes
  git checkout -b <your_github_username>/<short_description>

  # Using your favorite editor, edit the code to make your change.
  vim ...

  # Run your new tests
  pytest ./path/to/new/tests

  # Run all the tests and quality checks
  make validate

  # Commit all your changes
  git commit ...
  git push

  # Open a PR and ask for review.

License
*******

The code in this repository is licensed under the AGPL 3.0 unless
otherwise noted.

Please see `LICENSE.txt <LICENSE.txt>`_ for details.

Contributing
************

This repo is not currently accepting contributions.

The Open edX Code of Conduct
****************************

All community members are expected to follow the `Open edX Code of Conduct`_.

.. _Open edX Code of Conduct: https://openedx.org/code-of-conduct/

Reporting Security Issues
*************************

Please do not report security issues in public. Please email security@edx.org.

.. |pypi-badge| image:: https://img.shields.io/pypi/v/learning-assistant.svg
    :target: https://pypi.python.org/pypi/learning-assistant/
    :alt: PyPI

.. |ci-badge| image:: https://github.com/openedx/learning-assistant/workflows/Python%20CI/badge.svg?branch=main
    :target: https://github.com/openedx/learning-assistant/actions
    :alt: CI

.. |codecov-badge| image:: https://codecov.io/github/openedx/learning-assistant/coverage.svg?branch=main
    :target: https://codecov.io/github/openedx/learning-assistant?branch=main
    :alt: Codecov

.. |doc-badge| image:: https://readthedocs.org/projects/learning-assistant/badge/?version=latest
    :target: https://docs.openedx.org/projects/learning-assistant
    :alt: Documentation

.. |pyversions-badge| image:: https://img.shields.io/pypi/pyversions/learning-assistant.svg
    :target: https://pypi.python.org/pypi/learning-assistant/
    :alt: Supported Python versions

.. |license-badge| image:: https://img.shields.io/github/license/openedx/learning-assistant.svg
    :target: https://github.com/openedx/learning-assistant/blob/main/LICENSE.txt
    :alt: License

.. TODO: Choose one of the statuses below and remove the other status-badge lines.
.. |status-badge| image:: https://img.shields.io/badge/Status-Experimental-yellow
.. .. |status-badge| image:: https://img.shields.io/badge/Status-Maintained-brightgreen
.. .. |status-badge| image:: https://img.shields.io/badge/Status-Deprecated-orange
.. .. |status-badge| image:: https://img.shields.io/badge/Status-Unsupported-red

.. _frontend-lib-learning-assistant: https://github.com/edx/frontend-lib-learning-assistant


Change Log
##########

..
   All enhancements and patches to learning_assistant will be documented
   in this file.  It adheres to the structure of https://keepachangelog.com/ ,
   but in reStructuredText instead of Markdown (for ease of incorporation into
   Sphinx documentation and the PyPI description).

   This project adheres to Semantic Versioning (https://semver.org/).

.. There should always be an "Unreleased" section for changes pending release.

Unreleased
**********

3.2.0 - 2024-01-30
******************
* Remove audit access to chat view.

3.0.1 - 2024-01-29
******************
* Modify gating of learning assistant based on waffle flag and enabled value.

3.0.0 - 2024-01-23
******************
* Remove and drop the course prompt model.

2.0.3 - 2024-01-22
******************
* Remove references to the course prompt model.

2.0.1 - 2024-01-08
******************
* Gate content integration with waffle flag

2.0.0 - 2024-01-03
******************
* Add content cache
* Integrate system prompt setting

1.5.0 - 2023-10-18
******************
* Add management command to generate course prompts

1.4.0 - 2023-09-11
******************
* Send reduced message list if needed to avoid going over token limit

1.3.3 - 2023-09-07
******************
* Allow any enrolled learner to access API.

1.3.2 - 2023-08-25
******************
* Remove deserialization of prompt field, as it is represented in the python
  native format

1.3.1 - 2023-08-24
******************
* Remove prompt field

1.3.0 - 2023-08-24
******************
* Remove references to prompt field
* Create json_prompt field to allow for more flexible prompts

1.2.1 - 2023-08-24
******************
* make prompt field nullable

1.2.0 - 2023-08-22
******************
* add endpoint authentication
* fix request structure required for endpoint integration

1.1.0 - 2023-08-09
******************
* fix for course id to course key conversion

1.0.0 - 2023-08-08
******************

* Add endpoint to retrieve chat response
* Created model to associate course ideas with a specific prompt text

Unreleased
**********


0.1.0 – 2023-07-26
**********************************************

Added
=====

* First release on PyPI.
