Spaces:
Sleeping
Sleeping
Commit ·
76d7dae
1
Parent(s): a2f44be
Initial commit
Browse files- app.py +7 -3
- database.py +14 -13
app.py
CHANGED
|
@@ -4,10 +4,14 @@ from database import init_storage
|
|
| 4 |
|
| 5 |
@cl.on_chat_start
|
| 6 |
async def start():
|
| 7 |
-
|
| 8 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 9 |
cl.user_session.set("thread_id", cl.user_session.get("id"))
|
| 10 |
-
await cl.Message(content="
|
| 11 |
|
| 12 |
@cl.on_message
|
| 13 |
async def main(message: cl.Message):
|
|
|
|
| 4 |
|
| 5 |
@cl.on_chat_start
|
| 6 |
async def start():
|
| 7 |
+
try:
|
| 8 |
+
# Добавили await!
|
| 9 |
+
await init_storage()
|
| 10 |
+
except Exception as e:
|
| 11 |
+
print(f"Ошибка при создании таблиц памяти: {e}")
|
| 12 |
+
|
| 13 |
cl.user_session.set("thread_id", cl.user_session.get("id"))
|
| 14 |
+
await cl.Message(content="Система запущена.").send()
|
| 15 |
|
| 16 |
@cl.on_message
|
| 17 |
async def main(message: cl.Message):
|
database.py
CHANGED
|
@@ -1,18 +1,19 @@
|
|
| 1 |
import os
|
| 2 |
-
from langgraph.checkpoint.postgres import
|
| 3 |
-
from psycopg_pool import
|
| 4 |
|
| 5 |
-
# Используем проверенную строку (лучше через переменные окружения)
|
| 6 |
-
DB_URI = os.getenv("DATABASE_URL", "postgresql://postgres.fdkvbrxnmsfctzoaewtn:pulXdHRsYb6ff2gO@aws-1-eu-west-1.pooler.supabase.com:6543/postgres?sslmode=require")
|
| 7 |
|
| 8 |
-
#
|
| 9 |
-
|
| 10 |
|
| 11 |
-
# О
|
| 12 |
-
|
| 13 |
|
| 14 |
-
#
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
import os
|
| 2 |
+
from langgraph.checkpoint.postgres.aio import AsyncPostgresSaver
|
| 3 |
+
from psycopg_pool import AsyncConnectionPool
|
| 4 |
|
|
|
|
|
|
|
| 5 |
|
| 6 |
+
# Используем новое имя переменной, чтобы Chainlit не путался!
|
| 7 |
+
DB_URI = os.getenv("SUPABASE_URL", "postgresql://postgres.fdkvbrxnmsfctzoaewtn:pulXdHRsYb6ff2gO@aws-1-eu-west-1.pooler.supabase.com:6543/postgres?sslmode=require")
|
| 8 |
|
| 9 |
+
# АСИНХРОННЫЙ пул соединений
|
| 10 |
+
pool = AsyncConnectionPool(conninfo=DB_URI, max_size=20, kwargs={"autocommit": True})
|
| 11 |
|
| 12 |
+
# АСИНХРОННЫЙ объект для сохранения состояния графа
|
| 13 |
+
checkpointer = AsyncPostgresSaver(pool)
|
| 14 |
+
|
| 15 |
+
# Асинхронная инициализация
|
| 16 |
+
async def init_storage():
|
| 17 |
+
# Теперь мы просто вызываем setup(), чекпоинтер сам возьмет коннект из пула
|
| 18 |
+
await checkpointer.setup()
|
| 19 |
+
print("✅ Асинхронное хранилище контекста в Supabase готово.")
|