Spaces:
Sleeping
Sleeping
import json | |
from typing import List | |
import sqlalchemy | |
from sqlalchemy import text | |
from sqlalchemy.orm import Session | |
def insert_chat_history(conn: sqlalchemy.engine.Connection, query: str, answer: str): | |
with Session(conn) as conn: | |
conn.execute( | |
text("INSERT INTO chat_history (query, answer) VALUES (:query, :answer);"), | |
[ | |
{ | |
"query": query, | |
"answer": answer, | |
} | |
], | |
) | |
conn.commit() | |
result = conn.execute( | |
text("SELECT id FROM chat_history ORDER BY id DESC LIMIT 1;") | |
) | |
last_row_id = result.fetchone()[0] | |
conn.commit() | |
return last_row_id | |
def insert_chat_history_articles( | |
conn: sqlalchemy.engine.Connection, chat_history_id: int, articles: List[str] | |
): | |
source_documents = [json.loads(article.page_content) for article in articles] | |
with Session(conn) as conn: | |
conn.execute( | |
text( | |
"INSERT INTO chat_history_articles (chat_history_id, article_id) VALUES (:chat_history_id, :article_id) ON CONFLICT DO NOTHING;" | |
), | |
[ | |
{ | |
"chat_history_id": chat_history_id, | |
"article_id": article["id"], | |
} | |
for article in source_documents | |
], | |
) | |
conn.commit() | |