From 974d613fb0719b3fcb5d7adf61b878151715ccd7 Mon Sep 17 00:00:00 2001 From: eason Date: Tue, 3 Mar 2026 13:31:37 +0800 Subject: [PATCH] Refactor Postgres connection string handling in ChatService to use environment variable for better configuration management in Docker and local development. --- th_agenter/services/chat.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/th_agenter/services/chat.py b/th_agenter/services/chat.py index 7b6f66c..8d82d70 100644 --- a/th_agenter/services/chat.py +++ b/th_agenter/services/chat.py @@ -201,14 +201,20 @@ class ChatService: if not ChatService._checkpointer_initialized: from langgraph.checkpoint.postgres import PostgresSaver import psycopg2 - CONN_STRING = "postgresql://postgres:postgres@localhost:5433/postgres" - ChatService._conn_string = CONN_STRING + # LangGraph 使用的 Postgres 连接串,优先从环境变量读取,便于在 Docker / 本地区分配置 + # - Docker 内建议:LANGGRAPH_PG_URL=postgresql://drgraph:yingping@db:5432/th_agenter + # - 本地开发可用: LANGGRAPH_PG_URL=postgresql://drgraph:yingping@localhost:5433/th_agenter + conn_string = os.getenv( + "LANGGRAPH_PG_URL", + "postgresql://drgraph:yingping@localhost:5433/th_agenter", + ) + ChatService._conn_string = conn_string # 检查必要的表是否已存在 tables_need_setup = True try: # 连接到数据库并检查表是否存在 - conn = psycopg2.connect(CONN_STRING) + conn = psycopg2.connect(conn_string) cursor = conn.cursor() # 检查langgraph需要的表是否存在 @@ -237,7 +243,7 @@ class ChatService: if tables_need_setup: self.session.desc = "ChatService初始化 - 正在进行PostgresSaver setup" try: - async with AsyncPostgresSaver.from_conn_string(CONN_STRING) as checkpointer: + async with AsyncPostgresSaver.from_conn_string(conn_string) as checkpointer: await checkpointer.setup() self.session.desc = "ChatService初始化 - PostgresSaver setup完成" logger.info("PostgresSaver setup完成")