성현 김 commited on
Commit
3ee85bb
·
1 Parent(s): b8b0564

Refactor app.py structure and imports for clarity and to fix ImportError

Browse files
Files changed (2) hide show
  1. app/__init__.py +1 -1
  2. app/app.py +15 -8
app/__init__.py CHANGED
@@ -1,7 +1,7 @@
1
  # my_langchain_space/app/__init__.py
2
 
3
  # my_langchain_space/app/__init__.py
4
- print("--- app/__init__.py is being imported/accessed ---")
5
 
6
  from .schemas import GenerateRequest, GenerateResponse, ResetMemoryResponse
7
  # 만약 다른 모듈들도 app 패키지 레벨에서 바로 접근하게 하고 싶다면 여기에 추가할 수 있습니다.
 
1
  # my_langchain_space/app/__init__.py
2
 
3
  # my_langchain_space/app/__init__.py
4
+ print("--- app/__init__.py executed (should be nearly empty now) ---")
5
 
6
  from .schemas import GenerateRequest, GenerateResponse, ResetMemoryResponse
7
  # 만약 다른 모듈들도 app 패키지 레벨에서 바로 접근하게 하고 싶다면 여기에 추가할 수 있습니다.
app/app.py CHANGED
@@ -1,17 +1,17 @@
1
  # app/app.py
2
 
3
- # 1. sqlite3 패치 코드를 가장 먼저 실행 (다른 import 보다도 먼저)
4
  __import__('pysqlite3')
5
  import sys
6
  sys.modules['sqlite3'] = sys.modules.pop('pysqlite3')
7
 
8
- # 2. 패치로딩 확인용 print문 (하나로 통일하거나 필요에 맞게)
9
- print("<<<<< app.app.py IS BEING LOADED (sqlite3 patched with pysqlite3) >>>>>")
10
 
11
- # 3. 기본 인코딩 설정 (선택 사항, 보통은 필요 없음)
12
- # -*- coding: utf-8 -*- # 보통 파일 최상단에 두지만, 위 print문들 다음에 와도 괜찮습니다.
13
 
14
- # 4. 필요한 모듈들 import
15
  import os
16
  import time
17
  import torch
@@ -33,16 +33,23 @@ import traceback # 상세 오류 로깅용
33
 
34
  from fastapi import FastAPI, HTTPException
35
  # schemas 모듈을 현재 디렉토리(app 패키지) 기준으로 상대 경로 import 합니다.
36
- from .schemas import GenerateRequest, GenerateResponse, ResetMemoryResponse # <--- 이 부분이 중요! 이렇게 되어 있어야 합니다.
37
 
38
  # 5. FastAPI 애플리케이션 인스턴스 생성
39
- # print("--- All imports in app.py successful, attempting FastAPI init ---") # 필요하다면 추가 디버깅
40
  app = FastAPI(
41
  title="미드저니 프롬프트 생성기 API",
42
  description="사용자 입력, 대화 기록, 검색된 컨텍스트를 기반으로 미드저니 프롬프트를 생성합니다.",
43
  version="1.0.0"
44
  )
 
45
 
 
 
 
 
 
 
46
  # --- Configuration ---
47
  print("🚀 API 스크립트 시작: 설정 로딩 중...")
48
  env_path = find_dotenv()
 
1
  # app/app.py
2
 
3
+ # 1. sqlite3 패치 코드를 가장 먼저 실행
4
  __import__('pysqlite3')
5
  import sys
6
  sys.modules['sqlite3'] = sys.modules.pop('pysqlite3')
7
 
8
+ # 2. 로딩 확인 디버깅용 print 문 (하나로 통일)
9
+ print("<<<<< app/app.py IS BEING LOADED (sqlite3 patched with pysqlite3) >>>>>")
10
 
11
+ # 3. 기본 인코딩 설정 (보통 파일 줄에 두지만, 위 print문들 다음에 와도 괜찮습니다)
12
+ # -*- coding: utf-8 -*-
13
 
14
+ # 4. 필요한 모든 모듈들 import
15
  import os
16
  import time
17
  import torch
 
33
 
34
  from fastapi import FastAPI, HTTPException
35
  # schemas 모듈을 현재 디렉토리(app 패키지) 기준으로 상대 경로 import 합니다.
36
+ from .schemas import GenerateRequest, GenerateResponse, ResetMemoryResponse # <--- 이 import 문은 번만 있어야 합니다.
37
 
38
  # 5. FastAPI 애플리케이션 인스턴스 생성
39
+ # print("--- All imports in app.py successful, attempting FastAPI init ---") # 필요 디버깅
40
  app = FastAPI(
41
  title="미드저니 프롬프트 생성기 API",
42
  description="사용자 입력, 대화 기록, 검색된 컨텍스트를 기반으로 미드저니 프롬프트를 생성합니다.",
43
  version="1.0.0"
44
  )
45
+ # print(f"--- FastAPI instance 'app' IS DEFINED in app.py, type: {type(app)} ---") # 필요 시 디버깅
46
 
47
+ # --- Configuration (FastAPI 객체 생성 후, @app.on_event("startup") 이전 또는 내부로 이동 가능) ---
48
+ # 이 print문들은 애플리케이션 로직의 일부이므로, FastAPI 객체 생성 이후에 위치하는 것이 자연스럽습니다.
49
+ # 또는 @app.on_event("startup") 함수 내부로 옮겨서 애플리케이션 시작 시점에 실행되도록 할 수도 있습니다.
50
+ # 지금은 순서상 큰 문제는 없어 보이지만, 명확성을 위해 FastAPI 객체 생성 이후에 두겠습니다.
51
+ )
52
+ print(f"--- FastAPI instance 'app' IS DEFINED in app.py, type: {type(app)} ---")
53
  # --- Configuration ---
54
  print("🚀 API 스크립트 시작: 설정 로딩 중...")
55
  env_path = find_dotenv()