From bedc58c3f1dedc80ff7776d3f14fea3e578b2aa8 Mon Sep 17 00:00:00 2001 From: guo zebin Date: Wed, 17 Dec 2025 23:31:36 +0800 Subject: [PATCH] =?UTF-8?q?chat=E9=A1=B5=E9=9D=A2=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E2=80=9D=E4=B8=BB=E4=BA=BA=E2=80=9C=E6=9B=BF=E4=BB=A3=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E7=94=A8=E6=88=B7=E6=A0=87=E8=AF=86=EF=BC=9B=E8=AE=A4?= =?UTF-8?q?=E7=9F=A5=E4=B8=8D=E9=9A=94=E7=A6=BB=E6=97=B6=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E5=A4=9A=E7=94=A8=E6=88=B7=E5=AF=B9=E8=AF=9D=E4=B8=8A=E4=B8=8B?= =?UTF-8?q?=E6=96=87=20=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/content_db.py | 20 +++++++ faymcp/static/images/Logo.png | Bin 8929 -> 8898 bytes gui/static/images/Logo.png | Bin 8929 -> 8898 bytes gui/templates/index.html | 4 +- llm/nlp_cognitive_stream.py | 76 +++++++++++++++++++------ readme/chat.png | Bin 84209 -> 85200 bytes test/test_fay_gpt_stream.py | 104 +++++++++++++++++----------------- 7 files changed, 132 insertions(+), 72 deletions(-) diff --git a/core/content_db.py b/core/content_db.py index f93d91a..876aa05 100644 --- a/core/content_db.py +++ b/core/content_db.py @@ -212,6 +212,26 @@ class Content_Db: rows.reverse() return rows + @synchronized + def get_recent_messages_all(self, limit=30): + """获取所有用户的最近消息(不按用户隔离)""" + conn = sqlite3.connect("memory/fay.db") + conn.text_factory = str + cur = conn.cursor() + cur.execute( + """ + SELECT type, content, username + FROM T_Msg + ORDER BY id DESC + LIMIT ? + """, + (limit,), + ) + rows = cur.fetchall() + conn.close() + rows.reverse() + return rows + @synchronized def get_previous_user_message(self, msg_id): conn = sqlite3.connect("memory/fay.db") diff --git a/faymcp/static/images/Logo.png b/faymcp/static/images/Logo.png index 7f57d6d383b109a28d5de1ed1bdde1f9bc26e6e1..74c37bf7f1b8a91d57669671f99f0a47bb10975c 100644 GIT binary patch literal 8898 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 literal 8929 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 U#7~B(e^$^`pqh}+3RYqN0~s_5$^ZZW diff --git a/gui/static/images/Logo.png b/gui/static/images/Logo.png index 7f57d6d383b109a28d5de1ed1bdde1f9bc26e6e1..74c37bf7f1b8a91d57669671f99f0a47bb10975c 100644 GIT binary patch literal 8898 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 literal 8929 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 U#7~B(e^$^`pqh}+3RYqN0~s_5$^ZZW diff --git a/gui/templates/index.html b/gui/templates/index.html index 829633e..d143932 100644 --- a/gui/templates/index.html +++ b/gui/templates/index.html @@ -113,8 +113,8 @@