1818from langchain_core .messages import BaseMessage , SystemMessage , HumanMessage , AIMessage , BaseMessageChunk
1919from sqlalchemy import select
2020from sqlalchemy .orm import sessionmaker
21- from sqlmodel import create_engine , Session
21+ from sqlmodel import Session
2222
2323from apps .ai_model .model_factory import LLMConfig , LLMFactory , get_default_config
2424from apps .chat .curd .chat import save_question , save_sql_answer , save_sql , \
3737from apps .system .schemas .system_schema import AssistantOutDsSchema
3838from apps .terminology .curd .terminology import get_terminology_template
3939from common .core .config import settings
40+ from common .core .db import engine
4041from common .core .deps import CurrentAssistant , CurrentUser
4142from common .error import SingleMessageError , SQLBotDBError , ParseSQLResultError , SQLBotDBConnectionError
4243from common .utils .utils import SQLBotLogUtil , extract_nested_json , prepare_for_orjson
5051dynamic_ds_types = [1 , 3 ]
5152dynamic_subsql_prefix = 'select * from sqlbot_dynamic_temp_table_'
5253
54+ session_maker = sessionmaker (bind = engine )
55+ db_session = session_maker ()
56+
57+
5358class LLMService :
5459 ds : CoreDatasource
5560 chat_question : ChatQuestion
@@ -59,7 +64,7 @@ class LLMService:
5964 sql_message : List [Union [BaseMessage , dict [str , Any ]]] = []
6065 chart_message : List [Union [BaseMessage , dict [str , Any ]]] = []
6166
62- session : Session
67+ session : Session = db_session
6368 current_user : CurrentUser
6469 current_assistant : Optional [CurrentAssistant ] = None
6570 out_ds_instance : Optional [AssistantOutDs ] = None
@@ -79,9 +84,9 @@ def __init__(self, current_user: CurrentUser, chat_question: ChatQuestion,
7984 current_assistant : Optional [CurrentAssistant ] = None , no_reasoning : bool = False ,
8085 config : LLMConfig = None ):
8186 self .chunk_list = []
82- engine = create_engine (str (settings .SQLALCHEMY_DATABASE_URI ))
83- session_maker = sessionmaker (bind = engine )
84- self .session = session_maker ()
87+ # engine = create_engine(str(settings.SQLALCHEMY_DATABASE_URI))
88+ # session_maker = sessionmaker(bind=engine)
89+ # self.session = session_maker()
8590 self .session .exec = self .session .exec if hasattr (self .session , "exec" ) else self .session .execute
8691 self .current_user = current_user
8792 self .current_assistant = current_assistant
0 commit comments