This repository has been archived by the owner on Apr 29, 2024. It is now read-only.
forked from MDGrey33/Nur
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
21 changed files
with
335 additions
and
348 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,16 +1,17 @@ | ||
from models.bookmarked_conversation import BookmarkedConversation | ||
from datetime import datetime, timezone | ||
from database.database import get_db_session | ||
|
||
|
||
def add_bookmarked_conversation(session, title, body, thread_id): | ||
new_conversation = BookmarkedConversation(title=title, body=body, thread_id=thread_id) | ||
session.add(new_conversation) | ||
session.commit() | ||
def add_bookmarked_conversation(title, body, thread_id): | ||
with get_db_session() as session: | ||
new_conversation = BookmarkedConversation(title=title, body=body, thread_id=thread_id) | ||
session.add(new_conversation) | ||
|
||
|
||
def update_posted_on_confluence(session, thread_id): | ||
conversation = session.query(BookmarkedConversation).filter_by(thread_id=thread_id).first() | ||
if conversation: | ||
conversation.posted_on_confluence = datetime.now(timezone.utc) | ||
session.commit() | ||
print(f"Updated conversation with thread ID {thread_id} with timestamp") | ||
def update_posted_on_confluence(thread_id): | ||
with get_db_session() as session: | ||
conversation = session.query(BookmarkedConversation).filter_by(thread_id=thread_id).first() | ||
if conversation: | ||
conversation.posted_on_confluence = datetime.now(timezone.utc) | ||
print(f"Updated conversation with thread ID {thread_id} with timestamp") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,70 +1,76 @@ | ||
# ./database/interaction_manager.py | ||
from datetime import datetime, timezone | ||
from models.qa_interaction import QAInteraction | ||
from database.database import get_db_session | ||
import json | ||
|
||
|
||
class QAInteractionManager: | ||
def __init__(self, session): | ||
self.session = session | ||
def __init__(self): | ||
pass | ||
|
||
def add_question_and_answer(self, question, answer, thread_id, assistant_thread_id, channel_id, question_ts, | ||
answer_ts, slack_user_id): | ||
|
||
serialized_answer = json.dumps(answer.__dict__) if not isinstance(answer, str) else answer | ||
interaction = QAInteraction( | ||
question_text=question, | ||
thread_id=thread_id, | ||
assistant_thread_id=assistant_thread_id, | ||
answer_text=serialized_answer, | ||
channel_id=channel_id, | ||
question_timestamp=question_ts, | ||
answer_timestamp=answer_ts, | ||
comments=json.dumps([]), | ||
slack_user_id=slack_user_id | ||
) | ||
self.session.add(interaction) | ||
self.session.commit() | ||
with get_db_session() as session: | ||
serialized_answer = json.dumps(answer.__dict__) if not isinstance(answer, str) else answer | ||
interaction = QAInteraction( | ||
question_text=question, | ||
thread_id=thread_id, | ||
assistant_thread_id=assistant_thread_id, | ||
answer_text=serialized_answer, | ||
channel_id=channel_id, | ||
question_timestamp=question_ts, | ||
answer_timestamp=answer_ts, | ||
comments=json.dumps([]), | ||
slack_user_id=slack_user_id | ||
) | ||
session.add(interaction) | ||
|
||
def add_comment_to_interaction(self, thread_id, comment): | ||
interaction = self.get_interaction_by_thread_id(thread_id) | ||
if interaction: | ||
if interaction.comments is None: | ||
interaction.comments = json.dumps([]) | ||
comments = json.loads(interaction.comments) | ||
comments.append(comment) | ||
interaction.comments = json.dumps(comments) | ||
self.session.commit() | ||
with get_db_session() as session: # TODO Check if this is necessary | ||
if interaction: | ||
if interaction.comments is None: | ||
interaction.comments = json.dumps([]) | ||
comments = json.loads(interaction.comments) | ||
comments.append(comment) | ||
interaction.comments = json.dumps(comments) | ||
|
||
def get_interaction_by_thread_id(self, thread_id): | ||
return self.session.query(QAInteraction).filter_by(thread_id=thread_id).first() | ||
with get_db_session() as session: | ||
return session.query(QAInteraction).filter_by(thread_id=thread_id).first() | ||
|
||
def get_interaction_by_interaction_id(self, interaction_id): | ||
return self.session.query(QAInteraction).filter_by(id=interaction_id).first() | ||
with get_db_session() as session: | ||
return session.query(QAInteraction).filter_by(id=interaction_id).first() | ||
|
||
def get_interactions_by_interaction_ids(self, interaction_ids): | ||
return self.session.query(QAInteraction).filter(QAInteraction.id.in_(interaction_ids)).all() | ||
with get_db_session() as session: | ||
return session.query(QAInteraction).filter(QAInteraction.id.in_(interaction_ids)).all() | ||
|
||
def get_qa_interactions(self): | ||
return self.session.query(QAInteraction).all() | ||
with get_db_session() as session: | ||
return session.query(QAInteraction).all() | ||
|
||
def add_embed_to_interaction(self, interaction_id, embed): | ||
interaction = self.session.query(QAInteraction).filter_by(id=interaction_id).first() | ||
if interaction: | ||
interaction.embed = json.dumps(embed) | ||
interaction.last_embedded = datetime.now(timezone.utc) | ||
self.session.commit() | ||
with get_db_session() as session: | ||
interaction = session.query(QAInteraction).filter_by(id=interaction_id).first() | ||
if interaction: | ||
interaction.embed = json.dumps(embed) | ||
interaction.last_embedded = datetime.now(timezone.utc) | ||
|
||
def get_interactions_without_embeds(self): | ||
return self.session.query(QAInteraction).filter( | ||
(QAInteraction.embed.is_(None)) | | ||
(QAInteraction.embed == json.dumps([])) | | ||
(QAInteraction.embed == '') | ||
).all() | ||
with get_db_session() as session: | ||
return session.query(QAInteraction).filter( | ||
(QAInteraction.embed.is_(None)) | | ||
(QAInteraction.embed == json.dumps([])) | | ||
(QAInteraction.embed == '') | ||
).all() | ||
|
||
def get_interactions_with_embeds(self): | ||
return self.session.query(QAInteraction).filter( | ||
(QAInteraction.embed.is_not(None)) | | ||
(QAInteraction.embed == json.dumps([])) | | ||
(QAInteraction.embed == '') | ||
).all() | ||
with get_db_session() as session: | ||
return session.query(QAInteraction).filter( | ||
(QAInteraction.embed.is_not(None)) | | ||
(QAInteraction.embed == json.dumps([])) | | ||
(QAInteraction.embed == '') | ||
).all() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.