Spaces:
Sleeping
Sleeping
Commit
·
27a479a
1
Parent(s):
5b28103
feat: add relation between chat_history and documents
Browse files- app.py +2 -1
- chat_history.py +24 -0
app.py
CHANGED
@@ -10,7 +10,7 @@ from langchain.chains import ConversationalRetrievalChain
|
|
10 |
from langchain.chains.conversation.memory import ConversationBufferMemory
|
11 |
from langchain.embeddings import GPT4AllEmbeddings
|
12 |
|
13 |
-
from chat_history import insert_chat_history
|
14 |
from css import load_css
|
15 |
from custom_pgvector import CustomPGVector
|
16 |
from message import Message
|
@@ -80,6 +80,7 @@ def on_click_callback():
|
|
80 |
)
|
81 |
st.session_state.token_count += cb.total_tokens
|
82 |
history_id = insert_chat_history(conn, human_prompt, llm_response["answer"])
|
|
|
83 |
|
84 |
|
85 |
load_css()
|
|
|
10 |
from langchain.chains.conversation.memory import ConversationBufferMemory
|
11 |
from langchain.embeddings import GPT4AllEmbeddings
|
12 |
|
13 |
+
from chat_history import insert_chat_history, insert_chat_history_articles
|
14 |
from css import load_css
|
15 |
from custom_pgvector import CustomPGVector
|
16 |
from message import Message
|
|
|
80 |
)
|
81 |
st.session_state.token_count += cb.total_tokens
|
82 |
history_id = insert_chat_history(conn, human_prompt, llm_response["answer"])
|
83 |
+
insert_chat_history_articles(conn, history_id, llm_response["source_documents"])
|
84 |
|
85 |
|
86 |
load_css()
|
chat_history.py
CHANGED
@@ -1,3 +1,6 @@
|
|
|
|
|
|
|
|
1 |
import sqlalchemy
|
2 |
from sqlalchemy import text
|
3 |
from sqlalchemy.orm import Session
|
@@ -22,3 +25,24 @@ def insert_chat_history(conn: sqlalchemy.engine.Connection, query: str, answer:
|
|
22 |
last_row_id = result.fetchone()[0]
|
23 |
conn.commit()
|
24 |
return last_row_id
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import json
|
2 |
+
from typing import List
|
3 |
+
|
4 |
import sqlalchemy
|
5 |
from sqlalchemy import text
|
6 |
from sqlalchemy.orm import Session
|
|
|
25 |
last_row_id = result.fetchone()[0]
|
26 |
conn.commit()
|
27 |
return last_row_id
|
28 |
+
|
29 |
+
|
30 |
+
def insert_chat_history_articles(
|
31 |
+
conn: sqlalchemy.engine.Connection, chat_history_id: int, articles: List[str]
|
32 |
+
):
|
33 |
+
source_documents = [json.loads(article.page_content) for article in articles]
|
34 |
+
|
35 |
+
with Session(conn) as conn:
|
36 |
+
conn.execute(
|
37 |
+
text(
|
38 |
+
"INSERT INTO chat_history_articles (chat_history_id, article_id) VALUES (:chat_history_id, :article_id) ON CONFLICT DO NOTHING;"
|
39 |
+
),
|
40 |
+
[
|
41 |
+
{
|
42 |
+
"chat_history_id": chat_history_id,
|
43 |
+
"article_id": article["id"],
|
44 |
+
}
|
45 |
+
for article in source_documents
|
46 |
+
],
|
47 |
+
)
|
48 |
+
conn.commit()
|