feat(backend): 添加中间件和日志功能

- 新增跨域、gzip压缩和trace中间件
- 实现请求ID生成和日志记录功能
- 优化环境变量加载和数据库连接逻辑- 重构部分代码以提高可维护性
main
lijiazheng 6 months ago
parent 560887d306
commit 8b62e31dd5

@ -14,9 +14,9 @@ from util.log_util import logger
@asynccontextmanager
async def lifespan(app : FastAPI):
# logger.info(f'{AppConfig.app_name}开始启动,当前运行环境{os.environ.get('APP_ENV', '未读取到环境变量APP_ENV')}')
print(f'开始启动')
logger.info(f'开始启动')
yield
print(f'关闭成功')
logger.info(f'关闭成功')
app = FastAPI(title="RAG SQL Generator API", description="调用RAG生成SQL语句的后端服务", lifespan=lifespan)

@ -10,15 +10,15 @@ def add_cors_middleware(app: FastAPI):
:return:
"""
# 前端页面url
origins = [
'http://localhost:80',
'http://127.0.0.1:80',
]
# origins = [
# 'http://localhost:80',
# 'http://127.0.0.1:80',
# ]
# 后台api允许跨域
app.add_middleware(
CORSMiddleware,
allow_origins=origins,
allow_origins=["*"],
allow_credentials=True,
allow_methods=['*'],
allow_headers=['*'],

@ -3,6 +3,7 @@ from psycopg2.extras import execute_values
import numpy as np
from env import PgvectorDataBaseConfig
from util.log_util import logger
# 数据库连接配置
DB_CONFIG = {
@ -18,10 +19,10 @@ def connect_to_db():
"""建立数据库连接"""
try:
conn = psycopg2.connect(**DB_CONFIG)
print("成功连接到数据库")
logger.info("成功连接到数据库")
return conn
except Exception as e:
print(f"连接数据库失败: {e}")
logger.error(f"连接数据库失败: {e}")
return None
@ -51,9 +52,9 @@ def setup_vector_extension(conn):
);
""")
conn.commit()
print("成功设置向量扩展和表结构")
# print("成功设置向量扩展和表结构")
except Exception as e:
print(f"设置数据库结构失败: {e}")
logger.error(f"设置数据库结构失败: {e}")
conn.rollback()
@ -68,9 +69,9 @@ def insert_vectors(conn, data):
data
)
conn.commit()
print(f"成功插入 {len(data)} 条向量数据")
logger.info(f"成功插入 {len(data)} 条向量数据")
except Exception as e:
print(f"插入数据失败: {e}")
logger.error(f"插入数据失败: {e}")
conn.rollback()
@ -88,7 +89,7 @@ def search_similar_table(conn, query_vector, limit=5):
results = cur.fetchall()
return results
except Exception as e:
print(f"搜索相似向量失败: {e}")
logger.error(f"搜索相似向量失败: {e}")
return []
def search_similar_case(conn, query_vector, limit=5):
@ -105,7 +106,7 @@ def search_similar_case(conn, query_vector, limit=5):
results = cur.fetchall()
return results
except Exception as e:
print(f"搜索相似向量失败: {e}")
logger.error(f"搜索相似向量失败: {e}")
return []
def main():
@ -133,9 +134,9 @@ def main():
query_vector = [1.0, 1.0, 1.0]
similar_docs = search_similar_table(conn, query_vector)
print("\n相似文档搜索结果:")
logger.info("\n相似文档搜索结果:")
for content, distance in similar_docs:
print(f"内容: {content}, 距离: {distance}")
logger.info(f"内容: {content}, 距离: {distance}")
# 关闭连接
conn.close()

Loading…
Cancel
Save