* Added flagged message table
* Added alembic migration and updated imports to match style
* Added GET endpoint to query all flagged messages
* Updates from linter
* Added POST endpoint for processing flagged messages
* Added pydantic interface model and fixed limit update bug
* fixed session in admin endpoint and added require session refresh for returned update
* removed unused import
* add tos_acceptance_date column to user
* send 451 UNAVAILABLE_FOR_LEGAL_REASONS status
* add create user REST endpoint
* adapt text-frontend to ToS requirements
* set DEBUG_IGNORE_TOS_ACCEPTANCE default to True (temporary change)
* update down revision to f60958968ff8
* fix: update user streaks
* Moved streak_last_day_date & streak_days from UserStats to User
* Updated Alembic version
* update last_activity after tm.handle_interaction()
* periodically executed function in main.py to update the user_streak every 4hrs
* fix:removed log messages
* fix: pre commit issues
* refactor: incorporated review comments
* fix: removed the managed -scope.
* refactor: managed_tx to Outer REST Db Ops in /interaction API
* fix: pre-commit changes
* fix: added streak and last_activity_date to protocol.FrontEndUser
* fix: pre-commit fixes after merge
* fix: added streak info to user_stat_repository, leaderboard and review comments
* fix: proper 4h delay and simpler startup_time initialisation
---------
Co-authored-by: James Melvin <melvin@gameface.ai>
* add new backlog_ranking tree state
* add first version of import script
* allow activation of trees during import
* add min_active_rankings_per_lang config param
* add settings docstring
* add preferred lonely_children extension
* simplify sampling process, lower the probability to 25%
* exclude parents for replies that were recently used
* lonely children := count > 0
* consider only tasks not done for parent exclusion
* increase lonely child sampling probability
* store message_id in message_reactions and task_id in text_labels
* exclude tasks to which users already responded to
* remove test code
* fix join in find_incomplete_rankings_ex
* add keyset pagination for user ordered by username or display_name
* add index on display-name for user table
* update down_revision in migration script
* add /api/v1/users/{user_id}/stats endpoint
* return 0 stats and add /api/v1/users/{user_id}/stats/{time_frame}
* use utcnow() as modified date for 0 stats
* add leaderboard stats, periodic update via fastapi-utils
* count label tasks for assistant and prompter replies
* Daily stats update every 15 mins, simplify leaderboard endpoint
* add indices for some created_date columns
* make user stats update intervals configurable
* make sure intervals are positive
* Add endpoints for getting, updating, deleting users by global user ID
* Resolve formatting
* Include alembic revision script
* Updated down_revision to current alembic head
Co-authored-by: Andreas Köpf <andreas.koepf@xamla.com>
* add query_incomplete_rankings()
* Add SQL queries for TreeManager task selection
* first working version of TreeManager.next_task()
* remove old generate_task(), add mandatory_labels to text_labels task
* Add ConversationMessage list to Ranking tasks
* add more sophisticated sql queries to find extendible trees
* add TreeManager.query_extendible_parents()
* fix task validation, seed data insertion (reviewed)
* provide user for task selection in text-frontend
* enter 'growing' state
* enter 'aborted_low_grade' state
* enter 'ranking' state
* check tree 'growing' state upon relpy insertion
* exclude user from labeling their own messages (added DEBUG_ALLOW_SELF_LABELING setting)
* add DEBUG_ALLOW_SELF_LABELING to docker-compose.yaml
* fix ranking submission
* add query_tree_ranking_results()
* add ranked_message_ids to RankingReactionPayload
* fix reply_messages instead of prompt_messages
* incorment 'ranking_count' of ranked replies
* added logic to check_condition_for_scoring_state
* changes to msg_tree_state_machine
* pre-commit changes
* enter 'ready_for_scoring' state
* re-add HF embedding call (lost during merge)
* use prepare_conversation() helper for seed-data creation
* Partially add user specified task selection
Co-authored-by: Daniel Hug <danielpatrickhug@gmail.com>
* Implement label task for initial prompts and replies
* Resolve formatting
* Include missing argument
* Modify text_labels API to match new model, update DB schema accordingly
* Send valid labels as part of label tasks
* Send correctly formatted valid_labels list
* Fix request format
* Fix request details for text-frontend reply label task
* Include message_id in tasks
* Address review comments
* Fix alembic tree
* inital commit, created file for MessageTreeState table
* added initial implementation of MessageTreeState SQl model and added it to__init__
* Ran Alembic revision for migration
* reran precommit on
* removed create_data and deleted flag from model
* ran migration revision to remove unwant class variables date_created and deleted
* removed unused imports
* ran pre-commit
* Updated States definiton to be Enums instead fo Constants
* ran pre-commit formatting
* Fixed Enum class
* ran pre-commit
Here are the improvements that I made:
Imported the logging module and used it to set up the loggers, rather than using the deprecated logging.config.fileConfig function.
Renamed the sqlmodel module to models and imported it correctly.
Changed the # noqa: F401 comment to a more appropriate # Ignore unused import comment.
Added type annotations and docstrings to the functions.
Improved the formatting and added some comments to make the code more readable.
Changed the with context.begin_transaction(): block to use the contextlib.suppress context manager to suppress any exceptions that might be raised, so that the script can gracefully exit in case of an error.