Skip to content

Releases: brunoamaral/gregory-ai

New API endpoints to fetch content per team

30 May 20:41
c970d8e
Compare
Choose a tag to compare

What's Changed

Full Changelog: v19...v20

v19 - Gregory Teams

25 May 12:05
803e013
Compare
Choose a tag to compare

We are going through some changes and will be breaking some things soon.

  • Teams can be configured in the backend
  • Each team can set their own categories, subjects, and sources
  • Different subjects (topics) can use different Machine Learning Models

Right now some deprecated fields are still present in the database: relevant, categories, and ml_prediction_* for example.

Upgrading

Run manage.py makemigrations and manage.py migrate; then run manage.py migrate_categories.

What's Changed

Full Changelog: v18...v19

Multiple Research Subjects (topics)

04 May 19:38
4cb5738
Compare
Choose a tag to compare
  1. We reviewed the pipeline that fetches and processes articles and clinical trials. it now runs with Django base commands: docker exec -it admin python manage.py
  2. We added the option to create a Team using django-organizations
  3. Each team can now have one or more research subjects and set sources to fetch articles for that subject.

Word of warning about the source field: the source field is no longer needed and was replaced with a ManyToMany field called sources. It is there for the time being, so that you can migrate your data using something like this:

from django.db import migrations

def copy_source_to_sources(apps, schema_editor):
    Article = apps.get_model('gregory', 'Articles')  # Replace 'gregory' with the actual app name
    for article in Article.objects.all():
        if article.source:  # Check if the old source field is not None
            article.sources.add(article.source)  # Add the old source to the new ManyToMany sources field

class Migration(migrations.Migration):

    dependencies = [
        ('gregory', '0077_articles_sources_alter_articles_source'),
    ]

    operations = [
        migrations.RunPython(copy_source_to_sources),
    ]

I suggest you create a team and subject and use the following to assign your articles to them:

def add_teams_and_subjects_to_articles():
	for article in Articles.objects.all():
		 article.teams.add(Team.objects.first())
		 article.subjects.add(Subject.objects.first())
	for trial in Trial.objects.all():
		 trial.teams.add(Team.objects.first())
		 trial.subjects.add(Subject.objects.first())

Right now, all the data is public and anyone can see what each team is researching. We want to make the API show a segregated view of the articles and clinical trials based on the user making the API request, with an option to set subjects as public or private. But I don't know how to do that.

Helping the Multiple Sclerosis Project

I have never asked for donations, but I am having a hard time keeping the MS project running. If you would like to help, you can donate to cover expenses through the Human Singularity Network, a non-profit we created to manage resources and partnerships.

https://donate.stripe.com/6oEeVmf1tdHIdOw7ss

Or if you can't, please share the project with everyone you feel might benefit from it.

Thank you!

What's Changed

Full Changelog: v17...v18

clean up release

29 Mar 15:25
a9b9368
Compare
Choose a tag to compare

I've lost the energy for witty texts.

We removed django-cron and updated the python packages, adding a new pipeline command that fetches and processes articles and clinical trials.

We also made it possible to import data from the WHO clinical trial registry.

What's Changed

Full Changelog: v16...v17

v16

24 Nov 12:51
92b32c2
Compare
Choose a tag to compare
v16

I was going to say this was mostly a maintenance release, but there are 3 big changes.

  1. We have changed the license for Gregory. It is now under a Creative Commons — Attribution 4.0 International license.

This change was made because some people are working on amazing add-ons for Gregory and we want to do all we can to ensure their recognition.

  1. Added fields for saving Machine Learning predictions made by the Linear SVC Support Vector Classifier.

  2. Added a django command to import data from the World Health Organisation (WHO)

The Clinical Trials table was changed to include the same fields used by the WHO, so remember to run ./manage.py makemigrations && ./manage.py migrate.

After, you can now go to https://trialsearch.who.int/AdvSearch.aspx, find the clinical trials you want, and import them into gregory with ./manage.py importWHOXML FILE

What's Changed

Full Changelog: v15.5...v16

v15.5

30 Oct 13:56
bb80403
Compare
Choose a tag to compare

Rest assured, this project is still very much alive. We have been doing a lot of backoffice work that we hope will give us more ways to develop Gregory.

For now, a quick maintenance release

What's Changed

Full Changelog: v15...v16

The Doc Brown Edition

17 Jul 19:13
9cf169f
Compare
Choose a tag to compare

Great Scott, it's been a while!

The team as been busy with other tasks and opening new doors. No fancy text this time, here are the changes since April.

  1. Improvement to the sources, adding a list of fetch options instead of text field, with a new field for description of the source, just in case you need to keep notes.
  2. A few api changes and endpoints to help build charts that we now see in the observatory page for Multiple Sclerosis research.
  3. Check if a clinical trial is duplicate based on the ID number
  4. Keep history of changes to a clinical trial, if possible, this needs more testing, if you can help.
  5. We have included an authentication option using Django Rest Framework and djangorestframework-simplejwt

Remember to run manage.py makemigrations and manage.py migrate after pulling this new release

What's Changed

Full Changelog: v14...v15

The Virginia Lacy Jones Edition

15 Apr 20:45
0adadcb
Compare
Choose a tag to compare

Just because this one is short and sweet doesn't make it a small feet. We upgraded python under the hood, so rebuild your container when you're in an upgrading mood.

Size doesn't matter, quality does. We changed to a new summariser, much better than it was.

And for your favourite author, we now provide an RSS feed with all their articles. Find it at feed/articles/author/<author_id>/

What's Changed

Full Changelog: v13.12...v14

The Bunny Edition

20 Feb 11:53
1d964aa
Compare
Choose a tag to compare

Not just bugs in this one, we've been working on trials. Now, we try to fetch the Eduract and NCT numbers for clinical trials, working our way to make sure we don't have duplicate content on that table. In the future, we want to move forward with tracking the progress of every clinical trial until completion.

What's Changed

Full Changelog: v13...v14

The António Lopes Edition

27 Nov 13:26
de7d040
Compare
Choose a tag to compare

Hope you're ready, what we have is heavy. Let's hear it for @antoniolopes who shines from the shadows and gave Gregory an AI upgrade. Let's get to it before your patience starts to fade.

António has been helping Gregory since the early stage, with the relevancy algorithm, and advice worthy of a sage. This time he brought a new summariser for the abstracts that can process the database through Django's management commands.

./manage.py get_takeaways will populate the "takeaways" column with the key points within the abstract of each article.

In future releases we may use this to improve the newsletters and automatic tweets.

And his magic didn't stop here. There is a new API endpoint that allows you to add new articles via http POST requests.

There is also a new SciencePaper class to make sure we have all the required information when saving article. This is also used to clean up the abstracts of any weird characters or html.

To save on CPU, and be gentle with the crossref API, we now stop trying to fetch missing data after trying for 30 days.

A special word of appreciation goes out to @codeZenon for taking the time to help us improve the documentation.

Development of new features and improvements has been 3x faster than documentation, and I don't expect it to improve. Our time is scarce. Which isn't the same as saying we don't care.

If you have any questions, please reach out by posting an issue or adding a thread in the discussion page.

Final note, remember to run ./manage.py migrate and pip install -r requirements.txt in the admin container when upgrading.

What's Changed

New Contributors

  • @codeZenon made their first contribution in #276

Full Changelog: v12...v13